双重操作 PIPAutomation 协调

DoubleAction.odx 示例演示了如何实现编排,以便自动生成双重动作合作伙伴接口进程 (PIP) 0C2、0C4、3A2 和 3A4 的响应。 可以扩展此示例项目以支持额外的双作用 PIP。

注释

示例文件夹中提供的地图是样本。 若要使用它们,必须根据特定要求更改它们。

注释

应将此示例项目扩展到仅支持双动作 PIP,而不是单动作 PIP。 如果扩展此编排以处理单一动作的 PIP,此编排将返回错误。 若要确保此编排不会处理单一动作 PIPs,请参阅下面的“筛选出 Single-Action 消息”部分。

默认情况下,Microsoft® BizTalk Accelerator for RosettaNet (BTARN) 安装程序在 <drive>:\Program Files\Microsoft BizTalk Accelerator for RosettaNet\SDK\PIPAutomation\DoubleAction 中安装此示例。

此示例项目包括:

  • 用于检索 PIP 0C2、0C4、3A2 和 3A4 的新操作消息的存储过程(PipAutomationGetAction))。

  • 绑定到 SQL 存储过程的接收位置(MessagesToLOB_Receive_Location)。

  • 处理每个 PIP 的业务流程(DoubleAction.odx),基于每个 PIP 的映射生成相应的响应,并将响应保存在 BTARNDATA 数据库的 MessagesFromLOB 表中。 编排使用 RNIFSubmit 方法从 Microsoft.Solutions.BTARN.Shared.dll 提交消息。

  • 一个绑定文件(DoubleActionBinding.xml),该文件 Setup.bat 用于创建用于 DoubleAction 业务流程的MessagesToLOB_Receive_Port。

  • 用于生成和初始化示例的设置文件。 如果 BizTalk Server 在 32 位计算机上运行,请在 drive>:\Program Files\Microsoft BizTalk Accelerator for RosettaNet \SDK\PIPAutomation\DoubleAction 文件夹中运行该文件 <setup.bat。 如果 BizTalk Server 在 64 位计算机上运行,请在同一文件夹中运行 setupx64.bat。

    在 BTARNData 数据库中,业务流程通过使用 PipAutomationGetAction 存储过程接收消息(源文件位于 DoubleAction 目录中的 DoubleAction.sql)。 此存储过程从 MessagesToLOB 表中检索消息。

    若要扩展此示例项目以支持额外的双重操作 PIP,请在协调过程中添加双重操作 PIP 的路径。 此路径将包含一个映射,用于构造对请求消息的响应消息。 有关示例映射,请参阅 3A2 对 3A2 响应映射示例的请求3A4 对 3A4 响应映射示例 [RN3] 的请求

生成和初始化此示例

  1. 在命令提示符处,找到 <drive>:\Program Files\Microsoft BizTalk Accelerator for RosettaNet\SDK\PIPAutomation\DoubleAction 文件夹。

    注释

    在运行安装程序之前,请在记事本中打开文件DoubleAction.sql(在上面的文件夹中)。 在“文件”菜单中,单击“另存为”。 在 编码 列表中,选择 ANSI,然后单击“ 保存”。 请单击 “是”以覆盖现有文件。

  2. 如果 BizTalk Server 在 32 位计算机上运行,请在 drive>:\Program Files\Microsoft BizTalk Accelerator for RosettaNet\SDK\PIPAutomation\DoubleAction 文件夹中运行该文件 setup.bat<。 如果 BizTalk Server 安装在 64 位计算机上运行,请在同一文件夹中运行 setupx64.bat。 批处理文件将执行以下作:

    • 在 BTARNDATA 数据库中创建一个 SQL 存储过程(PipAutomationGetAction),以从 MessagesToLOB 表中检索作消息。 这也可确保检索到的记录不会再次读取。

    • 编译 HeaderHelper .NET 项目并在全局程序集缓存中注册程序集。

    • 创建和绑定 BizTalk Server SQL 接收端口(MessagesToLOB_Receive_Port)。

    • 启用接收位置功能(MessagesToLOB_Receive_Location)。

    • 编译并部署 Double-Action PIPAutomation 业务流程(DoubleAction.odx)。

    • 绑定并启动 BizTalk Server 业务编排。

      注释

      该示例在编译时显示一些警告。 你可以忽略这些警告。

      注释

      此示例在部署项目时使用默认主机名 BizTalkServerApplication 。 如果要在不同的主机下运行示例,则需要编辑 SDK>\PIPAutomation\DoubleAction 文件夹下 <DoubleActionBinding.xml 中找到的默认主机名。

运行 Double-Action PIPAutomation 示例

  1. 创建一个 3A4 协议,其中主角色是发起方。 将家庭组织的 GBI 设置为123456789,并将合作伙伴的 GBI 设置为987654321。 这样就可以使用 SDK 中 LOBApplication 文件夹下的 SampleInstances 文件夹中提供的示例。

  2. 使用环回协议镜像实用工具,为步骤 1 中创建的 3A4 PIP 创建镜像。

  3. 使用 LOBApplication.exe SDK 实用工具,提交 3A4 PIP 请求消息。 BTARN SDK 在“安装目录>”\SDK\LOBApplication\SampleInstances\3A4_Request.xml文件夹中<包括一个输入示例。

  4. 对 BTARNDATA 数据库运行以下查询:

    Select * from MessagesToLOB  
    
  5. 几秒钟后,此表中会显示四条新消息。 其中两个是确认信号。 一个信号是异步 3A4 请求消息。 一个信号是异步 3A4 响应消息。

    注释

    若要撤消 Setup.bat所做的更改,请运行 Cleanup.bat。 在再次运行 Setup.bat 之前,必须运行 Cleanup.bat。

注解

公共编排自动生成确认(ACK 和 NACK 信号消息)。 业务线 (LOB) 应用程序不需要生成它们。

路由到 MessagesFromLOB 表的消息格式被称为 LOBMessage。 架构在 C:\Program Files\Microsoft BizTalk Accelerator for RosettaNet\SDK\RNIFSchemas\GlobalSchemas\LOBMessage.xsd 中提供。 如果使用此方法 RNIFSubmit ,则无需使用消息格式。 只需使用附加信息提交 ServiceContent。 RNIFSubmit 填充 MessagesFromLOB 表中的记录。

过滤掉 Single-Action 消息

此流程编排应仅接收双重操作消息。 不应扩展此示例项目以支持单一动作的 PIPs。 如果使用此编排来处理单一动作消息,BTARN 将会出现错误。 为了防止编排接收单个动作消息,请更改 PIPAutomationGetAction 存储过程中的以下行:

SELECT PIPInstanceID,DestinationPartyName,SourcePartyName,PIPCode,PIPVersion,ServiceContent FROM MessagesToLOB  

在上面的行中,添加一个 WHERE 子句以筛选出单一操作的消息。 在 WHERE 子句中包含所有将要处理的单一动作消息。 该行应如下所示:

SELECT PIPInstanceID,DestinationPartyName,SourcePartyName,PIPCode,PIPVersion,ServiceContent FROM MessagesToLOB WHERE PIPCode NOT IN ( '0A1', '3B2', '3C3', '0C1', '0C3' )  

另请参阅

3A2 请求到 3A2 响应映射示例
3A4 请求到 3A4 响应映射示例
编排示例