在BizTalk 2006以及更早的版本中对EDI的支持是有限的,虽有有一些Adapter和Accelerator可以提供我们实现一些基础的EDI解决方案,但是他们的功能存在很大的限制,例如文档的验证方式。在BizTalk 2010中,对EDI功能的支持有了非常显著的提升,现在,它不仅允许验证大量的文档,还提供了许多传输文档的方式,包括实现企业级EDI时常用的所有报告功能。现在,BizTalk可以与许多增值网络(VAN)提供相同的服务级别,同时还具备包括通过业务流程开发业务工作流、访问业务规则、扩展的文档跟踪、管理状态等功能。
BizTalk 2010给我们提供了成上千种EDI报文格式,但是有时我们在B2B之间传输报文时有很多自有报文格式,这时候要利用BizTalk实现EDI,就要先开发与交易文档相关的架构,定义了文档后,将贸易合作伙伴创建为BizTalk合作对象,然后配置合作伙伴的规范以确保正确处理和路由EDI报文。接下来,设置通过合作对象配置和 BizTalk 适配器的组合,来实现如何传送文档的细节。设置好解决方案后,即可使用 EDI 报告实时监控文档流。所有这些功能都是以 BizTalk 基础结构为基础的,并受益于 MessageBox、业务流程、端口和管道等所有标准组件。
我将介绍使用 BizTalk Server EDI 组件自定义EDI报文的几个重要功能,来说明架构创建、文档对应、EDI 传送和传输以及异常处理的各个方面。
开发EDI Schema
![](http://hi.csdn.net/attachment/201110/21/0_1319215344U2Qe.gif)
<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns="http://schemas.MSDN.com/Common/810/v1" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://schemas.MSDN.com/Common/810/v1" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="COMMON_810">
<xs:complexType>
<xs:sequence>
<xs:element name="TRANSACTION">
<xs:complexType>
<xs:sequence>
<xs:element name="HEADER">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element name="GUID" type="xs:string" />
<xs:element name="DOCID" type="xs:string" />
<xs:element name="DESC" type="xs:string" />
<xs:element name="PARTNER" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ADDRESSES">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element maxOccurs="unbounded" name="ADDRESS">
<xs:complexType>
<xs:sequence>
<xs:element name="TYPE" type="xs:string" />
<xs:element name="STREET" type="xs:string" />
<xs:element name="CITY" type="xs:string" />
<xs:element name="STATE" type="xs:string" />
<xs:element name="ZIP" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ITEMS">
...
![](http://hi.csdn.net/attachment/201110/21/0_1319215794BhEH.gif)
ISA*00* *00* *01*
BASECOMP12 *ZZ*TRADPART1 *
070407*1555*U*00401*000000025*0*T*>~
![](http://hi.csdn.net/attachment/201110/21/0_1319215911ko1C.gif)