当前位置: 首页 > news >正文

汽车EDI:IAC Elmdon EDI 对接指南

近期收到客户C公司的需求,需要与其合作伙伴IAC Elmdon建立EDI连接,本文将主要为大家介绍IAC Elmdon EDI 对接指南,了解EDI项目的对接流程。

项目需求
传输协议:OFTP2

IAC Elmdon 与其供应商之间使用的传输协议为OFTP2。OFTP2是由Data Interchange在2007年编写的,作为通过互联网、ISDN和X.25网络安全传输商业文件的规范。

OFTP 2可以对信息数据进行加密和数字签名,请求签名的收据,并提供高水平的数据压缩。当通过TCP/IP、X.25/ISDN或本地X.25使用OFTP 2时,所有这些服务都是可用的。当在TCP/IP网络(如互联网)上使用时,通过在传输层安全(TLS)上使用OFTP 2,可以获得更高的会话级安全。

报文标准:EDIFACT

IAC Elmdon 使用EDIFACT报文标准作为其与供应商之间数据传输的标准。本次EDI项目中涉及到的报文类型:

  • 接收来自 IAC Elmdon 的DESADV 发货通知
  • 向IAC Elmdon 发送DELFOR 物料需求预测
实施方案

CSV全称为Comma-Separated Values是一种常见的文件格式,以纯文本的形式,将逗号作为各字段的分隔符,每行表示一个数据记录。

与其他格式相比,CSV格式占用更少的存储空间,更加轻量级。此外CSV格式的文件还可以在不同系统及软件之间进行交换,具有较强的兼容性,用户直接通过文本编辑器即可打开和查看文件内容。

EDI解决方案

基于知行之桥EDI系统建立OFTP连接,C公司由于业务系统尚未完善,因此本次项目中并不考虑实现EDI系统与企业内部系统的集成,最终选择了CSV方案。

搭建 OFTP 传输通道

基于知行之桥EDI系统建立与IAC Elmdon的OFTP2连接通道需要准备:

  • 部署OFTP服务的服务器,且交易伙伴可访问到该服务
  • ODETTE ID和ODETTE证书

通过知行之桥EDI系统的OFTP端口,用户可以在可视化界面中进行连接信息的配置,需要双方提供的信息如下:

  • SSID SSID:作为OFTP数据传输中的唯一身份标识,即就是向ODETTE申请购买的ODETTE ID。该值将包含在发送的请求中,以标识发送方身份,并在接收消息时可以寻址到相关的OFTP端口。
  • Password:与 SSID 相匹配的密码。此密码为自定义值,只需确保交易伙伴系统内配置相同的值即可,长度不超过8位。
  • Remote Host:远程 OFTP 服务器的主机名称或 IP 地址。
  • Port 端口:连接到远程 OFTP 服务器的端口。
  • Public Certificate:发送消息时,用于加密的公钥证书。该证书必须与交易伙伴的私钥证书匹配,并在共享 OFTP 详细配置信息时,交易伙伴应提供此公钥证书。

工作流界面中搭建OFTP端口,在 设置 选项卡下配置IAC Elmdon的OFTP连接信息。界面如下所示:

IAC_Elmdon_EDI1.png

在 个人设置 选项卡下配置C公司自己的OFTP连接信息,页面如下所示:

IAC_Elmdon_EDI2.png

数据格式转换

IAC Elmdon 发送给 C 公司:

1.知行之桥EDI系统的OFTP端口接收来自IAC Elmdon的DELFOR报文
2.将接收到的EDI报文通过EDIFACT端口转换为XML
3.通过XMLMap端口实现目标XML与源XML之间的映射处理
4.通过CSV端口实现XML到CSV之间的格式转换
5.通过Email Send端口将存有交付预测数据的CSV文件发送至C公司的指定邮箱中

C 公司发送给IAC Elmdon :

