BMW配送流程:通过EDI对接VDLP

news2025/1/15 17:39:36

BMW的汽车配送流程始于汽车“生产结束”,结束于“交付给宝马经销商”。BMW与其物流服务供应商之间没有直接的接口,EDI信息将会通过BMW的EDI供应商提供的VDLP(车辆分销物流平台)进行交换。

近期我们收到来自国内某汽车行业供应商L公司的需求:由于BMW更换了物流服务供应商,因此需要按照最新要求,通过EDI实现配送流程中的单据传输。

VDLP EDI 需求总览
传输协议

SFTP

传输数据标准

XML

传输的业务单据

VDLP发送给L公司:FV14(车辆运输订单),其中包含文件类型、文件ID、发送方以及接收方ID、货代ID、货代地址信息、发货方地址信息、收货方地址信息、运输方式、运输要求、发货时间、最终目的地等信息。

车辆运输订单将会涉及到两种类型:

EarlyVehicleTransportOrder表示初步/早期车辆运输订单,如果收到这种车辆运输订单,则不需要回复FV17。

VehicleTransportOrder 表示车辆运输订单,如果收到这种订单,需要根据订单信息,回复对应的FV17。

L公司发送给VDLP:FV17(车辆运输状态报告),其中包含文件类型、文件ID、发送方以及接收方ID、货代ID、提单号、装箱单号、运输方式、运输要求、运输工具信息、集装箱信息、卸货地点以及装货地点等信息。

L公司需要分别在刚发货以及货物到达两个时间节点向VDLP发送FV17。

在EDI传输过程中,VDLP要求必须通过SFTP传输协议传输XML形式的业务数据。L公司发送给VDLP的文件名并没有特殊要求,VDLP发出的文件会将文件类型体现在文件名中,例如:VehicleTransportOrder_#########.XML,#号位置一般是由具有唯一性的数字组成。

VDLP EDI 对接解决方案

VDLP_EDI_case1.png

与VDLP搭建SFTP传输通道

SFTP(SSH File Transfer Protocol)安全文件传输协议,与FTP有着几乎一样的语法和功能。SFTP服务器有三种认证方式:密码,公钥以及多重认证方式。在与VDLP的EDI项目中,采用密码认证。

点击SFTP端口,在弹框页面中找到 设置,在这个页面中配置VDLP的SFTP连接信息,包括主机名称或地址、远程主机端口。在客户端认证中,需要配置登录SFTP的用户名和密码,服务器认证部分配置服务器指纹(表示SFTP服务器的证书指纹,也可以设置为包含服务器公钥的证书文件)。高级设置中可以修改SFTP本地文件夹所在的位置。

VDLP_EDI_case2.png

格式转换

由于本次EDI项目中传输的是XML格式,需要通过XMLMap端口实现VDLP要求的XML与数据库XML之间的格式转换。

系统集成

L公司内部具有业务系统,因此可以通过数据库中间表的方式实现业务系统与知行之桥EDI系统之间的格式转换。采用一张或多张数据库表作为中间表,存放知行之桥EDI系统收到EDI报文后解析所得的业务数据,以及发送EDI报文需要ERP提供的数据。中间数据库表,顾名思义它不等于ERP系统的生产数据库表,ERP仅在这个数据库中存放EDI发送报文所需的业务数据,和读取EDI接收的业务数据。

知行之桥EDI系统和ERP系统,通过各自的接口来连接中间数据库表,实现从中间数据库表中存放和读取数据。下图所示便是知行之桥EDI系统中的数据库端口,用于配置数据库表信息,完成与中间数据库表的连接。目前支持的数据库有:MySQL、PostgreSQL、SQLite、SQL Server、Oracle等。在本次项目中选择的数据库为Oracle。

我们的EDI 实施顾问会根据VDLP提供的XML规范文件整理需要传输的业务信息,与L公司的业务人员共同协商需要的字段信息。在跟客户确认业务字段后,ERP和EDI工程师沟通数据库表的结构,根据字段的主从关系来定主从表的结构,确认最终的数据库表结构,进行数据库建表,并进行测试。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1519401.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【DFS算法】排列数字——acwing 842

问题描述 给定一个整数 n,将数字 1∼n 排成一排,将会有很多种排列方法。 现在,请你按照字典序将所有的排列方法输出。 输入格式 共一行,包含一个整数 n。 输出格式 按字典序输出所有排列方案,每个方案占一行。 数…

力扣题目训练(20)

2024年2月13日力扣题目训练 2024年2月13日力扣题目训练594. 最长和谐子序列598. 区间加法 II599. 两个列表的最小索引总和284. 窥视迭代器287. 寻找重复数135. 分发糖果 2024年2月13日力扣题目训练 2024年2月13日第二十天编程训练,今天主要是进行一些题训练&#x…

Android图片加载-Glide4,Android多进程从头讲到尾

