ANSI X12是由美国国家标准委员会在1979年创立的认可标准委员会(ASC-Accredited Standards Committee)X12-制定的EDI报文标准,是为了满足企业之间的商业数据的电子数据交换。
每次发布包括一系列的信息类型,比如invoice、purchase order等。每一个信息类型都有特定的数字代替它的名称。比如,电子发票invoice对应的信息类型为X12 810,订单purchase order为X12 850,发货通知 Advanced Delivery Note是X12 856。
以下以苹果APPLE
X12 850为样例,提供具体解析:
ISA*00* *00* *14*TESTXXXXXX *ZZ*TEST01XXXXXXXXX*140928*2141*U*00401*000000001*1*T*>~
GS*PO*TEST03XXXX*TEST04XXXXXX*20140928*2141*1*X*004010~
ST*850*0001~
BEG*00*DS*0592608583**20140928~
REF*SB*ZZ11~
REF*6P*ZZ~
REF*8M*0056~
REF*CR*XXXXXXX123~
PER*CN*ZHIXING~
CSH*BK~
SAC*C*ZZZZ**********06~
TD5*Z*2*XUPSC02~
N9*ZZ*XXXX~
MSG*http:XXXXXXXXXXXXXX.pdf~
N1*BY*ZHIXING*92*5601~
N1*ST*XIAN*92*0000858638~
N2*XIAN*ZHIXING~
N3*RSSBUS*XIAN KAIFAQU~
N4*SHANXI, XIAN PROVINCE**710000*CN*SP*100~
PO1*00010*5000*EA*2.33*PE*BP*XXXXXX~
PID*F****A001,C001,L01,X147****EN~
REF*CO*7282973909~
REF*LI*000010~
SCH*5000*EA***002*20140928~
CTT*1*5000~
SE*24*0001~
GE*1*1~
IEA*1*000000001~
其中,X12 850报文由段落(Segment)和字段(Element)组成,“~”为段落间分隔符,“*”为字段间分隔符。
一个段落(Segment)包含多个字段(Element),段落头部(Segment Header)是每个段落第一个字符,如ISA、GS、ST、BEG、REF、CSH、TD5、PO1、PID等。
段落头部(Segment Header)决定了整段语句的业务含义,如BEG段落中的业务含义为文件编号和相关日期等。
以下对X12 850 报文中每个segment的具体解析。
[if !supportLists]1. [endif]X12 850头部Segment解析:
ISA、GS 、GE、IEA segment是EDI 报文的头尾部信息,ISA、GS与GE、IEA是两两成对的segment
ISA*00* *00* *14*TESTXXXXXX *ZZ*TEST01XXXXXXXXX*140928*2141*U*00401*000000001*1*T*>~
ISA
segment: 表示Interchange Control Header。
在ISA segment中ISA06/08表示Interchange Sender/Receiver Identifier;
ISA09/10表示Interchange Date/Time;ISA12表示报文执行的Interchange Control Version number 如00401);
ISA13表示ISA number-Interchange Control Number,我们可以根据ISA
number查找该文件;ISA15 是Usage
Indicator表示该报文是正式报文(P)还是测试报文(T)。
GS*PO*TEST03XXXX*TEST04XXXXXX*20140928*2141*1*X*004010~
GS
segment:Functional Group Header。 GS01表示该EDI报文的业务类型,如上代码中的PO表示采购订单;GS02/03表示Application
Sender/Receiver Identifier;GS04/05:表示该EDI报文创建的日期与时间;GS08表示报文执行的EDI标准。
GE*1*1~
与GS segment成对出现,GS02与GS06相同。
IEA*1*000000001~
与ISA segment成对出现,IEA02与ISA13相同。
[if !supportLists]2. [endif]业务部分segment解析
从ST segment到SE
segment是对850采购订单业务值的描述:
ST*850*0001~
ST
segment: ST01表示EDI 报文类型,比如850表示采购订单。
BEG*00*DS*0592608583**20140928~
BEG
segment: BEG03表示订单号,BEG05表示订单日期。
REF*SB*ZZ11~
REF*6P*ZZ~
REF*8M*0056~
REF*CR*XXXXXXX123~
REF
segment: 是对一些识别信息的描述,REF01表示信息类型(比如SB表示销售区域、6P表示分组号、8M表示原公司代码、CR表示客户代码、CO表示客户订单号等),而REF02就是该类型信息的具体的描述了。
PER*CN*ZHIXING~
PER
segment: 是对通讯信息的描述,PER01表示实体类型,PER02表示联系人名称,PER04表示联系人电话。
CSH*BK~
CSH
segment:CSH01是对需求类型的描述(BK表示Ship Partial - Balance Back Order、SC表示Ship Complete)。
TD5*Z*2*XUPSC02~
TD5
segment: TD503是对运输方式的描述。
N1*BY*ZHIXING*92*5601~
N1*ST*XIAN*92*0000858638~
N1
segment: 是对订单中涉及的相关实体的描述,N101表示实体类型(比如BY表示买方),N102表示对应的实体编号。
N3*RSSBUS*XIANKAIFAQU~
N4*SHANXI,XIAN PROVINCE**710000*CN*SP*100~
N3
segment: 是对实体地址信息的描述(街道详细信息)。
N4
segment: 是对实体地理信息的描述(国家/省份/邮编等信息)。
PO1*00010*5000*EA*2.33*PE*BP*XXXXXX~
PO1
segment: 是对采购订单明细信息的具体描述(商品编号/数量/单价)。PO101表示该订单的行号,PO102表示数量,PO103数量单位,PO104表示单价,PO105表示价格单位,PO107表示商品代码。
PID*F****A001,C001,L01,X147****EN~
PID
segment: 是对商品属性的描述。
SCH*5000*EA***002*20140928~
SCH
segment: 是对要求到货日期的描述。
知行软件获得美国RSSBus Inc.独家授权,集研发、实施、运维为一体,为亚洲地区RSSBus Connect用户提供标准的EDI软件及解决方案。了解更多EDI案例,联系我们。