汽车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…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...
三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...
多模态图像修复系统:基于深度学习的图片修复实现
多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