1.C公司将包含发货通知数据的CSV文件发送至指定邮箱中,EDI系统将会自动抓取
2.通过CSV端口,将接收到的CSV文件转换为XML
3.通过XML Map 端口实现源文件到目标文件的映射处理
4.通过EDIFACT端口实现XML到满足EDIFACT报文标准的DESADV报文的格式转换
5.通过OFTP端口将DESADV报文发送给IAC Elmdon

整体方案流程图:

IAC_Elmdon_EDI3.png

项目成果

在知行之桥EDI系统中针对上述需求可以搭建如下所示的工作流:

IAC_Elmdon_EDI4.png

项目回顾

转换分析:生成CSV文件时需要注意,要将XML文件转换为CSV文件,输入的XML必须具有“平面”结构。这意味着,不管根元素如何,XML结构的深度都是2。

如果输入的XML文件层级大于2,则无法转换为CSV格式。此时可以将头部信息放在明细信息下,简化层级结构。

传输过程中,头部信息只需出现一次,而明细信息可重复出现多次。在保证信息完整输出的前提下,将头部信息放在明细信息中既满足了XML转CSV的“平面”结构需求,又不影响业务数据输出的完整性。

了解更多 EDI 信息,请参阅: EDI 是什么?

相关文章:

汽车EDI:IAC Elmdon EDI 对接指南

近期收到客户C公司的需求,需要与其合作伙伴IAC Elmdon建立EDI连接,本文将主要为大家介绍IAC Elmdon EDI 对接指南,了解EDI项目的对接流程。 项目需求 传输协议:OFTP2 IAC Elmdon 与其供应商之间使用的传输协议为OFTP2。OFTP2是…...

IPFoxy:什么是静态住宅IP?静态ISP代理指南

静态住宅代理(也称为静态ISP代理)是最流行的代理类型之一。它们也是隐藏您的身份并保持在线匿名的最佳方法之一。您为什么要使用住宅代理而不是仅使用常规代理服务?下面我具体分享。 一、什么是静态住宅代理? 首先,我…...

【算法】高精度(string实现)

