BizTalk 2010/2013 EDI B2B项目实践(1)
BizTalk开发标准EDI B2B是件非常容易的事情,但对于初学者可能有很多专业术语不太理解,不知道如何下手,我之前开始学的时候虽然跟着微软提供的Tutorial也能做成功,可有些地方就是不太明白为什么这样配置才可以。最近正好有同事开始做关于EDI B2B的项目,我顺便重新再看了一下,这下才明白什么叫温故而知新了。
下面我分享一下我对BizTalk在做EDI B2B项目中使用到的一些专业名词和配置解释一下,希望对初学BizTalk的朋友有所帮助。
场景1-BizTalk接收850-PO报文
还是拿BizTalk官方提供的Tutorial(C:Program Files (x86)Microsoft BizTalk Server 2013SDKEDI Interface Developer Tutorial)
Fabrikam就是作为BizTalkServer外部Partner,Fabrikam给BizTalkServer下了一张采购订单(850-PO),BizTalkServer把标准的EDI-850,经过mapping之后产生一个后台OrderSystem可以接受的XML文件,同时回一个ACK告诉Fabrikam我收到了这个报文。
新建Parties
Parties就是定义B2B的两个对象或者说是商业伙伴,在这个场景里面需要建2个OrderSystem,Fabrikam
OrderSystem作为BizTalk服务器因此必须在Local BizTalk process message打勾
Fabrikam是你的外部客户因此不需要打勾
Parties新建完后系统会自动创建对应的OrderSystem_Profile,Fabrikam_Profile,
新建Agreement
Agreement就是协议,定义双方交换的协议
First Party->Second Party 选择谁和谁做交互
Fabrikam->OrderSystem 表示OrderSystem(BizTalk)接收来之Fabrikam提供的850报文
InterChange Settings设置来识别和验证EDI报文的第一行,最重要的就是设置ISA6,ISA8
Acknowledgements设置是否回一个ack确认报文给Fabrikam如果不需要那么就不必要配置OrderSystem->Fabrikam这个tab下的信息
Transaction Set Setting设置来识别和验证EDI报文的第二行,第三行的信息
标准的850-EDI报文结构
第一行ISA开头专业术语叫Interchange control header,作为交换必要的识别代码*ZZ*就是表示发送方在我系统里的代码和接收放的系统代码,这些必须事先约定好
第二行GS开头专业术语叫Transaction set specific group header,一些相互之间的约定
第三行ST开头Transaction set header,表示这个报文是850是第几个
下面就是PO的具体内容了
接收端口配置
在你的接收端口下的接收位置的Pipeline选择EdiRecive
设置好主要的这些参数就可以完成接收一个EDI报文了。
场景2-BizTalk发送一个850-PO给外部客户
就需要配置OrderSystem->Fabrikam这个选项Tab,ISA6,ISA8,正好相反
Local Host Settings 设置EDI报文中第一行和第二行中产生的唯一序列,BizTalk会自动更新这些序列
配置发送端口,你要将这些配置绑定在哪个端口上,原理就是EDISend pipeline这个组件会在构造这个edi报文读取这些配置。
还可以根据实际情况定义EDI报文GS第二行的一些规则比如使用的EDI版本,时间日期等格式,当然也可以不必定义系统会根据默认给出。
配置完这些就可以实现对EDI报文接收和发送了。