open fun load(context: WeakReference, url: String?, image: ImageView?, transformation: BitmapTransformation) { if (image null) return // 具体图片加载逻辑 } open fun load(holder: Int, context: WeakReference, url: String, image: ImageView?, width: Int, …

JAVA 服务可观测性最佳实践

前言 本次实践主要是介绍 Java 服务通过无侵入的方式接入观测云进行全面的可观测。 环境信息 系统环境:Ubuntu(主机环境)开发语言:JDK 11.0.18Web 框架:SpringBoot日志框架:LogbackAPM 探针:…

C语言-存储期

C语言中,变量都是有一定的生存周期的,所谓生存周期指的是从分配到释放的时间间隔。为变量分配内存相当于变量的诞生,释放其内存相当于变量的死亡。从诞生到死亡就是一个变量的生命周期。 根据定义方式的不同,变量的生命周期有三种…

C#,子集和问题(Subset Sum Problem)的算法与源代码

1 子集和问题(Subset Sum Problem) 给定一组非负整数和一个值和,确定给定集合中是否存在和等于给定和的子集。 示例: 输入:set[]={3,34,4,12,5,2},sum=9 输出:真 有一个子集(4,5)和9。 输入:设置[]={3,34,4,12,5,2},和=30 输出:False 没有加起来…

【研发日记】Matlab/Simulink技能解锁(一)——在Simulink编辑窗口Debug

文章目录 前言 时间阈值断点 信号阈值断点 周期步进 Signal Value Lable Data Inspector 分析和应用 总结 前言 近期在一些研发项目中使用Matlab/Simulink时,遇到了挺多费时费力的事情。所以利用晚上和周末时间,在这些方面深入研究了一下&#x…

C++ 作业 24/3/14

1、成员函数版本实现算术运算符的重载&#xff1b;全局函数版本实现算术运算符的重载 #include <iostream>using namespace std;class Test {friend const Test operator-(const Test &L,const Test &R); private:int c;int n; public:Test(){}Test(int c,int n…

蓝桥杯单片机快速开发笔记——PCF8591电压信号探测器(可调电阻Rb2电压)

一、原理图 此处考点分析&#xff1a;可能会在引用iic文件时需要自己在头文件定义SCL/SDA sbit sda P2^1; sbit scl P2^0; 二、思维导图 三、代码示例 #include "iic.h" #include "smg.h"unsigned int adc_value 0; //AIN3的采样数据 float adc_…

医院为什么需要信息集成平台?有什么数据集成平台推荐?

在现代医疗行业中&#xff0c;信息技术的应用已经成为提高医疗服务质量、提升医院管理效率的关键。信息集成平台作为医院信息化建设的重要组成部分&#xff0c;扮演着连接各类医疗信息系统、整合医疗数据的重要角色。本文将详细探讨医院信息集成平台的必要性&#xff0c;以及集…

【JS逆向学习】猿人学第六题 js混淆 回溯

逆向目标 网址&#xff1a;https://match.yuanrenxue.cn/match/6接口&#xff1a;https://match.yuanrenxue.cn/api/match/6参数&#xff1a;payload(m、q) 逆向过程 老规矩&#xff0c;先来分析网络请求&#xff0c;加密的地方一目了然&#xff0c;没什么可多说的&#xff…

【Python】清理conda缓存的常用命令

最近发现磁盘空间不足&#xff0c;很大一部分都被anaconda占据了&#xff0c;下面是一些清除conda缓存的命令 清理所有环境的Anaconda包缓存 删除所有未使用的包以及缓存的索引和临时文件 conda clean --all清理某一特定环境的Anaconda包缓存 conda clean --all -n 环境名清…

【优选算法】专题1 -- 双指针 -- 移动零

前言: &#x1f4da;为了提高算法思维&#xff0c;我会时常更新这个优选算法的系列&#xff0c;这个专题是关于双指针的练习 &#x1f3af;个人主页&#xff1a;Dream_Chaser&#xff5e;-CSDN博客 一.移动零&#xff08;easy&#xff09; 描述&#xff1a; 「数组分两块」是⾮…

面向对象编程第二式:继承 (Java篇)

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…

vue2之过滤器

过滤器 过滤器的实现类似Django的过滤器。 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>过…

c++入门你需要知道的知识点(上)

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 今日主菜&#xff1a;c入门 主厨&#xff1a;邪王真眼 所属专栏&#xff1a;c专栏 主厨的主页&#xff1a;Chef‘s blog 前言&#xff1a; 咱也是好久没有更…

reids设计与实现(一)——数据结构

文章目录 1. 前言2. redis 动态字符串2.1. 字符串的数据结构&#xff1a;2.2. 剖析&#xff0c;length&#xff1b;2.3. 剖析&#xff0c;free&#xff1b;2.3. 使用c字符串函数&#xff1b; 3. redis 链表4. 字典5. 跳跃表6. 整数set&#xff08;intset&#xff09;6.1. 升级&…

【C++ 】list 类

1. 标准库中的list类 list 类 的介绍&#xff1a; 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代 2. list与forward_list非常相似&#xff1a;最主要的不同在于forward_list是单链表 3. 与其他的序列式容器相比(a…

汇编语言(Assemble Language)学习笔记(更新中)

零.学习介绍和使用工具 【1】我们使用的教材是机械工业出版社的《32位汇编语言程序设计第二版》。 指导老师是福州大学的倪一涛老师。 这门课程教授的是Intel 80*86系列处理器的32位汇编。我们现在的处理器都兼容这个处理器。 这篇博客只是大二下汇编语言学习的总结&#xff…

城乡居民基本医疗信息管理系统|基于Springboot的城乡居民基本医疗信息管理系统设计与实现(源码+数据库+文档)

城乡居民基本医疗信息管理系统目录 目录 基于Springboot的城乡居民基本医疗信息管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、病例管理 2、医院资讯信息管理 3、医院资讯类型管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选…