模板来自:【C/string】 大数高精度运算模板 加法 string add(string a, string b) {string ans;/* 翻转两个数字字符串,使得后面的for循环从个位开始相加 */reverse(a.begin(), a.end());reverse(b.begin(), b.end());/* 初次补0,保证最高位…...

宝塔面板如何删除一个站点

我们一般的网站都是PHPMySQL开发的,所以删除站点,就要先删数据库,再删网站目录 注意:一点要确保无用的再删 删除站点目录...

Android RecyclerView

RecyclerView核心实现官方文档 Once you determine your layout, you need to implement your Adapter and ViewHolder. These two classes work together to define how your data is displayed. The ViewHolder is a wrapper around a View that contains the layout for an…...

【QT教程】QT6命令行工具开发 QT命令行

QT6命令行工具开发 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免费看 免…...

基于Springboot的微乐校园管理系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的微乐校园管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构…...

【第6节课笔记】LagentAgentLego

Lagent 最中间部分的是LLM,即为大语言模型模块,他可以思考planning和调用什么action,再将其转发给动作执行器action executer执行。 支持的工具如下: Arxiv 搜索 Bing 地图 Google 学术搜索 Google 搜索 交互式 IPython 解释器 IP…...

【ARMv8/v9 系统寄存器 4 -- ARMv8 通用寄存器详细介绍】

文章目录 ARMv8 通用寄存器通用寄存器X30 寄存器和链接寄存器(LR)程序计数器(PC)ARMv8 X30和PC之间的关系小结 ARMv8 通用寄存器 在ARMv9架构中(这也适用于ARMv8,因为ARMv9是其进化版本)&#…...

一个月速刷leetcodeHOT100 day 01

两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 //哈希表做法 function twoSum(nums, target) { let obj new Map(); for (let i 0; i < nums.length; i…...

Cargo - 构建 rust项目、管理依赖包

文章目录 关于 Cargo构建项目创建工程编译运行buildclean 管理依赖添加依赖updatecheck计时 manual rust 安装可参考&#xff1a;https://blog.csdn.net/lovechris00/article/details/124808034 关于 Cargo Cargo 官方文档 &#xff1a; https://doc.rust-lang.org/cargo/crat…...

内网安全-代理Socks协议路由不出网后渗透通讯CS-MSF控制上线简单总结

我这里只记录原理&#xff0c;具体操作看文章后半段或者这篇文章内网渗透—代理Socks协议、路由不出网、后渗透通讯、CS-MSF控制上线_内网渗透 代理-CSDN博客 注意这里是解决后渗透通讯问题&#xff0c;之后怎么提权&#xff0c;控制后面再说 背景 只有win7有网&#xff0c;其…...

NSSCTF | [SWPUCTF 2021 新生赛]jicao

打开题目&#xff0c;发现高亮显示了一个 php 脚本 这是脚本的内容 <?php highlight_file(index.php); include("flag.php"); $id$_POST[id]; $jsonjson_decode($_GET[json],true); if ($id"wllmNB"&&$json[x]"wllm") {echo $flag;…...

Redis 支持的 Java 客户端都有哪些?

Redis 是一种高性能的键值存储系统&#xff0c;它以其快速、灵活和可扩展的特性而闻名。在 Java 开发中&#xff0c;与 Redis 交互的方式通常是通过使用 Redis 的 Java 客户端。 这些客户端提供了访问 Redis 数据库的接口&#xff0c;使开发人员能够在 Java 应用程序中轻松地使…...

【JavaEE 初阶(四)】多线程进阶

❣博主主页: 33的博客❣ ▶️文章专栏分类:JavaEE◀️ &#x1f69a;我的代码仓库: 33的代码仓库&#x1f69a; &#x1faf5;&#x1faf5;&#x1faf5;关注我带你了解更多线程知识 目录 1.前言2.常见的锁策略2.1悲观锁vs乐观锁2.2轻量级锁vs重量级锁2.3自旋锁vs挂起锁2.4读写…...

ZOC8 for Mac v8.08.1激活版:卓越性能的SSH客户端

在远程连接和管理的世界中&#xff0c;ZOC8 for Mac以其卓越的性能和丰富的功能&#xff0c;成为了众多专业人士的首选SSH客户端。它支持SSH1、SSH2、Telnet、Rlogin、Serial等多种协议&#xff0c;让您轻松连接到远程服务器。ZOC8拥有简洁直观的界面和强大的功能设置&#xff…...

指针(4)有点难

指针&#xff08;4&#xff09; 来做个简单的回顾&#xff1a; 指针数组&#xff1a; 1.是数组 2.是存放指针的数组 char* arr1[5]; int*arr2[3]; 数组指针&#xff1a; 1 .是指针 2 .指向数组的指针 字符指针&#xff1a;char*pc; 整型指针&#xff1a;int*pi; int …...

初步了解json文件

来自wetab 的AI pro: JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;易于人阅读和编写&#xff0c;同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式&#xff0c;但是它使用了类似于编程语言&#xff08;特别是J…...

赶紧收藏!2024 年最常见 100道 Java 基础面试题(四十)

上一篇地址&#xff1a;赶紧收藏&#xff01;2024 年最常见 100道 Java 基础面试题&#xff08;三十九&#xff09;-CSDN博客 七十九、forward和redirect的区别&#xff1f; 在Java Web应用程序中&#xff0c;forward和redirect是两种不同的服务器端重定向机制&#xff0c;它…...

初步了解Kubernetes

目录 1. K8S概述 1.1 K8S是什么 1.2 作用 1.3 由来 1.4 含义 1.5 相关网站 2. 为什么要用K8S 3. K8S解决的问题 4. K8S的特性 5. Kubernetes集群架构与组件 6. 核心组件 6.1 Master组件 6.1.1 Kube-apiserver 6.1.2 Kube-controller-manager 6.1.3 kube-schedul…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...