汽车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 服务器的运行 官方文档&…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...

AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...

Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...

WPF八大法则:告别模态窗口卡顿
⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题:…...
0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可,…...
第八部分:阶段项目 6:构建 React 前端应用
现在,是时候将你学到的 React 基础知识付诸实践,构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段,你可以先使用模拟数据,或者如果你的后端 API(阶段项目 5)已经搭建好,可以直接连…...
【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解
一、前言 在HarmonyOS 5的应用开发模型中,featureAbility是旧版FA模型(Feature Ability)的用法,Stage模型已采用全新的应用架构,推荐使用组件化的上下文获取方式,而非依赖featureAbility。 FA大概是API7之…...