演练 (X12):发送 EDI 交换

本演练提供了一组分步过程,用于创建使用 BizTalk Server 发送 EDI 交换的解决方案。

先决条件

必须以BizTalk Server管理员或BizTalk Server B2B 操作员组的成员身份登录。

解决方案如何发送 EDI 交换

该解决方案将执行以下操作:

  1. 一个单向 FILE 接收端口从 Fabrikam 接收 EDI 消息。

  2. 使用 EdiReceive 管道,接收端口将检查消息,并将其转换为 XML。 该接收端口随后将测试消息放入 MeassageBox。

  3. 一个静态单向发送端口从 MessageBox 提取 XML 消息。

  4. 该静态单向发送端口根据消息架构验证 EDI 消息、将 EDI 消息序列化为 EDI 交换,然后将 EDI 消息发送到贸易合作伙伴 Contoso 的本地文件夹。

此解决方案中的功能

本演练中使用了下列功能:

  • 本演练中并不测试接收确认。 若要了解如何接收确认,请参阅演示的 演练 (X12) :接收 EDI 交换并发送回确认

  • 该解决方案专用于使用 X12 编码而不是 EDIFACT 编码的交换。

    注意

    用于 HIPAA 和 EDIFACT 编码的配置与用于 X12 编码的配置几近相同。

  • EDI 类型和扩展的验证将在传出交换上执行。

  • 该解决方案使用传输类型为“FILE”的静态单向发送端口。

    注意

    除了使用静态单向发送端口外,您也可使用静态双向发送端口来发送交换和接收确认。 此外,您还可使用动态单向发送端口来发送交换。 有关使用动态发送端口的详细信息,请参阅 配置动态发送端口以发送 EDI 交换和确认

    注意

    您可使用一个 HTTP 适配器和 AS2 传输类型。 有关执行此操作的详细信息,请参阅 演练 (AS2) :使用同步 MDN演练 (AS2 发送 EDI) :使用异步 MDN 通过 AS2 发送 EDI

  • 系统将启用 EDI 报告功能,并保存事务集以便从交换状态报告进行查看。

  • 出于方便目的,该解决方案使用一个接收位置来接收测试消息。

    下图显示使用静态单向发送端口的该解决方案的结构。

    Sending EDI interchanges

配置和测试演练

该解决方案所需的过程包括:

  • 将所需的消息架构 () 添加到 BizTalk 项目,然后生成和部署项目,使架构可供BizTalk Server用于处理出站交换。

  • 创建接收端口和位置,以便BizTalk Server接收 EDI 交换。 此接收位置与 Fabrikam 存放要发送到 Contoso 的 EDI 交换的 file 文件夹相关联。 接收位置将使用 EdiReceive 接收管道。

  • 为BizTalk Server创建一个发送端口,以便将 EDI 交换发送到 Contoso。 在本演练中,您将创建一个静态单向发送端口。

  • 为 Fabrikam 和 Contoso 创建参与方(贸易合作伙伴)。

  • 为两个贸易合作伙伴分别创建一个业务配置文件。

  • 通过配置要接收的消息的 EDI 属性,在两个配置文件之间创建一个协议。

  • 使用测试 EDI 交换测试演练。

    注意

    对于测试消息,您可以使用在 EDI 接口开发人员教程中使用的 SamplePO.txt 文件。 该文件在 \Program Files (x86) \Microsoft BizTalk Server <VERSIONSDK>\EDI Interface Developer Tutorial\ 文件夹中提供。 这是一个 X12 850 消息。

配置演练

本部分介绍配置演练的过程。

