汽车EDI: BMW EDI项目案例

宝马集团是全世界成功的汽车和摩托车制造商之一,旗下拥有BMW、MINI和Rolls-Royce三大品牌;同时提供汽车金融和高档出行服务。作为一家全球性公司,宝马集团在14个国家拥有31家生产和组装厂,销售网络遍及140多个国家和地区。

本文主要介绍国内某汽车供应商A公司与BMW之间的EDI项目。随着双方合作的不断加深,需要处理的业务单据量也越来越大,宝马向A公司发出EDI对接邀请,旨在实现双方能够通过EDI传输业务文件,最大程度上减少库存堆积,提高信息交换速率。

BMW 需求
传输协议

BMW采用OFTP2.0 via INTERNET,会对传输数据进行签名加密,实现业务数据安全传输,且 EERP 可保障传输具有不可否认性。

报文标准

供应商需要接收来自BMW的Calloff:VDA4984 预测订单
供应商需要向BMW发送ASN:VDA4987 发货通知

系统集成

通过中间数据库的方式,实现知行之桥 EDI 系统与A公司 ERP 系统集成。

除了中间数据库方式,知行之桥EDI系统还提供Webservice、API、tRFC IDOC以及中间格式等实现EDI系统与企业内部业务系统的数据同步。了解更多相关信息可以参考文章:EDI集成ERP一体化解决方案

BMW EDI 项目实施

主要分为 准备阶段、EDI连接测试、EDI映射、SIT&UAT、切换生产这5个阶段。

准备阶段

主要进行业务逻辑梳理。我们的实施工程师将会与A公司确认以下三点:

1)业务类型以及业务流程
2)业务逻辑
3)相关系统逻辑

EDI 连接测试阶段

主要由部署服务器、与宝马BMW交换配置信息、连接测试三部分组成。

部署服务器,服务器需要具备公网IP、域名,支持外网通信,防火墙/代理需要允许外部网络访问。

交换配置信息,需要与宝马BMW 交换连接信息,如:端口号、远程服务器。

连接测试,宝马BMW发送VDA 4984测试文件给A公司,A公司对接收到的文件进行检查。A公司给宝马BMW 发送VDA 4987测试文件,宝马BMW 将会对接收到的文件进行检查。

EDI 映射阶段

EDI顾问会根据宝马BMW 的EDI规范文件整理VDA 4984以及VDA 4987的映射关系,并进行本地实施,搭建中间数据库方案工作流。

SIT & UAT 阶段

SIT & UAT 阶段主要完成 SIT 测试以及 UAT 测试,这是与宝马BMW 建立 EDI 连接的一个很重要的阶段。

SIT 主要进行EDI结构测试,EDI实施工程师将会与宝马BMW进行字段验证,检查传输的EDI报文中的字段是否正确。

UAT 主要进行业务测试,EDI实施工程师将会与宝马BMW进行数据验证,检查传输的数据是否正确。

切换生产

以上步骤实施完成之后,即可开始切换生产模式,即正式通过EDI与宝马BMW传输VDA 4984以及VDA 4987。

项目成果

在A公司的本地服务器上部署知行之桥EDI系统,并通过OFTP与宝马BMW建立EDI连接。

BMW_EDI_case1.png

接收方向:通过OFTP端口接收宝马BMW发来的 VDA 4984,经格式转换后,将接收到的数据写入至中间数据库中,A公司 ERP 系统在中间数据库轮询抓取接收到的订单业务数据。

发送方向:A公司 ERP系统向中间数据库中写入发货通知的业务数据,知行之桥EDI系统将会在中间数据库中抓取数据,经过格式转换,将数据转换为宝马BMW可以接收的符合国际标准的报文格式之后,通过OFTP端口发送给宝马BMW。

其他单据

除了Calloff:VDA 4984、ASN:VDA 4987之外,与BMW建立EDI连接还可能会涉及到TSB:VDA 4939 装运文件以及VDA标签:VDA 4902的制作。由于本次对接BMW的EDI项目中,暂时没有用到这两种单据,因此本文暂不展开讲解。

项目回顾
1.VDA 4984中订单号的位置

在宝马BMW发送过来的VDA 4984报文中,订单号的位置需要注意,通常情况下,订单号会被存放在VDA 4984报文中的BGM中,但宝马BMW的订单号则会被保存在RFF+ON字段,而BGM传的是ICN号,也就是文件传输编号。

2.ASN编号的取值位置

在VDA 4987报文中,宝马要求BGM字段和RFF+AAS以及RFF+CRN字段都传输ASN编号。

