零售EDI:HornBach EDI 项目案例

HornBach 是一家总部位于德国的家居和建筑材料零售商,成立于1968年。它以大型仓储式商店而闻名,提供广泛的产品,包括建筑材料、园艺、家居装饰和工具等。

HornBach_EDI_case1.png

近期我们帮助HornBach的供应商W公司成功实现了与HornBach的EDI直连,除了满足基本的对接需求之外,为了处理庞大的订单量,降低业务人员的工作量,提高其业务流程的自动化水平,W公司提出希望实现EDI系统与其Salesforce系统之间的集成。基于知行之桥EDI系统的EDI解决方案,支持通过中间数据库、Webservice、API等方式实现与企业内部业务系统的集成。接下来让我们一起看看W公司使用知行之桥EDI系统对接HornBach的项目中都有哪些注意事项吧!

梳理需求文档
1.Technical_data_Sheet_HORNBACH

HornBach会提供一个Technical_data_Sheet_HORNBACH文档给供应商,供应商需要填写这个文档,提供公司明细、EDI联系人信息、EDI服务提供商信息、EDI ID等,并通过邮件回复HornBach。

HornBach也向供应商说明了EDI项目中需要传输的单据类型:ORDERS采购订单(D96A)、DESADV发货通知(D96A)以及INVOIC发票(D01B或者D96A)。提供了测试和生产系统的AS2连接信息以及证书,供应商需要在指定位置填写自己的AS2测试和生产环境的AS2连接信息。

供应商还可以在这个文档中找到HornBach EDI团队的联系信息以及HornBach的GLN、地址以及VAT-ID信息。

2.HB-EDI-NVE-Guideline

HornBach提供的EDI Guideline主要内容包括:EDI连接流程,订单、发货通知以及发票的基本介绍、装运信息、运输信息、发货通知报文的结构示例等内容。在开始EDI项目实施之前,供应商的EDI负责人需要认真阅读此内容。

3.EDI 报文规范资料

针对本次EDI项目中需要传输的三种EDI单据:ORDERS采购订单、DESADV发货通知以及INVOIC发票,HornBach分别提供了与之匹配的EDI报文规范,作为处理EDI报文的映射关系以及注明各EDI字段业务含义的重要参考,并提供了不同业务场景下的示例报文。

此外HornBach还会向供应商提供一个 EDI Agreements文档,供应商需要阅读并同意此文档的内容。

集成方案

根据HornBach提供的上述EDI资料以及邮件沟通,确认了本次项目中使用的传输协议、报文标准以及业务单据类型,接下来需要确认使用何种方式集成W公司内部Salesforce系统。我们的项目经理与W公司的项目负责人沟通之后,最终决定采用接口调用的方式实现集成。接收来自HornBach的订单数据时,由知行之桥调W公司的接口推送数据;向HornBach发送发货通知以及发票时,由W公司调知行之桥的接口推送数据。

项目成果

根据上述需求,在知行之桥EDI系统中搭建如下所示的工作流:

HornBach_EDI_case2.png

上图中的每一个小方块即为一个端口(功能模块),蓝色连接线连接各个功能模块,箭头所指方向即为数据流向。将AS2连接、报文格式转换、数据映射处理、系统集成等不同的功能封装在不同的端口中,用户能够掌握数据流向,快速定位问题。作为一款低代码的EDI软件产品,实现与交易伙伴的EDI对接的绝大部分操作都只需要在可视化界面中操作即可。

第一行工作流实现的功能为:通过AS2,接收HornBach发来的ORDERS采购订单,并将其转换为JSON,通过接口调用,将数据从知行之桥EDI系统获取到Salesforce系统中,实现与供应商Salesforce 系统的集成。

第二行工作流实现的功能为:从Salesforce处获取包含INVOIC发票以及DESADV发货通知数据的JSON文件,将其转换为HornBach要求的EDI报文,并通过AS2发送给HornBach。

AS2连接测试

对接HornBach时,需要注意HornBach的EDI ID为其GLN编号,对供应商而言,在EDI传输过程中的EDI ID也需要是供应商的GLN编号,如果没有则需要先申请这个编号。

准备好供应商的GLN编号、供应商编号以及VAT编号之后,还需要准备3个商品的GTINS以及相应的供应商内部货号,HornBach将会基于这些内容生成一份测试订单,通过邮件发给供应商。写邮件给HornBach,请求进行AS2连接测试。

需要注意,虽然HornBach提供的文档中提供了生产和测试两套AS2连接信息,但实际项目中直接进行了生产系统的连接测试,测试环境HornBach并未启用。

基于知行之桥EDI系统配置HornBach的AS2连接信息,需要在工作流 AS2 端口的设置 选项卡下进行配置。需要配置的信息包括:AS2 ID、交易伙伴 URL、加密算法以及交易伙伴证书。如下所示:

HornBach_EDI_case3.png

根据HornBach提供的EN_Technical_data_Sheet_HORNBACH 文档中的内容进行配置即可,需要注意在配置 交易伙伴证书 的时候,需要将文档中 AS2(http)下的证书配置在上图中的 加密证书 位置;将AS2(https)下的证书配置在上图中的 TLS服务器证书 位置。

