汽车EDI——Volvo EDI 项目案例
项目背景
作为Volvo的长期合作伙伴,C公司收到Volvo的EDI对接邀请,需要实现EDI对接。C公司将会面临哪些挑战?又应该相应地选择何种EDI解决方案呢?
汽车行业强调供需双方的高效协同(比如研发设计、生产计划、物流信息等的协同与共享),才能使各节点企业受益,达到快速响应市场的目的。尤其是在项目正式量产以后,汽车零部件企业需要高密度、高频次地传输业务数据,并且快速驱动内部的计划与物流体系,满足准时交付。这意味着对于企业的数据传输和处理能力有着较高的要求,传统的下单方式不再满足企业当前的业务需求。
项目挑战
部分汽车主机厂或者大型制造商可以提供Portal网站等平台,使得企业可以获取和发送业务数据。短期来看可以满足与交易伙伴的合作需求,但却无法与企业内部业务系统集成,仍然需要进行人工处理和数据录入。本次需要与Volvo建立EDI连接的企业C公司的主要诉求在于解决这部分人工处理的工作量,实现其内部业务系统与EDI系统的集成,从而使得业务数据能够被自动化处理。
沃尔沃Volvo EDI 项目需求
传输协议:OFTP
沃尔沃Volvo通过使用传输层安全(TLS)实现了会话级加密。TLS通过对沃尔沃Volvo与其合作伙伴之间交换的所有协议命令和数据进行加密,从而提供数据的保密性。这将提供足够的安全性,防止第三方从传输中提取任何有用的信息。启动EDI项目之后,Volvo将会提供OFTP连接参数给C公司,包括:SSID、SFID、DNS名称以及端口号等信息。
报文标准:EDIFACT
业务类型:DELFOR,DESADV
DELFOR: Delivery Schedule 交货计划(长期)
DESADV:Despatch Advice 发货通知
运输标签
除了上述对于传输协议以及报文标准的需求之外,对接Volvo的EDI项目还需要制作标签。Volvo对于运输标签的要求十分严格,因此企业需要提前预留充足的时间进行标签测试。
EDI 解决方案
考虑到供应商的集成需求,在与知行的项目经理沟通后,最终选择中间数据库方案。采用多张数据库表作为中间表,存放知行之桥EDI系统收到EDI报文后解析所得的业务数据以及发送EDI报文需要ERP提供的数据。
供应商当前使用的是金蝶ERP系统,EDI系统和ERP系统通过各自的接口来连接中间数据库表,实现从中间数据库表中存放和读取数据。
传统业务模式 VS 直连EDI
传统业务模式

- 供应商与主机厂通过电子邮件或是电话进行业务沟通;
- 数据通过人工录入到业务系统或制表;
- 物料被送至中间中转仓库或是主机厂;
- 主机厂收货验收,录入系统;
- 供应商确认货物送达,更新货物接收情况。
直连 EDI

- 供应商与主机厂通过EDI系统进行业务沟通;
- 采购方向供货方发送DELFOR/DELJIT,说明物料需求及交付时间等;
- Label附在货物包装上,用于收货确认;
- 供货方向收货方发出的货物发运信息,通知收货方做好收货准备;
- 收货方扫描验收,确认收货。
如何实现与沃尔沃Volvo的EDI对接?
1.搭建EDI传输通道
在知行之桥EDI系统中,建立 OFTP2 连接只需要创建一个 OFTP 端口,并在可视化界面中配置交易双方的连接信息即可。
OFTP端口的 设置 页面中填写 Volvo 的 OFTP2 连接信息:包括SSID/SFID、远程主机地址、Volvo的加密证书等。

个人设置 页面下的 OFTP 选项卡中填写C公司自己的OFTP2连接信息

2.数据格式转换
数据格式转换部分主要实现EDIFACT标准下的EDI报文与数据库XML之间的格式转换。
本项目中使用的数据库端口是MySQL,用于配置数据库表信息,完成与中间数据库表的连接。目前支持的数据库有:MySQL、PostgreSQL、SQLite、SQL Server、Oracle等。
项目成果
根据上述 EDI 需求,我们需要在知行之桥EDI系统中搭建如下所示的工作流:

