惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
B
Blog RSS Feed
阮一峰的网络日志
阮一峰的网络日志
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
H
Help Net Security
MyScale Blog
MyScale Blog
WordPress大学
WordPress大学
Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
小众软件
小众软件
大猫的无限游戏
大猫的无限游戏
Martin Fowler
Martin Fowler
Vercel News
Vercel News
S
SegmentFault 最新的问题
M
MIT News - Artificial intelligence
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
Last Week in AI
Last Week in AI
Hugging Face - Blog
Hugging Face - Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
Google DeepMind News
Google DeepMind News
Engineering at Meta
Engineering at Meta
云风的 BLOG
云风的 BLOG

博客园 - montaque

xp 与 windows 7 共享收藏夹 Microsoft ILM V2 新特性 云计算 PDC , XAML 2009以及未来 PDC , KeyNote2 个人计算,Windows 7+ Live Service PDC - C#4.0 以及未来 PDC 第一天总结 PDC 2008 WPF/Silverlight 中利用XamlReader /Writer 来处理对象的序列化反序列化 让你的Expression XAML 编辑器支持智能提示 silverlight 测试 Powershell 脚本自动下载 FTP Server上面固定格式的文件 EDI Party Resolution in Biztalk R2 EDI in Biztalk 2006 R2 Hello,Biztalk 2006 R2 BAM, WCF 集成 Hello, Biztalk 2006 R2 BAM what's new in Biztalk 2006 R2 hello biztalk R2 Mix08
EDI batch Receiving in Biztalk 2006 R2
montaque · 2008-05-30 · via 博客园 - 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一个这么大的文件到内存。性能也不好。好处是实例数很少。