双操作 PIPAutomation 业务流程

此 DoubleAction.odx 示例演示如何实现为双操作合作伙伴接口流程 (PIP) 0C2、0C4、3A2 和 3A4 自动生成响应的业务流程。 你可将此示例项目扩展为支持其他双操作 PIP。

注意

该示例文件夹中提供的映射为示例映射。 若要使用这些映射,必须根据你的具体要求来更改它们。

注意

在扩展此示例项目时,只能扩展为支持其他双操作 PIP,而不能扩展为支持单操作 PIP。 如果将此业务流程扩展为处理单操作 PIP,则它将返回一个错误。 若要确保此业务流程不处理单操作 PIP,请参阅下面的“筛选单操作消息”部分。

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

此示例项目包含以下内容:

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

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

  • 一个业务流程 (DoubleAction.odx),用于处理每个 PIP,根据映射生成每个 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 数据库中创建 PipAutomationGetAction () SQL 存储过程,以从 MessagesToLOB 表中检索操作消息。 这还可以确保不会重复读取检索到的记录。

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

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

    • 启用接收位置 (MessagesToLOB_Receive_Location)。

    • 编译并部署双操作 PIPAutomation 业务流程 (DoubleAction.odx)。

    • 绑定并启动 BizTalk Server 业务流程。

      注意

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

      注意

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

运行双操作 PIPAutomation 示例

  1. 创建本组织角色为发起方的 3A4 协议。 将本组织的 GBI 设置为 123456789,将合作伙伴的 GBI 设置为 987654321。 这允许您使用 SampleInstances 文件夹中的示例,该文件夹位于 SDK 中的 LOBApplication 文件夹下。

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

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

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

    Select * from MessagesToLOB  
    
  5. 几秒钟后,会有四个新消息出现在此表中。 其中两个消息是确认信号。 一个信号是 Async 3A4 请求消息。 另一个信号是 Async 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 表中的记录。

筛选单操作消息

此业务流程应只接收双操作消息。 你不应将此示例项目扩展为支持单操作 PIP。 如果使用此业务流程来处理单操作消息,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 响应映射示例
业务流程示例