Biztalk对EDI的支持
EDI作为一项技术标准已经有几十年的历史了。从biztalk 2006R2版本以来,biztalk就能对EDI提供标准的支持。EDI与biztalk结合使用的场景所占的比重越来越大。利用biztalk的功能来满足SOA和EDI基础结构需求这一解决方案的可靠性,稳定性和可扩展性已经得到证实。
BIZTALK的提供了EDI标准的定义模板。你可以在以下路径找到该模板并把它加入到你的解决方案中:C:\Program Files (x86)\Microsoft BizTalk Server 2010\XSD_Schema\EDI。
BIZTALK提供了基本的EDI应用程序:BizTalk EDI Application,所有的EDI BIZTALK Application可以直接引用该程序,他提供了EDI所有的基本功能。
EDI解决方案的配置
配置环境:我们已上一篇中港配置过的biztalk2010作为开发环境,学习本案例。EDI的具体事例我们用sdk中的SamplePO作为测试用例。使用的biztalk应用程序就是biztalk自带的Biztalk Appliction 1。我们的目的就是成功的发送SamplePO到biztalk,并且成功得到相应的返回消息。
1) 拷贝sdk提供的解决方案EDI Inbound Processing并把它部署到本地环境。你可以在sdk中到已存的方案:C:\Program Files (x86)\Microsoft BizTalk Server 2010\SDK\EDI Interface Developer Tutorial。
2) 可以在Biztalk Application 1 中中看到发布的资源,这里包含我们需要用到的edi架构。
3) Biztalk application1 添加edi的引用BizTalk EDI Application。
4) 创建接收端口和发送端口。
a) 创建接受端口,Receive pipeline选择EdiReceive.
b) 创建3个发送端口:分别接受发送消息,返回到接收端的997消息,返回到接收端的TA1消息(创建997和TA1返回消息接口是因为我们后面要配置接收消息的返回消息)
5) 配置parties信息。
a) 创建Fabrikam企业信息和企业profile
b) 创建Contoso企业信息和企业profile
c) 创建Fabrikam到Contoso的agreement
我们实验的都是x12EDI消息。
定义identifier,这些值是由发送edi的头决定的。在本例中edi的头定义如下:
ISA*00* *00* *ZZ*THEM *ZZ*US *991221*1226*U*00401*000000025*0*T*>
此处定义对应了定义发送端口中的997和TA1返回消息。
Envelopes定义如下,
Transaction Type:850 purchase order
Version/Release: 00401
TargetNamspace: http://schemas.microsoft.com/BizTalk/EDI/X12/2006
GS1:默认PO-Purchase Order
GS2:0000000
GS3:1111111
GS4:YYMMDD
GS5:HHMM
GS7:X-Accredited Standard
GS8:00401
Contoso->Fabrikam只需要定义Indetifiers。
d) 测试,从路径C:\Program Files (x86)\Microsoft BizTalk Server 2010\SDK\EDI Interface Developer Tutorial下拷贝SamplePO.txt文件扔到接收文件夹,你会得到以下结果。
6) 这个实验我们要实现的edi流程如下: