准时达是富士康科技集团授权的供应链物流科技管理平台服务公司,积累了近20年的精益供应链管理经验,专注制造业上游从原材料到成品,以及下游从成品到终端消费者的全程端到端供应链整合,通过与客户在供应链领域的深度融合,让供应链真正成为企业的核心竞争力。我们与全球超过3000家3C零组件厂商及客户密切合作,服务超过1000家知名品牌客户,以卓越的全球供应链管理经验成为业界的佼佼者。
本文主要介绍准时达如何通过EDI为国内某知名公司供货?初次了解EDI时,您可能会觉得它很陌生,下文将带您深入分析准时达的EDI需求。
EDI (Electronic Data Interchange),即电子数据交换,旨在实现两个企业之间业务系统数据的交换。比如,一家公司可以通过电子数据交换平台,向另一家公司发送订单、查询库存、通知发货等信息。帮助企业整合供应链、降低库存、实现精益生产。查看更多关于EDI的介绍。
准时达EDI项目需求
1. EDI项目需求概览
1.1 项目需求
- 传输协议:AS2 on Internet
- 报文标准:X12
- 实施方案:支持本地/云端部署
报文代码 | 业务含义 | 传输方向 |
X12 856 | 提前发货通知 | 准时达发送 |
2. EDI项目需求分析
先了解下什么是AS2?AS2目的在于通过Internet安全可靠地传输商业文档。首先通过数据加密和数字签名生成数据包,然后基于HTTP(或HTTPS)通过互联网或任何TCP/IP网络进行安全可靠的数据交换。查看更多关于AS2的信息。
AS2自动化传输的实现比较容易,需先下载知行EDI系统,借助AS2 端口操作手册,通过简单配置即可完成。
需要注意的是:安装EDI系统的服务器,必须具有固定的外网IP地址,同时需要暴露指定端口(默认8001,可修改)便于准时达连接到您的EDI系统,传输856报文。
通过AS2自动化接收的文件是856格式文件。856是ANSI X12国际标准报文规范下发货通知报文类型代码。
856 X12报文,全名Ship Notice/Manifest,即发货通知。在准时达与采购商的EDI项目中,856报文用于说明货物信息、发货信息及货运相关的信息,例如:订单信息,产品说明,物理特性,货物类型、包装,承运人信息以及运输设备中的货物配置。在发货之前,准时达通过EDI系统发送856报文给采购商,告知采购商具体的出货信息,采购商可以根据此报文检查信息并提前准备货物的接收。
先看一个856的示例报文,了解下X12标准报文的结构:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
ISA*00* *00* *16*Sender *12*Receiver *200121*0735*U*00401*000034398*0*P*@~ GS*SH*Sender*Receiver*20200121*0735*000034398*X*004010~ ST*856*0001~ BSN*00*BSN00001*20200121*0735~ DTM*011*20200121*0640~ HL*1**S~ PRF*Order0001*000001~ N1*ST*ADDR*92*ADDR~ N1*SF*SF01*92*SF01~ N1*SU*SU01*92*SU01~ HL*2*1*I~ LIN**BP*BYITEM001*VP*SUITEM001*MF*MFITEM01~ ...... |
看到上面的856标准报文,您可能会一头雾水吧,实际上就算是专业的EDI人员,也需要参考EDI报文规范文档来逐行解读,那么作为一个非EDI专业人士,如何来了解报文中的业务数据呢?正确的解读上述 EDI 856示例报文,通过项目实施获取核心业务数据,并将其转换为业务人员可以看懂的数据格式,便是这个项目实施的关键点。
对于有ERP系统的企业,EDI项目实施过程中还需要考虑将以上EDI 856(发货通知)文件转换为什么格式文件,才可以在内部ERP系统中展现,以便业务查看。知行EDI系统支持上百种数据源,可以通过任意方式将数据同步到ERP系统。 对于业务单据量较小的成长型企业,可以选择将EDI 856(发货通知)转为Excel文件,然后通过邮件方式自动发送到指定人员的邮箱。
本次EDI项目实施,因为客户使用的是SAP系统,接下来将详细介绍如何实现EDI 856报文的解析以及EDI系统与SAP系统的集成?
2. EDI实施方案
通过上述需求分析,确定该项目的实施方案为:AS2直连,本地化部署EDI,集成SAP系统。可以借助下面准时达与合作伙伴EDI项目的数据传输过程,直观的了解整个EDI项目的实施场景:
在SAP系统中,IDoc是信息系统之间(通常是ERP) 进行事务性或数据交换使用的标准数据格式,其中比较公认的是符合EDI标准的IDoc,它一般是整个的消息报文,包含了事务数据、主数据、控制数据,用以控制数据的整个交换流程,其中主数据一般是XML格式。知行EDI系统通过TRFC方式连接SAP,然后发送标准的IDoc到SAP系统。
不同的IDoc类型(IDoc type)用于处理不同类型的信息。比如IDoc格式ORDERS01可用于采购订单、SHPMNT05可用于发货通知(856),更多的IDoc类型对应业务报文类型可参考SAP IDOC 报文。
在进行项目实施之前,需先与SAP顾问确认清楚,解析的EDI 856报文需要对应SAP系统的哪个IDOC类型?或者可以与SAP顾问沟通,放弃标准IDoc规范,自定义一个新的IDoc规范。小编本次完成的准时达项目,就是自定义的IDoc规范。接下来详细介绍小编的实施过程。
EDI报文解析
1. 856报文解析工作流
报文的解析需要借助知行EDI系统中的各种类型的端口,搭建工作流来完成。那么知行EDI系统中都有哪些端口,这些端口是用来实现什么功能的呢?比如有AS2端口,用来配置双方的AS2信息,连接外部EDI系统,自动化收发文件;数据库端口用来连接指定的业务数据库,如下图在EDI系统的FLOWS页面左侧有一些常用端口的列表:
知行EDI系统左侧展示的端口,可以通过拖拽的方式在右侧工作间创建工作流,详细操作可参考工作流创建。
下图是小编已创建好的用于解析EDI 856(发货通知)报文的工作流:
上面工作流借助了四个不同类型的端口来实现上述856报文的解析:
- AS2:是一个AS2端口,通过简单的页面配置,对接准时达的EDI系统,搭建AS2传输,接收EDI 856报文;AS2端口配置参考,点击查看更多。
- X12ToXML:是一个X12端口,通过知行EDI系统内置的Schemas将标准EDI 856报文转换为XML格式,这种XML相对于EDI格式具有更好的可读性; X12 端口配置参考,点击查看更多。
- Parse856 :是一个Script端口,通过定制化开发,将标准XML格式文件转换成指定的IDoc格式文件。
- IDoc:是一个SAP IDoc端口,用来连接SAP系统,将生成的IDoc文件发送给SAP系统,完成与业务系统的集成。SAP IDoc端口配置参考,点击查看更多。
2. 856报文解析过程
报文解析这部分是该项目的重点,采购商接收准时达的856报文后,需要翻译成业务人员能够直观看懂的数据格式,才可以了解详细的业务信息。
2.1 标准EDI报文
首先从读懂标准 856 X12(发货通知)报文开始,如下是一个示例报文,供参考:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 |
<Interchange Delimiters=":*. ^~" xmlns="http://www.rssbus.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Meta> <!--Authorization Information Qualifier--> <ISA01><!--No Authorization Information Present (No Meaningful Information in I02)-->00</ISA01> <!--Authorization Information--> <ISA02> </ISA02> <!--Security Information Qualifer--> <ISA03>00</ISA03> <!--Security Information--> <ISA04> </ISA04> <!--Interchange ID Qualifier--> <ISA05><!--Duns Number With 4-Character Suffix-->16</ISA05> <!--Interchange Sender ID--> <ISA06>Sender </ISA06> <!--Interchange ID Qualifier--> <ISA07><!--Phone (Telephone Companies)-->12</ISA07> <!--Interchange Receiver ID--> <ISA08>Receiver </ISA08> <!--Interchange Date--> <ISA09>200121</ISA09> <!--Interchange Time--> <ISA10>0735</ISA10> <!--Interchange Control Standards Identifier--> <ISA11>U</ISA11> <!--Interchange Control Version Number Code--> <ISA12><!--Standards Approved for Publication by ASC X12 Procedures Review Board through October 1997-->00401</ISA12> <!--Inter Control Number--> <ISA13>000034398</ISA13> <!--Acknowlegment Requested Code--> <ISA14>0</ISA14> <!--Interchange Usage Indicator Code--> <ISA15><!--Production Data-->P</ISA15> <!--Component Element Separator--> <ISA16>@</ISA16> </Meta> <FunctionalGroup> <Meta> <!--Functional Identifier Code--> <GS01><!--Ship Notice/Manifest (856)-->SH</GS01> <!--Application Sender's Code--> <GS02>Sender</GS02> <!--Application Receiver's Code--> <GS03>Receiver</GS03> <!--Date--> <GS04>20200121</GS04> <!--Time--> <GS05>0735</GS05> <!--Group Control Number--> <GS06>000034398</GS06> <!--Responsible Agency Code--> <GS07><!--Accredited Standards Committee X12-->X</GS07> <!--Version / Release / Industry Identifier Code--> <GS08><!--Standards Approved for Publication by ASC X12 Procedures Review Board through October 1997-->004010</GS08> </Meta> <TransactionSet> <TX-00401-856 type="TransactionSet"> <Meta> <!--Transaction Set Identifier Code--> <ST01><!--Ship Notice/Manifest-->856</ST01> <!--Transaction Set Control Number--> <ST02>0001</ST02> </Meta> <BSN type="Segment"> <!--Transaction Set Purpose Code--> <BSN01><!--Original-->00</BSN01> <!--发货通知单号--> <BSN02>BSN00001</BSN02> <!--发货通知创建日期--> <BSN03>20200121</BSN03> <!--发货通知创建时间--> <BSN04>0735</BSN04> </BSN> <DTM type="Segment"> <!--Date/Time Qualifier--> <DTM01><!--Shipped-->011</DTM01> <!--发货日期--> <DTM02>20200121</DTM02> <!--发货时间--> <DTM03>0640</DTM03> </DTM> <HLLoop1 type="Loop"> <HL type="Segment"> <!--Hierarchical ID Number--> <HL01>1</HL01> <!--Hierarchical Parent ID Number--> <HL02 xsi:nil="true"/> <!--Hierarchical Level Code--> <HL03><!--Shipment-->S</HL03> </HL> <PRF type="Segment"> <!--采购订单单号--> <PRF01>Order0001</PRF01> <!--Release Number--> <PRF02>000001</PRF02> </PRF> <N1Loop1 type="Loop"> <N1 type="Segment"> <!--采购商--> <N101><!--Ship To-->ST</N101> <!--采购商名称--> <N102>ADDR</N102> <!--Identification Code Qualifier--> <N103><!--Assigned by Buyer or Buyer's Agent-->92</N103> <!--采购商编号--> <N104>ADDR</N104> </N1> </N1Loop1> <N1Loop1 type="Loop"> <N1 type="Segment"> <!--站点--> <N101><!--Ship From-->SF</N101> <!--站点名称--> <N102>SF01</N102> <!--Identification Code Qualifier--> <N103><!--Assigned by Buyer or Buyer's Agent-->92</N103> <!--站点编号--> <N104>SF01</N104> </N1> </N1Loop1> <N1Loop1 type="Loop"> <N1 type="Segment"> <!--供应商--> <N101><!--Supplier/Manufacturer-->SU</N101> <!--供应商名称--> <N102>SU01</N102> <!--Identification Code Qualifier--> <N103><!--Assigned by Buyer or Buyer's Agent-->92</N103> <!--供应商编号--> <N104>SU01</N104> </N1> </N1Loop1> </HLLoop1> <HLLoop1 type="Loop"> <HL type="Segment"> <!--Hierarchical ID Number--> <HL01>2</HL01> <!--Hierarchical Parent ID Number--> <HL02>1</HL02> <!--Hierarchical Level Code--> <HL03><!--Item-->I</HL03> </HL> <LIN type="Segment"> <!--Assigned Identification--> <LIN01 xsi:nil="true"/> <!--Product/Service ID Qualifier--> <LIN02><!--Buyer's Part Number-->BP</LIN02> <!--采购商物料编号--> <LIN03>BYITEM001</LIN03> <!--Product/Service ID Qualifier--> <LIN04><!--Vendor's (Seller's) Part Number-->VP</LIN04> <!--供应商物料编号--> <LIN05>SUITEM001</LIN05> <!--Product/Service ID Qualifier--> <LIN06><!--Manufacturer-->MF</LIN06> <!--制造商物料编号--> <LIN07>MFITEM01</LIN07> </LIN> <SN1 type="Segment"> <!--Assigned Identification--> <SN101 xsi:nil="true"/> <!--发货数量--> <SN102>500</SN102> <!--数量单位--> <SN103><!--Each-->EA</SN103> </SN1> </HLLoop1> <HLLoop1 type="Loop"> <HL type="Segment"> <!--Hierarchical ID Number--> <HL01>3</HL01> <!--Hierarchical Parent ID Number--> <HL02>2</HL02> <!--Hierarchical Level Code--> <HL03><!--Pack-->P</HL03> </HL> <REF type="Segment"> <!--Reference Identification Qualifier--> <REF01><!--Serial Number-->SE</REF01> <!--包装编号--> <REF02>TEST</REF02> </REF> </HLLoop1> <CTT type="Segment"> <!--Number of Line Items--> <CTT01>3</CTT01> </CTT> </TX-00401-856> </TransactionSet> </FunctionalGroup> </Interchange> |
2.3 将标准XML文件转为IDoc文件
最后一步就是将上面的标准XML文件转成IDoc文件,与SAP系统集成了,这部分在实施过程中是需要定制化开发的。首先需要将标准XML中的字段和IDoc中的字段对应,字段对应时我们可以参考标准XML的每一个字段的业务含义与IDoc中每个字段代表的业务数据含义来对应,最后通过读取XML中的数据将其写入到IDoc字段中即可。
将上面标准的XML文件数据写入IDoc文件后,数据格式及业务含义如下,供参考:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
<IDOC> <EDI_DC40> //IDoc文件头部信息 <TABNAM></TABNAM> <MANDT></MANDT> <DOCNUM></DOCNUM> <DOCREL></DOCREL> <STATUS></STATUS> <DIRECT></DIRECT> <OUTMOD></OUTMOD> <EXPRSS></EXPRSS> <TEST></TEST> <IDOCTYP>ASN</IDOCTYP> //IDoc Type <CIMTYP></CIMTYP> <MESTYP>ASN</MESTYP> <MESCOD></MESCOD> <MESFCT></MESFCT> <STD></STD> <STDVRS></STDVRS> <STDMES></STDMES> <SNDPOR></SNDPOR> <SNDPRT></SNDPRT> <SNDPFC></SNDPFC> <SNDPRN></SNDPRN> <SNDSAD></SNDSAD> <SNDLAD></SNDLAD> <RCVPOR></RCVPOR> <RCVPRT></RCVPRT> <RCVPFC></RCVPFC> <RCVPRN></RCVPRN> <RCVSAD></RCVSAD> <RCVLAD></RCVLAD> <CREDAT></CREDAT> <CRETIM></CRETIM> <REFINT></REFINT> <REFGRP></REFGRP> <REFMES></REFMES> <ARCKEY></ARCKEY> <SERIAL></SERIAL> </EDI_DC40> <ZFBSN> <ASNNUM>BSN00001</ASNNUM> //发货通知单号 <ASNDATE>202001210735</ASNDATE> //发货通知创建时间 </ZFBSN> <ZFDTM> <DELDATE>202001210640</DELDATE> //发货时间 </ZFDTM> <ZFPRF> <ORDNUM>Order0001</ORDNUM> //采购订单单号 <RELNUM>000001</RELNUM> </ZFPRF> <ZFRFF> <RFFINFO></RFFINFO> </ZFRFF> <ZFN1> <STNAME>ADDR</STNAME> //采购商名称 <STCODE>ADDR</STCODE> //采购商编号 <SINAME>SF01</SINAME> //站点名称 <SICODE>SF01</SICODE> //站点编号 <SUNAME>SU01</SUNAME> //供应商名称 <SUCODE>SU01</SUCODE> //供应商编号 </ZFN1> <ZFLIN> <LINEITEM></LINEITEM> //订单行号 <BPNUM>BYITEM001</BPNUM> //采购商物料编号 <SPNUM>SUITEM001</SPNUM> //供应商物料编号 <MRNUM>MFITEM01</MRNUM> //制造商物料编号 </ZFLIN> <ZFSNI> <SHIPQTY>500</SHIPQTY> //发货数量 <QTYUNIT>EA</QTYUNIT> //数量单位 </ZFSNI> <ZFSE> <SERNUM>SE</SERNUM> <PACKNUM>TEST</PACKNUM> //包装编号 </ZFSE> <ZFCTT> <LTOTALNUM>3</LTOTALNUM> </ZFCTT> </IDOC> |
以上便是在协助的客户对接准时达EDI系统时,对于EDI需求的分析、提供给客户的实施方案,以及如何解析856报文将数据写入客户SAP业务系统的说明,希望可以帮助到您。
注:文案部分图片及内容来源于网络,版权归原创作者所有,如有侵犯到您的权益,请您联系我们进行删除,给您带来困扰,我们深感抱歉。