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的具体解析。
1.X12 850头部Segment解析:ISA、GS 、GE、IEA segment是EDI 报文的头尾部信息,ISA、GS与GE、IEA是两两成对的segmentISA*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相同。
2.业务部分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*XIAN KAIFAQU~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案例,联系我们。
出师表两汉:诸葛亮先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。
然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。
诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。
宫中府中,俱为一体;陟罚臧否,不宜异同。
若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理;不宜偏私,使内外异法也。
侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下:愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。
将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰“能”,是以众议举宠为督:愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。
亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。
先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。
侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之、信之,则汉室之隆,可计日而待也。
臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。
先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。
后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。
先帝知臣谨慎,故临崩寄臣以大事也。
受命以来,夙夜忧叹,恐托付不效,以伤先帝之明;故五月渡泸,深入不毛。
今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。
此臣所以报先帝而忠陛下之职分也。
至于斟酌损益,进尽忠言,则攸之、祎、允之任也。
愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。
若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨诹善道,察纳雅言,深追先帝遗诏。
臣不胜受恩感激。
今当远离,临表涕零,不知所言。