汽车EDI:Chrysler EDI项目案例
菲亚特克莱斯勒汽车Fiat Chrysler Automobiles(FCA)是一家全球性汽车制造商,主营产品包括轿车、SUV、皮卡车、商用车和豪华车等多种车型。其旗下品牌包括菲亚特、克莱斯勒、道奇、Jeep、Ram、阿尔法·罗密欧和玛莎拉蒂等。
Chrysler通过EDI来优化订单处理、交付通知、货物收据以及发票处理等业务流程,从而加快订单处理速度,更好的协调交货时间,追踪其供应链中货物的运输情况,加快付款速度,避免出现错误和延误。
EDI 需求概览
EDI 传输协议
Chrysler支持SFTP以及AS2。与SFTP相比,AS2有一个独特的功能:它允许用户请求一个文件处理通知(MDN),一旦文件被收件人收到并解密,就会提醒发件人。这种收据(也称为NRR,即不可否认的收据)被创建、签署,并在解密后返回给发件人,给他们提供法律证据,证明文件在运输过程中没有被改变。
因此M公司选择使用AS2最为其EDI传输协议,AS2(Applicability Statement 2)是一种用于在网络上安全、可靠地传输数据的协议。它建立在HTTP(Hypertext Transfer Protocol)和SMTP(Simple Mail Transfer Protocol)的基础上,采用了加密和数字签名等安全机制,确保数据的机密性和完整性。
EDI 报文标准
Chrysler选择的EDI报文标准为X12,涉及到的业务单据以及传输方向如下所示:
业务类型 | 业务含义 | 传输方向 |
---|---|---|
850 | 采购订单 | Chrysler发送给 M 公司 |
860 | 采购订单变更 | Chrysler发送给 M 公司 |
830 | 物料需求预测 | Chrysler发送给 M 公司 |
862 | 交付计划 | Chrysler发送给 M 公司 |
861 | 接收通知或验收证书文件格式 | Chrysler发送给 M 公司 |
820 | 汇款通知 | Chrysler发送给 M 公司 |
824 | 应用程序通知 | Chrysler发送给 M 公司 |
856 | 发货通知 | M 公司发送给Chrysler |
810 | 采购订单 | M 公司发送给Chrysler |
实施方案
考虑到内部业务系统尚未开发完成,M公司与知行沟通后决定采用Excel方案作为临时替代方案,后期业务系统开发完毕之后,再切换集成方案。
Excel方案是EDI报文和Excel之间的数据转换。它的基本思路是:在接收到交易伙伴发来的EDI报文,并在EDI平台内部完成格式的转换之后,将数据直接呈现在Excel中。用户可以直观地看到接收到的数据;手动在Excel上录入数据之后,将Excel上传至EDI平台,EDI平台在内部做字段映射,将表格中的数据映射到固定的EDI字段上,最终生成EDI报文发送给交易伙伴。
基于知行之桥EDI系统对接 Chrysler EDI
实现与Chrysler的EDI对接需要在知行之桥EDI系统中搭建如下所示的工作流:
建立 AS2 连接
本次对接Chrysler的EDI项目中使用了两个AS2端口,被分别命名为Chrysler_AS2以及Chrysler_AS2_856。这是由于Chrysler方使用单独的AS2 ID传输EDI 856 发货通知,其他报文则使用另一个AS2 ID进行传输。
Chrysler将会提供两套 AS2连接信息,在配置的过程中,M公司需要注意辨别。需要分别在这两个AS2端口中配置Chrysler提供的AS2 ID、交易伙伴URL以及交易伙伴证书等信息。
与Chrysler的EDI测试流程
本次对接Chrysler的EDI项目是帮助M公司使用知行之桥EDI系统切换国外某EDI系统,项目中需要传输的单据此前都已做过测试,对于这种切换项目,Chrysler方提出只需要进行连接测试即可,无需再做额外的业务测试。
整体测试流程如下:
1.进入Stellantis 的EMTS网站,选择需要的EDI连接方式。由于是切换项目,因此需要选择 Modify Existing Account,填写AS2信息以及供应商信息。
2.向Chrysler发送邮件,告知对方EMTS网站上的内容已填写完成。并提供M公司的AS2连接信息(包括证书等信息)。
3.与Chrysler进行Loop test,需要确认M公司的供应商类型(如:MOPAR、PAY AS BILL以及PRODUCTION等),这里支持多选。
4.Chrysler提供的AS2连接信息中没有提到AS2 ID,这里需要结合供应商类型来匹配AS2 ID。AS2 连接测试分为 测试和生产两部分。
5.接下来Chrysler将会给M公司分配 Signup 账号。后期供应商可以登录EMTS网站查看业务单据的处理情况。
6.由于切换项目Chrysler并不参与EDI业务测试,因此需要M公司的业务人员和知行EDI实施顾问一起进行业务测试,将系统生成各业务单据与此前成功上线的业务单据进行比对。
项目回顾
1.解决发送方ID不同时的文件分流
通常情况下,接收同一个交易伙伴发来的EDI报文只会出现一个发送方ID。但由于本次对接Chrysler的EDI项目需要对接Chrysler多条业务线,因此会出现多个发送方ID,需要进行文件分流。
在知行之桥EDI系统中我们可以在Script端口的设置选项卡下编写RSB脚本来实现对文件名的修改。
代码如下:
<rsb:set attr="input.file" value="[FilePath]" />
<rsb:set attr="input.filename" value="[FileName]" />
<rsb:call op="x12Scan" in="input" out="out"><rsb:set attr="data.type" value="[out.DocumentType | def |trim]" /><rsb:set attr="data.senderId" value="[out.InterchangeSenderId | def |trim]"/>
</rsb:call><rsb:set attr="output.FileName" value="Chrysler_[data.senderId]_[data.type]_[filename]"/>
<rsb:set attr="output.FilePath" value="[FilePath]"/>
<rsb:push item="output" />
上述代码能够根据发送方ID对文件进行分流,本次EDI项目中会出现三个不同的发送方ID,因此主要将文件分为三组:
第一组包括:EDI 850、EDI 860;
第二组包括:EDI 830、EDI 862、EDI 861、EDI 820以及EDI824;
第三组包括:针对接收到的 EDI 810回复的EDI 997,功能性确认。
2.跨工作区的文件传输
在上述工作流中,M公司向Chrysler发送EDI 856 以及EDI 810时,M公司的业务人员需要填写相应的Excel模板,并将其发送至指定邮箱中。这里理应创建一个EmailReceive端口,用于配置收件箱信息。但工作流中使用了WorkspaceReceive端口,如下图所示:
M公司使用知行之桥EDI系统对接多个交易伙伴,可以在工作流界面右上角创建不同的工作区来区分不同的交易伙伴。
但所有交易伙伴如果都使用一个收件箱,则可以通过WorkspaceReceive端口以及WorkspaceSend这两个免费端口实现跨工作区的文件传输,尽可能减少付费端口的使用,节约成本。
可以在工作流中搭建上述工作流,给每个交易伙伴都创建一个WorkspaceSend端口,如下图所示:
搭建上述工作流即可以让多个Chrysler以及CompanyA、CompanyB共同使用一个EmailReceive端口了。
关于如何配置Workspace Receive 以及 Workspace Send 端口,请参考:Workspace Receive 以及 Workspace Send 端口介绍
扩展阅读:EDI是什么?
相关文章:

