关于 Arrow
Arrow Electronics向工业和商业电子元器件和企业运算解决方案用户提供产品、服务和解决方案,2016年销售额达23.8亿美元。Arrow作为供应渠道合作伙伴,通过遍布全球90多个国家和地区的465多个地点构成的全球网络,为超过125,000家原始设备制造商、合约制造商和商业客户提供服务。

Arrow为什么要推进供应商接入EDI呢?

以下是来自Arrow官网的信息,供参考。

为了提高阅读效率,把上图中的英文翻一下,如翻译不够准确,请指出

电子数据交换EDI
高效&可靠性
EDI电子数据交换是指以标准化商业文档,实现点对点的连接。本质上来说,通过EDI方式交换业务数据信息,可以提高传输速率,提高数据准确性和效率。
Arrow 引领行业与客户、供应商建立基于EDI的联系,以便加快生产预测、采购订单、订单确认、发票等信息流的传输效率。
受益于EDI传输的客户或供应商具有以下共同特点:

  1. 高效处理EDI交易、降低成本和缩短周期
  2. 保证了数据的准确性
  3. 寻求有接入EDI能力的客户或供应商(感受到EDI优势,无法自拔了:-))
  4. 希望通过安全、可靠的方式交换商业数据(EDI是首选)

官方说明看起来好抽象:-(,通过一个订单处理示例来说明EDI的优势。
下图所示,进行EDI处理时,有EDI与无EDI的流程对比。

无edi的订单处理流程,这么长,看着都复杂,而且通过传真和电子邮件方式等的用户对象是人,接收到业务数据也需要人为干预,进行数据的录入的同时容易出错。

相比之下,EDI的流程的简单多。

通过以上示例,简单总结下EDI与其他方式的区别?

EDI与现有的一些通信手段,如传真,电子信箱(Email)等有什么不同之处?具体区别是什么?

  1. EDI传输的是格式化标准文件,并具有格式校验功能,而传真和电子邮箱等传送的是自由格式的文件;
  2. EDI实现的是两个企业之间业务系统数据的自动传输和自动处理,其对象是企业的业务系统, 而传真和电子邮箱等的用户是人,接收到的报文必须人为干预。
  3. EDI对于传送的文件具有跟踪、确认、防篡改、电子签名等一系列安全保密功能,而传真没有这样的功能。虽然电子信箱具有一些安全保密功能,但它比EDI技术的层次低。
  4. EDI文本具有法律效力,而传真和电子信箱没有。

解读Arrow EDI的需求

先看下Arrow AS2连接提供的相关文档

  • Arrow B2B Comm_Profile AS2_EU.DOC
  • Arrow_Quality_2016.zip
  • Arrow production certificates 2016.zip
    文档1:是AS2的配置参数文档,分Quanlity Environment和Production Environment两个环境。
    文档2:是Quanlity Environment的证书,该证书在传输过程中用于签名、加密。
    文档3:是Production Environment的证书,该证书在传输过程中用于签名、加密。

AS2的定义
AS2,是Applicability Statement 2的缩写,是一种电子数据交换规范,旨在确保数据在互联网能够安全可靠地传输。
AS2的目的在于在于通过Internet安全可靠地传输商业文档。首先通过数据加密和数字签名生成数据包,然后基于HTTP(或HTTPS)通过互联网或任何TCP/IP网络进行安全可靠的数据交换。

然后是EDI规范的相关文档

  • EDI INVOICE.PDF (INVOIC:发票信息)
  • EDI_DELFOR_.pdf (DELFOR:订单预测信息)
  • EDI_Util_NE_Out_INVRPT_VMI_D97A.PDF (INVRPT:库存信息)

以上文档符合EDIFACT标准,版本号D97A,目的是将传输的文档标准化,为什么需要标准化?

举个栗子,如果一个人永远只和一个人说话,那么他们两个只要懂相互的意思就O了。但是,如果有几百人都要相互说话。那么还是大家都说标准语言。

在EDI实施过程中,最大的挑战就是来自于EDI标准报文的解析与生成。
甲说,我们没有业务系统,以前Arrow都是发邮件给我们Excel文档,我们要通过Excel格式展示真实业务数据。。。
乙说,我们用的SAP,你们在EDI报文转换过程中,怎么实现与SAP的无缝集成呢。。。
丙说,我们业务系统仅支持导入CSV文件,你们能生成CSV文件吗。。。

综上,为了满足不同客户需求,EDI转换部分根据您实际需求定制开发(定制开发部分的源码是可以share给你们的哦)。
如果您想开发小程序翻译EDIFACT报文,先通过EDIFACT简介了解下结构组成部分。

EDI Demo带您走进EDI新领域
之前有网友留言,理论说了那么多,还是不懂怎么看EDI报文? ?
心好塞,分享那么多,还是不够不够够不够…那就再来点干货。

BGM+241+123456+9’

BGM: Beginning of message,业务数据的开始节点。
BGM01 = 241,表示Delivery Schedule,固定Code,表示该文档传输的是交付计划信息。
BGM02 = 123456,表示Delivery Schedule No,表示交付计划编号。
BGM03 = 09,表示源文档,未做任何修改。

DTM+137:20190108:102’

DTM1.1 = 137 表示日期类型,在这里是指交付日期。(主要DTM出现137,它后面跟的值就是要求的交付日期)
DTM1.2 = 20190108,是实际交付日期。
DTM1.3 = 102,表示日期格式,比如102 = CCYYMMDD,103 = CCYYMMDDHHSS

按照EDI规范说明,Header信息的读取都可以通过以上方式。
从LIN Segment节点开始,是交付计划明细,与Header信息存在一对多的关系。(一般一个交付计划,会对应多个物料号,需注意下Header与Details的一对多关系,以免漏掉一部分明细值)

LIN+1++1178340:BP::92’
PIA+1+1178340:VP::91’
RFF+BO:1234501:1’
QTY+3:1440:PCE’
SCC+4’
QTY+131:240:PCE’
DTM+158:20180611:102’
DTM+159:20180617:102’
SCC+4’
QTY+131:480:PCE’
DTM+158:20180716:102’
DTM+159:20180722:102’
SCC+4’
QTY+131:720:PCE’
DTM+158:20180813:102’
DTM+159:20180819:102’
LIN+2++TVA1280559R5A:BP::92’
PIA+1+TVA1280559R5A:VP::91’
RFF+BO:BEL/1234502:1’
QTY+3:300:PCE’
SCC+4’
QTY+131:50:PCE’
DTM+158:20180611:102’
DTM+159:20180617:102’
SCC+4’
QTY+131:109:PCE’
DTM+158:20180716:102’
DTM+159:20180722:102’
SCC+4’
QTY+131:150:PCE’
DTM+158:20180813:102’
DTM+159:20180819:102’

为了体现一对多的关系,在上面的demo中,放了两个LIN segment,通过下图展示下不同segment之间的关系。

LIN是个Loop结构,意味着在一个文档中可以出现多次。QTY,SCC也是Loop结构。
LINLoop结构下,允许有1个LIN Segment,最多10个PIA Segment,1个IMD Segment,最多99个QTYLoop,最多999个SCCLoop。
1个QTY Loop下只有1个QTY Segment。
1个SCCLoop下只有1个SCC Segment,最多999个QTYLoop。
SCCLoop下的1个QTYLoop,只有1个QTY Segment,最多2个DTM Segment。

LIN+1++1178340:BP::92’

LIN 3.1= 1178340 对应供应商产品编号

PIA+1+1178340:VP::91’

PIA 2.1= 1178340 对应采购商产品编号

SCC+4’

SCC 1 = 4 ,是交付计划状态,表示预测,如果值是1,表示确认订单,可以按其计划发货。

QTY+131:240:PCE’

QTY 1.1 = 131,是固定类型,表示交付数量;
QTY 1.2 = 240,是交付数量具体的值;
QTY 1.3 = PCE,是数量单位。

DTM+158:20180611:102’
DTM+159:20180617:102’

DTM 1.1 = 158 或159, 158 - 开始日期,159 - 截止日期;
DTM 1.2 是真实日期,DTM 1.3是日期格式,同Header的DTM Segment结构一致。

理论说完了,那就准备实战吧,不要偷懒,千万别光看不练。
下方示例,介绍了EDI与自定义XML之间的互相转换,尝试下载软件,及示例工程,在本地搭建环境模拟下整个EDI实施过程。
EDI软件下载地址: https://www.kasoftware.com/download.html
EDI转换示例工程:https://www.kasoftware.com/translation/edi_xml_convert_sample.html

注:文案部分图片及内容来源于网络,版权归原创作者所有,如有侵犯到您的权益,请您联系我们进行删除,给您带来困扰,我们深感抱歉。

十分钟解读Arrow EDI相关推荐

  1. 《心流》——每天十分钟,解读完本书

    <心流>--每天十分钟,解读完本书 你好!这里是[每天十分钟,解读完本书],我是财哥哥,今天为你解读的是<心流>,作者是米哈里.契克森米哈赖.他是积极心理体验这一领域的权威学者 ...

  2. 十分钟教你开发EOS智能合约

    十分钟教你开发EOS智能合约 在CSDN.柏链道捷(PDJ Education).HelloEOS.中关村区块链产业联盟主办的「EOS入门及最新技术解读」专场沙龙上,柏链道捷(PDJ Educatio ...

  3. 十分钟理解线性代数的本质_数学对于编程来说到底有多重要?来看看编程大佬眼里的线性代数!...

    本文提出了一种观点:从应用的角度,我们可以把线性代数视为一门特定领域的程序语言.我们一起来看看!文章有点偏理论讨论,可能比较枯燥,对于一名程序员,你如果看下去,你将会有不一样的收获! 线性代数是什么? ...

  4. gdb好文章:GDB十分钟教程

    (GUI调试器:insight和ddd) list(l) :其作用就是列出程序的源代码,默认每次显示10行. list 行号:将显示当前文件以"行号"为中心的前后10行代码,如:l ...

  5. vue-cli十分钟学习入门笔记――开袋即食

    vue-cli十分钟学习之从一无所知到糊里糊涂 文章目录 vue-cli十分钟学习之从一无所知到糊里糊涂 1.为啥要学习Vue? 2.NodeJs安装及其npm介绍 3.脚手架vue-cli安装 4. ...

  6. 十分钟计算机说课稿,我的十分钟说课稿

    <我的十分钟说课稿>由会员分享,可在线阅读,更多相关<我的十分钟说课稿(2页珍藏版)>请在人人文库网上搜索. 1.归去来兮辞说课稿各位评委老师,大家好!今天我说课的题目是归去来 ...

  7. GDB十分钟教程(转载自Liigo老师)

    GDB十分钟教程 作者: liigo 原文链接: http://blog.csdn.net/liigo/archive/2006/01/17/582231.aspx 日期: 2006年1月16日 本文 ...

  8. 十分钟成为 Contributor 系列 | 为 TiDB 重构 built-in 函数

    2019独角兽企业重金招聘Python工程师标准>>> 这是十分钟成为 TiDB Contributor 系列的第二篇文章,让大家可以无门槛参与大型开源项目,感谢社区为 TiDB 带 ...

  9. 用D3.js 十分钟实现字符跳动效果

    用D3.js 十分钟实现字符跳动效果 注 本文基于 D3.js 作者 Mike Bostock 的 例子 原文分为三部分, 在这里笔者将其整合为了一篇方便阅读. 该效果基于 D3.js, 主要使用到了 ...

最新文章

  1. 实验室中的机械臂-资料汇总
  2. 一招教你解决大数据量下的各种报表使用问题
  3. C#学习小结(DAY1)
  4. python入门之函数调用educoder_Educode Python入门之函数调用
  5. 三维重建:QT+OpenNI+Kinect图像校正
  6. 【软件开发底层知识修炼】二十 深入理解可执行程序的结构
  7. SP2-0734: 未知的命令开头 imp scott/... - 忽略了剩余的行。
  8. Keil5消除未调用警告
  9. 对I2C总线的时钟同步和总线仲裁的深入理解
  10. A股开盘:深证区块链50指数涨0.02%,仁东控股跌停
  11. java基础----集合操作---实例----List集合的初始化
  12. 5G标准化工作遇阻,标准推出时间或将延期
  13. 5.mybatis实战教程(mybatis in action)之五:与spring3集成(附源码)
  14. com.microsoft.sqlserver.jdbc.SQLServerException: Socket closed 或者 该连接已关闭
  15. tomcat7源代码Bootstrap
  16. 利用JDBC工具类 模拟用户登录!
  17. 图的存储--十字链表
  18. 文件上传服务器方法,向服务器上传文件方法
  19. PDF如何提取其中一页,PDF提取页面的方法
  20. python输入一个英文句子 输出单词个数_编写程序,给出一个英文句子,统计单词个数。_学小易找答案...

热门文章

  1. ROS+openCV图像处理方法及案例
  2. 【C语言】杨辉三角常用且简单的两种解法(超详细解说)
  3. golang同时使用命令行参数和配置文件
  4. CentOS7.5平台下的vsftpd运维脚本(个人练习版)
  5. Jetson TX2 刷机(wifi)
  6. C语言辗转相除法求两数最大公因数
  7. 网易游戏游戏开发工程师笔试试题
  8. python之父头发对比图_【发型前后对比】2021剪头发图鉴,换发型简直就是换一张脸!...
  9. nginx 做端口转发
  10. error: looser throw specifier for ‘virtual void Logger::log(nvinfer1::ILogger::Severity, const