上图为本次对接Volvo EDI 项目的完整工作流,其中红色方框中的部分为发送方向,主要实现的功能为抓取MySQL中间表中的数据,经过格式转换后生成发货通知 EDI报文发送给Volvo。蓝色方框中的部分为接收方向,主要实现的功能为接收Volvo发来的EDI报文,经过格式转换后将其中包含的交付预测数据存入指定的MySQL中间表中。
使用端口计数:总计使用7个端口(其中OFTP端口被分为了发送和接收两个操作)。
以上工作流已经添加到知行之桥EDI系统中,用户可以一键导入此工作流,配置自己的相关信息即可查看转换效果。点击下载知行之桥EDI系统
测试流程
测试流程涉及OFTP连接测试、对EDI报文的业务测试以及标签测试。根据以往的项目经验,在标签测试部分需要花费较多的时间,因此通常情况下测试周期为一个月左右。
OFTP连接测试
目前知行帮助企业与Volvo对接的EDI项目中,都需要供应商申请自己的Odette证书。因此连接测试需要按照如下步骤进行:
1.购买Odette证书,企业可以自行购买或者由知行软件代购。流程参考:申请和更新Odette证书操作指南
2.交换双方的OFTP连接信息,企业需要在知行之桥EDI系统中配置自己和Volvo的OFTP连接信息。
3.开始OFTP连接测试,需要测试接收和发送文件,确保双方能够正常收发。
业务测试
企业需要接收一个DELFOR,并且基于这个DELFOR物料需求计划向Volvo回复一个DESADV发货通知。
业务测试过程中,如果遇到任何问题,可以与Volvo的EDI团队通过邮件进行沟通。
标签测试
知行之桥EDI系统支持生成运输标签,我们的EDI实施工程师根据以往对接Volvo的EDI项目经验,能够设计符合要求的运输标签。此外企业也可以借助标签生成系统自行制作标签。由于标签测试需要打印纸质版并邮寄至Volvo专门负责标签的部门进行检验,需要大概一周的时间。因此企业一定注意预留好标签测试时间,以免影响项目进度。
阅读原文
相关文章:
汽车EDI——Volvo EDI 项目案例
项目背景 作为Volvo的长期合作伙伴,C公司收到Volvo的EDI对接邀请,需要实现EDI对接。C公司将会面临哪些挑战?又应该相应地选择何种EDI解决方案呢? 汽车行业强调供需双方的高效协同(比如研发设计、生产计划、物流信息等…...
Qt应用程序发布
一、静态编译发布 1.0:以Release模式构建工程 1.1:查看当前构建生成路径,并将所生成的.exe单独拷贝出来 1.2:将可执行文件*.exe拷贝至任一目标文件夹:D:\Temporary\QQIF 2:查看安装Qt时发布工具windeployqt.exe所在的目录 windeployqt.exe在Qt开发套件的bin目录下。Qt的每…...
Python 机器学习 基础 之 【常用机器学习库】 NumPy 数值计算库
Python 机器学习 基础 之 【常用机器学习库】 NumPy 数值计算库 目录 Python 机器学习 基础 之 【常用机器学习库】 NumPy 数值计算库...
Linux Kernel nf_tables 本地权限提升漏洞(CVE-2024-1086)
文章目录 前言声明一、netfilter介绍二、漏洞成因三、漏洞危害四、影响范围五、漏洞复现六、修复方案临时解决方案升级修复方案 前言 2024年1月,各Linux发行版官方发布漏洞公告,修复了一个 netfilter:nf_tables 模块中的释放后重用漏洞(CVE-…...
[word] word如何清除超链接 #媒体#笔记#知识分享
word如何清除超链接 办公中,少不了使用word,这个是大家必备的软件,今天给大家分享下word如何清除超链接的操作办法,一起来学习下吧! 1、清除所有超链接 按下组合键CtrlshiftF9,就可以将网上复制带有超链…...
【Linux】进程(9):进程控制1
大家好,我是苏貝,本篇博客带大家了解Linux进程(9)进程控制1,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 1 fork函数2 进程终止(A)终止是…...
华为RH2288H V3服务器iBMC的SSL证书续期
本文对华为RH2288H V3服务器iBMC的SSL证书续期,以避名登录告警提示及主机状态异常。 一、检查现网服务器iBMC的SSL证书到期时间 登录iBMC,点击配置--SSL证书,如下: 可以看到本服务器SSL证书将于今年7月22日到期。 二、联系厂家…...
ubuntu开机黑屏
BusyBox v1.30.1 (Ubuntu 1:1.30.1-4ubuntu6.1) built-in shell (ash) Enter help for a list of built-in commands. 解决: help 看看哪个盘出问题了 fsck -y /dev/sda1 (出问题的磁盘/分区) reboot 就可以进入系统了 fsck命令…...
【risc-v】arm和riscv有什么关系或者联系?
ARM和RISC-V都是基于精简指令集计算(RISC)原理的处理器架构,它们在设计理念上有一定的联系,但同时存在一些关键的区别: 设计理念:ARM和RISC-V都采用了RISC的核心设计原则,即通过简化指令集来提高…...
Flutter项目开发模版,开箱即用
前言 当前案例 Flutter SDK版本:3.22.2 每当我们开始一个新项目,都会 引入常用库、封装工具类,配置环境等等,我参考了一些文档,将这些内容整合、简单修改、二次封装,得到了一个开箱即用的Flutter开发模版…...
私有仓库搭建
目前市面上比较常见的私有仓库搭建方法为: 通过 Sinopia 或 verdaccio 搭建(Sinopia 已经停止维护,verdaccio 是 Fork 自 Sinopia,基本上大同小异),其优点是搭建简单,不需要其他服务。通过 cnp…...
axios设置 responseType为 “stream“流式获取后端数据
使用前景: 工作过程中遇到了后端接口响应过慢,前端界面一致loading的情况,这个时候可以尝试采用将Axios的responseType参数被设置为stream类型实现。 stream介绍: stream类型意味着你希望服务器响应的数据以Node.js流ÿ…...
Apache POI(使用Java读写Excel表格数据)
1.Apache POI简介 Apache POI是一个开源的Java库,用于操作Microsoft Office格式的文件。它支持各种Office文档的读写功能,包括Word文档、Excel电子表格、PowerPoint演示文稿、Outlook电子邮件等。Apache POI提供了一组API,使得Java开发者能够…...
golang中只用定义不用初始化的类型规律总结
在go语言的开发中,有很多的内置类型是我们只需要定义而不需要初始化的, 如上文中提到的bytes.Buffer, strings.Builder。 其实在go语言中官方给我们定义的很多的类型都只需要定义,不需要初始化。 他们都有2个共同的规律ÿ…...
数据库之PostgreSQL详解
一、PostgreSQL介绍 PostgreSQL是一个功能强大的 开源 的关系型数据库。底层基于C实现。 PostgreSQL的开源协议和Linux内核版本的开源协议是一样的。。BDS协议,这个协议基本和MIT开源协议一样,说人话,就是你可以对PostgreSQL进行一些封装&a…...
找出链表倒数第k个元素-链表题
LCR 140. 训练计划 II - 力扣(LeetCode) 快慢指针。快指针臂慢指针快cnt个元素到最后; class Solution { public:ListNode* trainingPlan(ListNode* head, int cnt) {struct ListNode* quick head;struct ListNode* slow head;for(int i …...
ssm629基于SSM的二手交易平台设计与开发+jsp【已测试】
前言:👩💻 计算机行业的同仁们,大家好!作为专注于Java领域多年的开发者,我非常理解实践案例的重要性。以下是一些我认为有助于提升你们技能的资源: 👩💻 SpringBoot…...
【Unity】资源管理与热更 YooAsset+HybridCLR
1 前言 Unity资源管理与热更新该用什么方法?当然是YooAssetHybridCLR了,YooAsset负责资源管理与热更,HybridCLR负责支持代码热更。 但这里我就不自己讲了,我会提供相关学习链接(前人栽树我躺平)。 2 学习链…...
PDF批量加水印 与 去除水印实践
本文主要目标是尝试去除水印,但是为了准备测试数据,我们需要先准备好有水印的pdf测试文件。 注意:本文的去水印只针对文字悬浮图片悬浮两种特殊情况,即使是这两种情况也不代表一定都可以去除水印。 文章目录 批量添加透明图片水印…...
【MySQL】服务器配置和管理
本文使用的MySQL版本是8.0 MySQL服务器介绍 MySQL服务器通常说的是mysqld程序。 mysqld 是 MySQL 数据库服务器的核心程序,负责处理客户端的请求、管理数据库和执行数据库操作。管理员可以通过配置文件和各种工具来管理和监控 mysqld 服务器的运行 官方文档&…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
Ubuntu Cursor升级成v1.0
0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...
Python竞赛环境搭建全攻略
Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...
comfyui 工作流中 图生视频 如何增加视频的长度到5秒
comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗? 在ComfyUI中实现图生视频并延长到5秒,需要结合多个扩展和技巧。以下是完整解决方案: 核心工作流配置(24fps下5秒120帧) #mermaid-svg-yP…...
软件工程 期末复习
瀑布模型:计划 螺旋模型:风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合:模块内部功能紧密 模块之间依赖程度小 高内聚:指的是一个模块内部的功能应该紧密相关。换句话说,一个模块应当只实现单一的功能…...
LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》
🧠 LangChain 中 TextSplitter 的使用详解:从基础到进阶(附代码) 一、前言 在处理大规模文本数据时,特别是在构建知识库或进行大模型训练与推理时,文本切分(Text Splitting) 是一个…...
数据分析六部曲?
引言 上一章我们说到了数据分析六部曲,何谓六部曲呢? 其实啊,数据分析没那么难,只要掌握了下面这六个步骤,也就是数据分析六部曲,就算你是个啥都不懂的小白,也能慢慢上手做数据分析啦。 第一…...
表单设计器拖拽对象时添加属性
背景:因为项目需要。自写设计器。遇到的坑在此记录 使用的拖拽组件时vuedraggable。下面放上局部示例截图。 坑1。draggable标签在拖拽时可以获取到被拖拽的对象属性定义 要使用 :clone, 而不是clone。我想应该是因为draggable标签比较特。另外在使用**:clone时要将…...