EDI业务测试
ORDERS 采购订单

1.HornBach 的订单类型

HornBach的订单编号总是以商店编号开始的7位数字。订单类型体现在ORDERS报文的BGM字段中,由3位数字作为标识:

“220”表示HornBach 商店的库存订单
“221”表示初始设备
“224”表示从供应商发货的网店订单
“227”表示客户订单/特别订单

针对以上4种订单类型,ORDERS EDI 规范中提供了对应的4个报文。

如果是从供应商发货的网点订单,则报文中将会出现两次 NAD+UC 字段:

  • 最终客户的私人送货地址
  • HornBach商店 地址,店内取货

2.ORDERS订单中的ID

HornBach 要求ORDERS报文中的买方ID、收货方ID、供应商ID、最终用户ID等都需要填写为相应角色的GLN编号。

3.在知行之桥EDI系统中的设置

根据HornBach发来的ODRERS报文,需要修改EDIFACT端口下关于EDI分隔符的默认配置,如下所示:

HornBach_EDI_case4.png

在 高级设置 选项卡下找到重复元素分隔符,在这里输入 空格,点击右上角的 保存变更 按钮即可。

DESADV 发货通知

1.本次对接HornBach的EDI项目中,W公司所处的业务模式为直发卖场,没有涉及到SSCC的信息,报文中不体现包装部分内容。

2.HornBach的发货场景包括:

  • 一个DESADV对应一个ORDERS订单

如果当前DESADV仅针对一个ORDERS订单发货,则只需要在主信息中体现订单号。

  • 一个DESADV对应多个ORDERS订单

如果当前DESADV中需要包含多条订单信息,则需要在报文的明细中(RFF字段),填写各物料对应的订单号。

3.发货通知单号由不超过10位的字母+数字组成。

4.在知行之桥EDI系统中的设置

与订单相同,通过知行之桥EDI系统生成DESADV的时候,需要将 EDIFACT端口->高级设置 选项卡 下的重复元素分隔符设置为空格。

HornBach_EDI_case5.png

INVOIC发票

1.关于自由文本的注意事项

INVOIC报文的FTX字段,当限定符为 SUR的时候,表示供应商注释,这里HornBach规定了3段文字,供应商需要根据实际情况进行填写。包含的场景有:

  • 对于在德国为税务目的注册的发票方,如果同意后续费用减少(例如现金折扣,奖金),则第1点的文本是强制性的。
  • 对于欧盟内部的免税配送,第二点的内容是强制性的。
  • 对于欧盟内的免税送货到罗马尼亚发票收件人,从第3点的文本是强制性的。

2.在INVOIC单据中,供应商提供的发票数据如果遇到需要填写国家,注意需要填写ISO3166标准下的两位国家代码。

3.多税率的情况

在INVOIC报文中,税率信息被存储在TAX字段,如果涉及到不同税率,TAX字段需要出现多次。

示例:如果物料A和物料B的税率为X,物料C和物料D的税率为Y,则在INVOIC中,需要将相同税率的物料进行汇总。

阅读原文

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

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

相关文章

jupyter如何切换内核

01、写在前面 Jupyter是一个开源的交互式笔记本工具,支持多种编程语言,包括Python、R、Julia 等。它最初是作为IPython 笔记本的一个分支而开发的,后来逐渐发展成为一个独立的项目。Jupyter的名字来源于它支持的三种编程语言:Juli…

STM32ZET6-USART使用

一、原理说明 STM32自带通讯接口 通讯目的 通信方式: 全双工:通信时可以双方同时通信。 半双工:通信时同一时间只能一个设备发送数据,其他设备接收。 单工:只能一个设备发送到另一个设备,例如USART只有…

动态库实现lua网络请求GET, POST, 下载文件

DLL需要使用的网络封装 WinHttp异步实现GET, POST, 多线程下载文件_webclient post下载文件-CSDN博客文章浏览阅读726次。基于WinHttp封装, 实现异步多线程文件下载, GET请求, POST请求_webclient post下载文件https://blog.csdn.net/Flame_Cyclone/article/details/142644088…

牛客周赛65(C++实现)

比赛链接:牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ 文章目录 1.超市1.1 题目描述1.2 思路1.3 代码 2. 雨幕2.1 题目描述2.2 思路2.3 代码 3.闺蜜3.1 题目描述3.2 思路3.3 代码 4. 医生4.1 题目描述4.2 思路4.3 代码 1.超市 1.1 题目描述 …

机器人技术革新:人工智能的强力驱动

内容概要 在当今世界,机器人技术与人工智能的结合正如星星与大海,彼此辉映。随着科技的不断进步,人工智能不仅仅是为机器人赋予了“聪明的大脑”,更是推动了整个行业的快速发展。回顾机器人技术的发展历程,我们会发现…

使用PostgreSQL进行高效数据管理

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用PostgreSQL进行高效数据管理 PostgreSQL简介 安装PostgreSQL 在Ubuntu上安装PostgreSQL 在CentOS上安装PostgreSQL 在macOS上…