汽车EDI:Chrysler EDI项目案例
菲亚特克莱斯勒汽车Fiat Chrysler Automobiles(FCA)是一家全球性汽车制造商,主营产品包括轿车、SUV、皮卡车、商用车和豪华车等多种车型。其旗下品牌包括菲亚特、克莱斯勒、道奇、Jeep、Ram、阿尔法罗密欧和玛莎拉蒂等。 Chrysler通过EDI来优化订单处理、交付通知、…...

Locust:可能是一款最被低估的压测工具
01、Locust介绍 开源性能测试工具https://www.locust.io/,基于Python的性能压测工具,使用Python代码来定义用户行为,模拟百万计的并发用户访问。每个测试用户的行为由您定义,并且通过Web UI实时监控聚集过程。 压力发生器作为性能…...

用23种设计模式打造一个cocos creator的游戏框架----(十八)责任链模式
1、模式标准 模式名称:责任链模式 模式分类:行为型 模式意图:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处…...
100天精通风控建模(原理+Python实现)——第9天:风控建模中为什么需要特征工程?
风控模型已在各大银行和公司都实际运用于业务,用于营销和风险控制等。本文以视频的形式阐述风控建模中为什么需要特征工程。并提供风控建模原理和Python实现文章清单。 之前已经阐述了100天精通风控建模(原理+Python实现)——第1天:什么是风控建模? 100天精通风控…...
【PHP】计算某个特定时间戳距离现在的天数
在PHP中,你可以使用time()函数获取当前时间的时间戳,然后将它与你想要计算的过去或未来的时间戳进行比较。为了得到相差的天数,你需要先用两个时间戳相减得到秒数差,然后再除以一天的总秒数(通常是86400秒)…...

lv12 uboot移植深化 9
u-boot-2013.01移植 【实验目的】 了解u-boot 的代码结构及移植的基本方法 【实验环境】 ubuntu 14.04发行版FS4412实验平台交叉编译工具arm-none-linux-gnueabi- 【注意事项】 实验步骤中以“$”开头的命令表示在 ubuntu 环境下执行 【实验步骤】 1 建立自己的平台 1.…...