部署消息架构
  1. 在Visual Studio中创建或打开 BizTalk 项目。

    注意

    本主题假定你已从你的应用程序添加了对包含 EDI 架构、管道和业务流程的 BizTalk EDI 应用程序的引用。 如果没有,请参阅添加对 BizTalk Server EDI 应用程序的引用

  2. 右键单击项目,指向 “添加”,然后单击“ 现有项”。 移动到架构所在的文件夹 \Program Files (x86) \Microsoft BizTalk Server <VERSION> XSD_Schema\EDI,然后双击架构。

    注意

    如果 EDI 架构尚未解压缩到 \XSD_Schema\EDI 文件夹中,请执行 \XSD_Schema\EDI 文件夹中 的MicrosoftEdiXSDTemplates.exe 文件,将架构解压缩到默认文件夹中。

    注意

    如果使用 EDI 接口开发人员教程中使用的SamplePO.txt文件,则必须使用 \Program Files (x86) \Microsoft BizTalk Server <VERSIONSDK>\EDI 接口开发人员教程\Inbound_EDI文件夹中提供的 X12_00401_850.xsd 架构。 不得在 \Program Files (x86) \Microsoft BizTalk Server <VERSION> XSD_Schema 文件夹中使用 X12 850 架构。

  3. 将程序集密钥文件添加到项目,然后生成并部署程序集。