为开源 AI 模型引入激励机制?解读加密 AI 协议 Sentient 的大模型代币化解决方案

撰文:Shlok Khemani 编译:Glendon,Techub News 古时候,中国人深信「阴阳」的概念——宇宙的每一个方面都蕴含着内在的二元性,这两种相反的力量不断地相互联系,形成一个统一的整体。就好比女性代表「阴」&a…

Hi3516/Hi3519DV500移植YOLOV5、YOLOV6、YOLOV7、YOLOV8开发环境搭建--YOLOV5工程编译移植到开发板测试--(5)

专栏链接如下: Hi3516/Hi3519DV500移植YOLOV5、YOLOV6、YOLOV7、YOLOV8开发环境搭建--安装Ubuntu18.04--(1) Hi3516/Hi3519DV500移植YOLOV5、YOLOV6、YOLOV7、YOLOV8开发环境搭建--安装开发环境AMCT、依赖包等--(2)…

【STM32】INA3221三通道电压电流采集模块,HAL库

一、简单介绍 芯片的datasheet地址: INA3221 三通道、高侧测量、分流和总线电压监视器,具有兼容 I2C 和 SMBUS 的接口 datasheet (Rev. B) 笔者所使用的INA3221是淘宝买的模块 原理图 模块的三个通道的电压都是一样,都是POWER。这个芯片采用…

HTML 标签属性——id、class、style 等全局属性详解

文章目录 1. id属性2. class属性3. style属性4. title属性5. lang属性6. dir属性7. accesskey属性8. tabindex属性小结HTML全局属性是一组可以应用于几乎所有HTML元素的特殊属性。这些属性提供了额外的功能和信息,使得网页开发者能够更好地控制元素的行为、样式和可访问性。 …

Python数据分析案例62——基于MAGU-LSTM的时间序列预测(记忆增强门控单元)

案例背景 时间序列lstm系列预测在学术界发论文都被做烂了,现在有一个新的MAGU-LSTM层的代码,并且效果还可以,非常少见我觉得还比较创新,然后我就分享一下它的代码演示一下,并且结合模态分解等方法做一次全面的深度学习…

C++泛型编程

一、什么是泛型编程 泛型编程 是一种编程范式,它通过编写可以处理多种数据类型的代码来实现代码的灵活复用。泛型编程主要通过模板来实现。 比如我们日常使用的容器类型vector就应用了模板来实现其通用性,我们在使用时可以通过传入型别创建对应的动态数…

ServletContext,Cookie,HttpSession的使用

ServletContext对象 ServletContext对象官方也称servlet上下文。服务器会为每一个Web应用创建一个ServletContext对象,这个对象全局唯一,而且Web应用中所有的Servlet都共享这个对象。 ServletContext对象的作用 相对路径转绝对路径 servletContext.g…

如何封装一个可取消的 HTTP 请求?

前言 你可能会好奇什么样的场景会需要取消 HTTP 请求呢? 确实在实际的项目开发中,可能会很少有这样的需求,但是不代表没有,比如: 假如要实现上述这个公告栏,每点击一个 tab 按钮就会切换展示容器容器中…

前端笔试新问题总结

记录总结下最近遇到的前端笔试新问题 目录 一、操作数组方法 1.Array.isArray(arr) 2.Object.prototype.toString.call(arr) "[object Array]" 3.arr instanceof Array 1)跨帧问题 2)修改Array.prototype 3)模拟数组的对象…

玩转Hugging Face/魔搭社区/魔乐社区”教程

2.1 HF 平台 2.1.1 注册Hugging Face 平台 (需要魔法上网) Hugging Face 最初专注于开发聊天机器人服务。尽管他们的聊天机器人项目并未取得预期的成功,但他们在GitHub上开源的Transformers库却意外地在机器学习领域引起了巨大轰动。如今&…

Chrome与夸克谁更节省系统资源

在当今数字化时代,浏览器已经成为我们日常生活中不可或缺的一部分。无论是工作、学习还是娱乐,我们都依赖于浏览器来访问互联网。然而,不同的浏览器在性能和资源消耗方面存在差异。本文将探讨Chrome和夸克两款浏览器在系统资源消耗方面的表现…

【OJ题解】C++实现反转字符串中的每个单词

💵个人主页: 起名字真南 💵个人专栏:【数据结构初阶】 【C语言】 【C】 【OJ题解】 题目要求:给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 题目链接: 反转字符串中的所…

Vue 学习随笔系列十三 -- ElementUI 表格合并单元格

ElementUI 表格合并单元格 文章目录 ElementUI 表格合并单元格[TOC](文章目录)一、表头合并二、单元格合并1、示例代码2、示例效果 一、表头合并 参考&#xff1a; https://www.jianshu.com/p/2befeb356a31 二、单元格合并 1、示例代码 <template><div><el-…

吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)4.3-4.4

目录 第四门课 卷积神经网络&#xff08;Convolutional Neural Networks&#xff09;第四周 特殊应用&#xff1a;人脸识别和神经风格转换&#xff08;Special applications: Face recognition &Neural style transfer&#xff09;4.3 Siamese 网络&#xff08;Siamese net…