大数据与深度挖掘:如何在数字营销中与研究互动
数字营销最吸引人的部分之一是对数据的内在关注。 如果一种策略往往有积极的数据,那么它就更容易采用。同样,如果一种策略尚未得到证实,则很难获得支持进行测试。 数字营销人员建立数据信心的主要方式是通过研究。这些研究通常分为两类&…...
xtu oj 1327 字符矩阵
按照示例的规律输出字符矩阵。 比如输入字母D时,输出字符矩阵如下 ABCDCBA BBCDCBB CCCDCCC DDDDDDD CCCDCCC BBCDCBB ABCDCBA字符矩阵行首、尾都无空格。 输入 每行一个大写英文字母,如果字符为#,表示输入结束,不需要处理。 …...

讨论用于评估DREX的五种DR指标
概要 动态范围是已经使用了近一个世纪的用于评估接收机性能的参数。这里介绍五种动态有关指标的定义及测试方法,用于评估数字接收激励器(DREX,digital receiver exciters)。DREX是构成雷达的关键整部件,其瞬时带宽&am…...
基于SpringBoot的在线疫苗预防小程序
文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的在线疫苗预防小程序,ja…...
Kafka使用总结
1、Kafka是何如做到高性能的? a、消息批处理减少网络通信开销,提升系统吞吐能力(先攒一波,消息以“批”为单位进行处理) 生产端:无论是同步发送还是异步发送,Kafka都不会立即就把这条消息发送出…...

2023 年山东省职业院校技能大赛(高等职业教育) “信息安全管理与评估”样题
2023 年山东省职业院校技能大赛(高等职业教育) “信息安全管理与评估”样题 目录 任务 1 网络平台搭建(50 分) 任务 2 网络安全设备配置与防护(250 分) 模块二 网络安全事件响应、数字取证调查、应用程序安…...

Apache Web 服务器监控工具
将Apache Web 服务器监控纳入 IT 基础架构管理策略有助于先发制人地识别性能瓶颈,这种主动监控方法提供必要的数据,以确保 Web 服务器能够胜任任务,并在需要时进行优化。保证客户获得流畅、无忧的用户体验可以大大有助于巩固他们对组织的信任…...
MySQL执行语句 Table ‘mysql.servers‘ doesn‘t exist
执行语句报错: mysql> flush privileges; ERROR 1146 (42S02): Table mysql.servers doesnt exist解决: 进入数据库 删除servers表 mysql> use mysql Database changed mysql> drop table if exists servers; Query OK, 0 rows affected, …...

在datagridview列显示下拉操作
DataGridViewComboBoxExColumn 设定好类型 需要设置的地方是: 绑定数据的操作: 因为此处绑定数据实际为数据 参数 显示的操作,不影响datasource的数据绑定 下一步 数据绑定: DGVCOrderZhuangtai.ValueType typeof(EOrderZhuan…...
基于人工智能 RL 算法的边缘服务器智能选择 模式研究
提出了一种基于人工智能深度强化学习算法的扩展性及智能性较高的智能选择模式。在人工智能深度强化学习 算法的基础上,引入了动作抑制、四重 Q 学习 (QQL) 及归一化 Q-value 等机制,研究并实现了在满足业务延迟要求及公平 性的原则下,物联终端…...
JavaScript流程控制语句
代码块: JS中,可以通过代码块来为代码进行分组, 在同一个代码块中的代码就属于一组代码 这组代码要么全都执行,要么都不执行 JS的代码块比较奇葩。 通常情况下,代码块对于外部来说应该是隔离的, 在代…...
01.Git分布式版本控制工具
一、Git简介 Git是一个开源的分布式版本控制系统,可以有效、高速地进行从很小到非常大的项目的版本管理。 Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。 二、版本控制器方式 1.集中式版本控制工具 版本库放在中央服务器中&…...

Hudi介绍
在数据不断写入 Hudi 期间,Hudi 会不断生成 commit、deltacommit、clean 等 Instant 记录每一次操作类型、状态及详细的元数据,这些 Instant 最终都会存到 .hoodie 元数据目录下,为了避免元数据文件数量过多,ActiveTimeline 越来越…...

MYSQl基础操作命令合集与详解
MySQL入门 先来个总结 SQL语言分类 DDL(Data Definition Language) - 数据定义语言: 用于定义和管理数据库结构,包括创建、修改和删除数据库对象。 示例:CREATE, ALTER, DROP等语句。 DML(Data Manipulation Lan…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...

GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...

如何在Windows本机安装Python并确保与Python.NET兼容
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
python打卡day49@浙大疏锦行
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 一、通道注意力模块复习 & CBAM实现 import torch import torch.nn as nnclass CBAM(nn.Module):def __init__…...

智警杯备赛--excel模块
数据透视与图表制作 创建步骤 创建 1.在Excel的插入或者数据标签页下找到数据透视表的按钮 2.将数据放进“请选择单元格区域“中,点击确定 这是最终结果,但是由于环境启不了,这里用的是自己的excel,真实的环境中的excel根据实训…...