一、前言
上一篇文章我降到了AS2的传输模式,本篇我着重讲一下EDI X12标准,尽量把它说的比较明白,而X12包含的种类报文,比如订单、出货、发票等等,我打算下一篇讲,一个个的讲,当然,仅仅限于我比较熟悉的
二、EDI X12标准的传输流程
这个我没在网上找到现成的,那只能自己划,以订单为例
1、订单X12 850生成后通过加签加密生成EDIINT 上一篇有说加签加密的事情)
2、发送EDIINT到对方EDI系统
3、对方接到EDIINT后会回复EDIINT MDN,如果回复的MDN正常,代表已经成功发送且对方解密验签EDIINT成功
4、对方解析报文,解析出X12 850订单报文
5、对方EDI系统校验该X12 850报文,校验结果生成X12 997,该997包含校验结果成功或者error,error会在997中体现出来
6、X12 997以EDIINT的形式进行发送(1,2步骤内容)
7、业务系统拿到校验后的X12 850,进行业务处理,处理结果返回EDI系统,生成X12 855通过EDIINT方式返回
三、X12 标准报文实例及Envelope讲解
报文示例,本示例是一个X12 855
ISA*00* *00* *ZZ*A_ISA *ZZ*B_ISA *200326*0835*U*00403*000405272*0*P*: GS*PR*A_GS*B_GS*20200326*0835*000405202*X*004030 ST*855*260835586 BAK*00*AD*111220000047405*20200326 PO1*1*165**165.3598****SE*90NB0IR6-M13110*UP*192876572917*EN*4718017572910 ACK*IA*165*EA*139*00000000 SE*5*260835586 GE*1*000405202 IEA*1*000405272
X12采用了一种独特的信息格式,有点类似于我们邮寄信件,它包含三层Interchange Envelope(ISA层)、Function Group(GS、GE层)、Transaction Set(业务信息层ST-SE)。如下图,结合上面的报文示例,
Interchange Envelope(ISA、IEA层)
Interchange Envelope层有点像我们的信封,信封包裹着信件,其中一个Interchange Envelope层可以包含不同类型的Function Group,但是一个Function Group只能包含一种类型的信息。比如目前我有3个订单850信息、2个订单修改860信息,我想放在一条信息发送,那么的信息形式就是一个Interchange Envelope里面包含两个Function Group,一个Function Group包含3个850的st-se,另外一个Function Group包含2个860的st-se。
Interchange Envelope的开始ISA开始的结尾是已IEA结尾的,其中*号是分隔符
ISA*00* *00* *ZZ*A_ISA *ZZ*B_ISA *200326*0835*U*00403*000405272*0*P*: ***** IEA*1*000405272
ISA:开始标识
ISA01:授权信息
00:不存在任何授权信息,这里是00
01:UCS 通信ID
02:EDX 通信ID
03:其他数据标识
04:铁路通信ID
05:美国国防部(DoD)通信标识
06:美国联邦政府通信标识
07:卡车通信ID
08:海运通信ID
ISA02:ISA01取00的时候ISA02不用赋值
ISA03:安全限定符,这里是00
00:不存在任何安全信息
01:密码
03:密码(用于向后兼容)
ISA04:当ISA3取00时,ISA4不用赋值
ISA05:发送方ID限定符,这里是ZZ
1:DUNS
10:美国国防部
11:美国麻醉品管理局
12:电话号码
.....(中间省略很多标识,不过都是各种国家单位,忽略)
ZZ:双方约定(X12)
ISA06:Send ID 发送方的ISA ID(做edi的都这么叫。。。)这里是A_ISA
ISA07:(和ISA05一样的),这里是ZZ,以下是解释
ISA08:接收方ID 也就是接收方的ISA ID,这里是B_ISA
ISA09:交互日期这里是200326,也就是20年3月26
ISA10:交互时间,这里是0835
ISA11:交互标准标识符,这里是U,这里只有两个选择一个是标准标识符U一个是使用重复分隔符,可自定义
ISA12:X12版本,这里是00403,标识X12 4030标准当然也是4010等
ISA13:ISA号码,唯一号码,可以从00000001开始。
ISA14:0标准不需要反馈,1表示需要反馈这里是0
ISA15: T,表示测试数据;P,表示生产数据,这里是T
IEA01:这个Interchange Envelope包含几个Function Group,这里是1个
IEA02:ISA号 和上面的一样
以上就是针对Interchange Envelope的解析,如有错误,欢迎留言
原文地址:https://www.cnblogs.com/rgzngf/p/12573212.html