3.宝马BMW的包装方式

A公司 EDI 项目中,VDA 4987的包装方式主要为散箱的方式,即报文中只包含箱子的信息。但宝马BMW会将这种只传箱子的包装方式当作整托处理,即一个托盘中放置散箱。这是宝马BMW内部在处理业务逻辑上会做的处理,供应商发送 VDA 4987时,只需按照正常的散箱处理即可。

4.宝马BMW的尺寸信息

宝马BMW需要将 VDA 4987的尺寸、重量等信息由头部转移至明细部分。其中尺寸信息为单箱的信息,而重量、体积信息则是当前运输的所有包装的重量及体积信息。

5.给宝马BMW发送发货通知时,需要在报文中进行标识

与BMW之间的合作方式包括:正常交货、直接交付、MAB、JIT以及仓库交货。

本次与宝马BMW的合作中,A公司采用直接交付的方式,因此在VDA 4987发货通知中需要将对应的流程标识符填写为固定值“DIRECTSUPPLY”。

可以在VDA 4987发货通知的BGM/C002/_1000字段中填写不同的标识符,用于对文件进行区分。

6.与宝马BMW进行 EDI 测试细节

与宝马BMW进行 EDI 测试时需要注意,宝马BMW发出的每一封邮件中都会明确告知回复 VDA4987 的截止日期,如果没有按期回复,则需要等待宝马BMW的下一次响应。由于等待时间较长,为了不影响项目进度,必须保证响应速度。

如果您希望了解更多 EDI 相关信息,欢迎交流。

阅读原文:汽车EDI:BMW EDI项目案例

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

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

相关文章

什么是 Socks5 代理?了解和使用 SOCKS5 代理的终极指南

SOCKS5是什么以及它如何工作? 在网络和互联网协议领域,有多种工具和技术在确保安全高效的通信方面发挥着至关重要的作用。 SOCKS5 就是这样一个工具,它代表套接字安全版本 5。 在这篇博文中,我们将深入探讨 SOCKS5 的细节&…

CoAtNet(NeurIPS 2023, Google)论文解读

paper:CoAtNet: Marrying Convolution and Attention for All Data Sizes third-party implementation:https://github.com/huggingface/pytorch-image-models/blob/main/timm/models/maxxvit.py 背景 自AlexNet以来,ConvNets一直是计算机…

【基于R语言群体遗传学】-5-扩展到两个以上等位基因及多基因位点

我们现在继续对于群体遗传学进行统计建模,书接上回,我们讨论了孤雌生殖的物种违反哈代温伯格遗传比例的例子,那我们现在来看多于两个等位基因的情况的计算。 如果没有看过之前文章的同学,可以先去看一下之前的文章: …

开源租房项目

项目名称项目地址描述体验地址后端代码前端代码小程序端代码gitHubstart租房或房屋交易项目https://github.com/saysky/manland?tabreadme-ov-filePC端 管理端http://manland.liuyanzhao.com/有有无房适–房屋租赁管理平台https://github.com/LiuXIn011/rightHouse开源房屋管理…

非对称加密算法原理与应用1——秘钥的生成

作者:私语茶馆 1.前言 非对称算法有非常多的用途,实现license管控,数字签名,加密内容等等,由于涉及场景和标准非常多,因此实际使用过程中还是存在一定门槛,这里记录一下利用非对称算法RSA的应用关键点,并提供实现license管理的案例。预计拆分为以下几个章节: (1)秘…

Apipost接口测试工具的原理及应用详解(三)

本系列文章简介: 随着软件行业的快速发展,API(应用程序编程接口)作为不同软件组件之间通信的桥梁,其重要性日益凸显。API的质量直接关系到软件系统的稳定性、性能和用户体验。因此,对API进行严格的测试成为软件开发过程中不可或缺的一环。在众多API测试工具中,Apipost凭…

【分布式数据仓库Hive】HivQL的使用

目录 一、Hive的基本操作 1. 使用Hive创建数据库test 2. 检索数据库(模糊查看),检索形如’te*’的数据库 3. 查看数据库test详情 4. 删除数据库test 5. 创建一个学生数据库Stus,在其中创建一个内部表Student,表格…

ubuntu20.04在anaconda环境下不能使用catkin_make

ubuntu20.04在anaconda环境下不能直接使用catkin_make编译,报错显示需要安装python3-empy 这时候查询会发现该软件包已经安装了,但是是在ROS环境中,安装anaconda环境后python解释器的指向变了,所以需要在anaconda环境中再装pytho…

Unity udp通信详解