为 Fabrikam) 创建单向接收端口 (以接收 EDI 交换
  1. 在 Windows 资源管理器中,创建一个用于接收交换的本地文件夹。

  2. 在BizTalk Server管理控制台中,右键单击 BizTalk 应用程序 1 节点下的“接收端口”节点,指向“新建”,然后单击“单向接收端口”。

  3. 将接收端口命名,然后单击控制台树中的 “接收位置 ”。

  4. 单击 “新建”

  5. 将接收位置命名为“类型”,然后选择“配置”。

  6. 输入 “接收”文件夹的文件夹,并为文件掩码输入 *.txt

  7. 单击“确定”。

  8. 对于 “接收”管道,请选择 “EdiReceive”。

  9. 单击“确定”,然后再次单击“确定”。

  10. 在控制台树中,单击“ 接收位置”。 在“ 接收位置 ”窗格中,右键单击接收位置,然后单击“ 启用”。

为 Contoso) 创建静态单向发送端口 (以发送 EDI 交换
  1. 在 Windows 资源管理器中,创建一个用于接收 EDI 交换的本地文件夹。

  2. 在BizTalk Server管理控制台中,右键单击 BizTalk 应用程序 1 节点下的“发送端口”节点,指向“新建”,然后单击“静态单向发送端口”。

  3. “发送端口属性 ”对话框中,命名发送端口。

  4. “传输 ”部分中,选择 类型,例如 FILE

  5. 如果使用 FILE 类型,请单击“ 配置”。 在 “目标”文件夹中,浏览到要向其发送交换的文件夹。 对于 文件名,请输入 %MessageID%.edi。 单击“确定”。

  6. “发送管道”中,选择 “EdiSend”。

  7. 在控制台树中,选择 “筛选器”,然后输入用于订阅消息的发送端口的筛选器表达式。 例如,您可将接收原始测试消息的接收位置用作筛选器表达式。 为此,对于属性,请输入 BTS。ReceivePortName;对于运算符,请输入;对于“值”,请输入==为从 Fabrikam 接收 XML 消息而创建的接收端口的名称。

    注意

    您可用所选的另一个属性进行筛选,例如,用 BTS.MessageType 进行筛选。

  8. 单击“确定”。

  9. 单击管理控制台中的 “发送端口 ”节点,右键单击发送端口,然后单击“ 开始”。

为 Fabrikam 创建一个参与方和业务配置文件
  1. 右键单击BizTalk Server管理控制台中的 Party 节点,指向“新建”,然后单击“”。

  2. 在“ 名称 ”文本框中输入参与方的名称,然后单击“ 确定”。

    注意

    通过选择“Party OR”接收的本地 BizTalk 处理消息,支持从此方复选框发送消息,可以指定正在创建的参与方适用于同时托管BizTalk Server的同一组织。 根据这一点,在创建协议时将启用或禁用某些属性。 但是,对于本演练,你可以选中此复选框。

  3. 右键单击群名称,指向 “新建”,然后单击“ 业务配置文件”。

  4. “配置文件属性”对话框中的“常规”页上,在“名称”文本框中输入Fabrikam_Profile

    注意

    创建群时,还会创建配置文件。 可以重命名和使用该配置文件,而不是创建新的配置文件。 若要重命名配置文件,请右键单击配置文件并选择“ 属性”。 在 “常规 ”页中,指定配置文件的名称。

为 Contoso 创建参与方和业务配置文件
  1. 右键单击BizTalk Server管理控制台中的 Party 节点,指向“新建”,然后单击“”。

  2. 在“ 名称 ”文本框中输入参与方的名称,然后单击“ 确定”。

    注意

    通过选择“Party OR”接收的本地 BizTalk 处理消息,支持从此方复选框发送消息,可以指定正在创建的参与方适用于同时托管BizTalk Server的同一组织。 根据这一点,在创建协议时将启用或禁用某些属性。 但是,对于本演练,你可以选中此复选框。

  3. 右键单击群名称,指向 “新建”,然后单击“ 业务配置文件”。

  4. 在“配置文件属性”对话框中的“常规”页上,在“名称”文本框中输入Contoso_Profile

    注意

    创建群时,还会创建配置文件。 可以重命名和使用该配置文件,而不是创建新的配置文件。 若要重命名配置文件,请右键单击配置文件并选择“ 属性”。 在 “常规 ”页中,指定配置文件的名称。

在两个业务配置文件之间创建协议
  1. 右键单击 Fabrikam_Profile,指向 “新建”,然后单击“ 协议”。

  2. 在“ 常规属性” 页中,对于 “名称 ”文本框,输入协议的名称。

  3. “协议 ”下拉列表中,选择 “X12”。

  4. 在“ 第二个合作伙伴 ”部分中,从 “名称 ”下拉列表中选择 “Contoso”。

  5. 在“ 第二个合作伙伴 ”部分中,从 “配置文件 ”下拉列表中选择 Contoso_Profile

    你会注意到,在 “常规 ”选项卡旁边添加了两个新选项卡。每个选项卡用于配置单向协议,每个单向协议表示消息 (的一个完整的事务,包括消息传输和确认传输) 。

  6. 在“常规”选项卡的“常规属性”页上的“通用主机设置”部分中,选择“打开报告”,然后选择“存储消息有效负载”进行报告

  7. Fabrikam-Contoso> 选项卡上执行以下任务。

    1. “交换设置”部分下的“标识符”页上,输入与测试消息中这些标头字段的值相对应的限定符和标识符字段的值 (ISA5、ISA6ISA7 和 ISA8) 。

      注意

      BizTalk Server需要发送方和接收方的限定符和标识符字段才能执行协议解析。 它将在交换标头中将 ISA5ISA6ISA7ISA8 的值与协议属性中的值匹配。 BizTalk Server还将通过匹配发送方限定符和标识符 (来解决协议,而无需接收方限定符和标识符) 。 如果BizTalk Server无法解决协议,它将使用回退协议属性。

      注意

      如果使用“EDI 接口开发人员教程”中的SamplePO.txt文件作为测试消息,请将 ISA5 设置为 ZZISA6它们ISA7ZZ,将 ISA8 设置为 美国

    2. “交换设置”部分下的“验证”页上,确保未选中“检查重复的 ISA13”选项。

      注意

      清除 “检查重复 ISA13 ”属性后,便可以接收同一消息的多个实例。

    3. “交换设置”部分下的字符集和分隔符页上,选择 CR LF 选项。

    4. “交换设置”部分下的“发送端口”页上,关联将从 Fabrikam 接收 EDI 交换的发送端口。 在 “发送端口 ”网格的“ 名称 ”列中,单击一个空单元格,然后从下拉列表中选择为从 Fabrikam 接收 EDI 交换而创建的发送端口。

    5. “事务集设置”部分下的“验证”页上,检查 EDI 类型验证并检查扩展验证

    6. 如果使用随附BizTalk Server的标准架构之一,请在事务集设置部分下的“本地主机设置”页上,选择要用于处理传入交换的架构的命名空间。

      使用此选项 要执行此操作
      默认 选中列中的复选框
      对于 ST1 选择 850 - 采购订单
      GS2 输入 THEM
      目标命名空间 选择 http://schemas.microsoft.com/BizTalk/EDI/X12/2006

      注意

      设置属性可让BizTalk Server确定要用于处理传入 850 交换的架构。 如果某一交换的 GS02 和 ST01 的值是在网格行上输入的,则将使用同一行的目标命名空间来确定要使用的架构。

    7. “事务集设置”部分下的“信封”页上,输入网格第一行中所有列的值。

      使用此选项 要执行此操作
      默认 选中 “默认 ”列中的复选框。 注意:选择此行作为默认值时,即使事务类型版本/发布目标命名空间的值与消息不匹配,也使用 GS1GS2GS3GS7 和 GS8 的值。
      事务类型 选择测试消息的消息类型 ,850 - 采购订单
      版本/发行版 输入 EDI 版本 00401
      目标命名空间 选择 http://schemas.microsoft.com/BizTalk/EDI/X12/2006
      GS1 验证是否选择了测试消息的消息类型, PO - 采购订单 (850)
      GS2 输入应用程序发送方的值。
      GS3 输入应用程序接收方的值。
      GS4 选择所需的日期格式。 注意: 必须在下拉列表中选择该值,而不仅仅是单击字段以显示默认值。 如果你仅单击字段,而没有从下拉列表中选择值,则实际上并未选择值。
      GS5 选择所需的时间格式。
      GS7 选择 X - 认可的标准委员会 X12
      GS8 验证是否已输入 EDI 版本 00401

      注意

      BizTalk Server将根据为事务类型版本/发布目标命名空间输入的值,为 GS01、GS03、GS04、GS05、GS07 和 GS08 设置出站确认的值。 发送管道尝试将事务集类型、X12 版本和目标命名空间与消息标头中的对应值相匹配。 如果成功,它将使用与 事务类型版本/发布目标命名空间 值关联的 GS 值。

  8. Contoso-Fabrikam> 选项卡上执行以下任务。

    注意

    在本演练中,我们在选项卡中指定所需的值,以便可以成功创建协议。 若要成功创建协议,两个单向协议选项卡都必须为 ISA5ISA6、ISA7ISA8 定义值。

    1. “交换设置”部分下的“标识符”页上,输入与测试消息中这些标头字段的值相对应的限定符和标识符字段的值 (ISA5、ISA6ISA7 和 ISA8) 。

      注意

      如果使用“EDI 接口开发人员教程”中的SamplePO.txt文件作为测试消息,请将 ISA5 设置为 ZZISA6美国ISA7ZZ,并将 ISA8 设置为 它们

  9. 单击“应用”。

  10. 单击 “确定” 。 新添加的协议列在“各方和业务配置文件”窗格的“协议”部分。 默认情况下,启用新添加的协议。

测试演练

本部分提供有关如何测试演练的信息。

测试演练
  1. 在 Windows 资源管理器中,将测试 EDI 交换放置到本地接收文件夹中。

    注意

    对于测试消息,您可以使用在 EDI 接口开发人员教程中使用的 SamplePO.txt 文件。 该文件在 \Program Files (x86) \Microsoft BizTalk Server <VERSIONSDK>\EDI Interface Developer Tutorial 文件夹中提供。 这是一个 X12 850 消息。 如果使用此消息,则必须部署 \Program Files (x86) \Microsoft BizTalk Server <VERSIONSDK>\EDI Interface Developer Tutorial\Inbound_EDI 文件夹中提供的 X12_00401_850.xsd 架构。 不得在 \Program Files (x86) \Microsoft BizTalk Server <VERSION> XSD_Schema 文件夹中使用 X12 850 架构。

  2. 在 Windows 资源管理器中,打开为发送端口指定的目标文件夹。 验证该文件夹包含符合以下条件的输出 EDI 交换:此交换的 ISA、GS 和 ST 标头与您在协议属性中输入的值相匹配。

另请参阅

开发和配置 BizTalk Server EDI 解决方案