montaque

小碗喝酒,小口吃肉

博客园 首页 新随笔 联系 订阅 管理

EDI in Biztalk 2006 R2 举了一个简单的例子。 通过裁剪满足特定vendor格式的EDI Schema,接受EDI转换成XML。

这时候的EDI很简单。

ISA*00*          *00*          *01*Fedex          *ZZ*Montaque       *070607*1555*U*00401*000000025*0*T*>~
GS*IN*Fedex*Montaque*20070607*1555*25*X*004010~
ST*810*0025~
N1*SF*COMPANY X~
N3*P.O. BOX 12345~
N4*ANYTOWN*OH*45678~
IT1*1*0.528*TS*1.13**VP*1AGHA1223221~
CTT*1~
SE*7*0025~
GE*1*25~
IEA*1*000000025~

只有一个Group,Group中只有一个Transaction Set。 如果包含多个TransactionSet,Biztalk是怎么处理呢

假设EDI文件改为以下格式。一个GS中,有三个TransactionSet。

ISA*00*          *00*          *01*Fedex          *ZZ*Montaque       *080529*0927*U*00401*000000014*0*T*>~
GS*IN*Fedex*Montaque*20080529*0927*14*T*00401~
ST*810*0014~
N1*SF*Montaque~
N3*16839 E Gale Ave. 91745~
N4*ANYTOWN*OH*45678~
IT1*1*0.528*TS*1.13**VP*1AGHA1223221~
CTT*1~
SE*7*0014~
ST*810*0015~
N1*SF*Montaque~
N3*16839 E Gale Ave. 91745~
N4*ANYTOWN*OH*45678~
IT1*1*0.528*TS*1.13**VP*1AGHA1223221~
CTT*1~
SE*7*0015~

ST*810*0016~
N1*SF*Montaque~
N3*16839 E Gale Ave. 91745~
N4*ANYTOWN*OH*45678~
IT1*1*0.528*TS*1.13**VP*1AGHA1223221~
CTT*1~
SE*7*0016~
GE*3*14~
IEA*1*000000014~

在Batch Inbound的时候,EDIReceiver Pipeline首先识别Party,然后找到该Party的Setting。默认是会Split成N个单独的消息。每个消息包含一个TransactionSet。

image 

如果把上面的EDI丢到Biztalk的话,他会产生三个消息。

每个消息包含一个TS。比如

image 

而我们也可以把它设置为。Preserver interchange,后面两个选项。告诉你出错的时候,刮起对应的Interchange还是TS。

这时候再处理的话,就会看大他把几个消息放在一个文件中。

 image

这个设置会牵涉到系统的设计。如果Vendor给一个包含10000个TS的EDI文件是启动一个Orchestration 实例处理,还是启动10000个。

一个的话,需要自己写一个Loop,而且load一个这么大的文件到内存。性能也不好。好处是实例数很少。

posted on 2008-05-30 03:02  montaque  阅读(1560)  评论(1编辑  收藏  举报