在Unity中实现UDP通信,需要使用C#的System.Net和System.Net.Sockets命名空间。UDP(用户数据报协议)是一种无连接的网络协议,它允许数据包在网络上发送和接收,但不保证数据包的到达顺序、完整性或可靠性。这使得UDP非常…

沃德校园助手丨校园跑腿-校园外卖-校园论坛三合一系统

校园跑腿项目其实由来已久,由于大学校园生活的特殊性,除了日常的课程学习之外,大学生的所有生活基本长期处于全模式形态下的校园封闭环境中,再加之当前大学生一部分学业繁忙,办事不便。另一部分自理能力较差&#xff0…

【kafka】可视化工具cmak(原kafka-manager)安装问题解决

众所周知(反正不管你知不知道),kafka-maneger更名了,现在叫cmak!原因是什么呢?据不可靠小道信息说,原kafka-manager这个名字涉及到kafka商标使用问题,应该是被律师函警告了&#xff…

如何批量创建、提取和重命名文件夹!!!

你是否还在一个一个手动创建文件名! 你是否还在一个一个手动提取文件名! 你是否还在一个一个手动修改文件名! 请随小生一起批量自动创建、提取、重命名! 1、批量创建文件夹 【案例】创建1日-31日共31个文件夹 【第一步】在A列…

Android SurfaceFlinger——动画播放流程(十六)

前两篇文章介绍了系统启动动画服务的启动和准备阶段,并且我们选择了自定义动画的分支,该分支的动画播放流程主要包含一下几个阶段: loadAnimation:解析 zip 包的动画数据。playAnimation:播放解析好的纹理数据。releaseAnimation:播放完毕释放资源。一、动画播放流程 1、…

Gradle学习-5 发布二进制插件

注:以下示例基于Gradle8.0 1、发布插件 复制一分 buildSrc,执行命令行,生成一个新目录 leon-gradle-plugin cp -rf buildSrc leon-gradle-plugin在 leon-gradle-plugin 目录下的 build.gradle 中引入maven plugins{// 引用 Groovy 插件&…

(五十二)第 8 章 动态存储管理(边界标识法)

1. 背景说明 2. 示例代码 1) errorRecord.h // 记录错误宏定义头文件#ifndef ERROR_RECORD_H #define ERROR_RECORD_H#include <stdio.h> #include <string.h> #include <stdint.h>// 从文件路径中提取文件名 #define FILE_NAME(X) strrchr(X, \\) ? strr…

Linux环境下的字节对齐现象

在Linux环境下&#xff0c;字节对齐是指数据在内存中的存储方式。字节对齐是为了提高内存访问的效率和性能。 在Linux中&#xff0c;默认情况下&#xff0c;结构体和数组的成员会进行字节对齐。具体的对齐方式可以通过编译器选项来控制。 在使用C语言编写程序时&#xff0c;可…

【Linux】线程——线程的概念、线程的特点、线程的优点和缺点、线程和进程、线程函数的使用

文章目录 Linux线程1. 线程的概念1.1 什么是线程 2. 线程的特点2.1 线程的优点2.2 线程的缺点2.4 线程和进程 3. 线程函数的使用pthread_create() 创建线程pthread_self() 获取线程IDpthread_exit() 线程终止pthread_cancel() 线程取消pthread_join() 线程等待pthread_detach()…

【第14章】MyBatis-Plus批量操作

文章目录 前言一、功能概览二、类结构说明1.MybatisBatch<?>2.MybatisBatch.Method<?>3. BatchMethod<?>4.使用步骤5.返回值说明 三、使用示例1. execute方法2. 示例一&#xff1a;实体类型数据3. 示例二&#xff1a;非实体类型数据4. 示例三&#xff1a;…

茗鹤 | 如何借助APS高级计划排程系统提高汽车整车制造的效率

在我们做了详尽的市场调研及头部汽车制造企业排程需求沟通后&#xff0c;我们发现尽管企业有很多的业务系统做支撑&#xff0c;在计划排程领域&#xff0c;所有的汽车制造总装厂仍旧使用人工“Excel”做排产规划&#xff0c;其中少部分也会借助MRP、第三方辅助排产工具。鉴于我…

ChatGPT:Java中的对象引用实现方式

ChatGPT&#xff1a;Java中的对象引用实现方式 如果使用句柄的话&#xff0c;那么 Java 堆中将会划分出一块内存来作为句柄池&#xff0c;reference 中存储的就是对象的句柄地址&#xff0c;而句柄中包含了对象实例数据与对象类型数据各自的具体地址信息。 你提到的句柄机制是…