实现外部批处理发布机制

您可以使用外部发布触发器触发批处理的发布。 可以通过后端业务线应用程序在达到某一阀值时自动触发此发布。 此外,此机制还按计划或事务集或字符数自动触发批处理发布,或者通过单击单向协议选项卡的“批处理配置”页中的“替代”按钮手动触发批处理。

若要实现外部发布触发器,需要设置接收端口和位置,以便处理 OverrideControlMessage。 接收位置必须使用 Edi.BatchControlMessageRecvPipeline 接收管道。 这是 BatchControlMessageRecvLoc 接收位置使用的管道,BizTalk Server用于处理手动替代消息。 不过,BatchControlMessageRecvLoc 是 SQL 类型的接收位置,而为外部发布触发器设置的接收位置可以使用任何适配器类型。

外部批处理发布触发器由 XML 控制消息触发。 为触发批处理,后端应用程序会将控制消息路由到接收位置。 您可以修改控制消息,以便激活、替代或终止批处理。 请参阅以下有关创建控制消息的过程。

若要启用外部发布触发器,必须在 X12 或 EDIFACT 的“协议属性”对话框的“批处理配置”页中选择“外部发布触发器”属性。 此属性指明批处理发布需要外部发布消息。 如果选择了“外部释放触发器”属性,“替代”按钮、“停止”按钮和“激活范围”控件仍然有效。

必备条件

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

为外部批处理发布触发器消息创建接收位置

  1. 在 BizTalk Server 管理控制台中,创建单向接收端口。 有关如何创建接收端口的说明,请参阅 如何创建接收端口

  2. 在接收端口中创建一个单向接收位置。

  3. 选择传输类型。 您可以为此接收位置选择任意类型。 通常是选择“FILE”类型,然后输入用于接收文件的文件夹。

  4. 对于“接收管道”,请选择 。BatchControlMessageRecvPipeline

  5. 单击 “确定”

创建外部批处理发布触发器消息

  1. 在记事本中新建一个文件,然后使用 .xml 扩展名对其进行命名。

  2. 将以下内容添加到该文件:

    <?xml version="1.0" encoding="utf-8"?>  
    <ControlMessage xmlns="http://SQLControlMessage.IssueSelect">  
      <PAM_Control xmlns="http://SQLControlMessage.IssueSelect">  
        <DestinationParty>[Party ID]</DestinationParty>  
        <EdiMessageType>[0 for X12\HIPAA|1 for Edifact]</EdiMessageType>  
        <ActionType>EdiBatchOverride</ActionType>  
        <ActionDateTime>[yyyy-mm-ddThh:mm:ss.sss]</ActionDateTime>  
        <UsedOnce>0</UsedOnce>  
        <BatchId>[Batch ID]</BatchId>  
        <BatchName>[Batch Name]</BatchName>  
        <DestinationPartyName>[Destination Party/Partner name]</DestinationPartyName>  
        <SenderPartyName>[Sender Party/Partner name]</SenderPartyName>  
        <AgreementName>[Agreement Name]</AgreementName>  
        <ReceiverPartyNameType>[Receiver Party/Partner name]</ReceiverPartyNameType>  
        <ToBeBatched>1</ToBeBatched>  
      </PAM_Control>  
    </ControlMessage>  
    

    替换以上摘录中的值,如下所示:

    • 指定操作类型。 通常, ActionType 必须设置为 EdiBatchOverride 才能替代协议中完成的批处理设置。 还可以将此设置为 EdiBatchTerminate ,以通过外部触发器终止批处理。

      注意

      Microsoft 建议您不要使用外部发布触发器来激活批处理。 因此,不应将 ActionType 指定为 EdiBatchActivate

    • 确定批 ID 和批名称。 为此,请打开“ 协议属性 ”对话框,然后在“单向协议”选项卡上,单击“ 批处理配置”。 单击要重写的批处理的选项卡,并在控制消息的 BatchName 和 BatchID 节点中输入“Batch名称”和“Batch ID”字段的值。

    • 指定目标参与方名称。 在BizTalk Server管理控制台中,单击“参与方”节点,然后从“参与方和业务配置文件”页获取将接收批处理交换的参与方/合作伙伴的名称。 在控件消息的 ReceiverPartyNameType 节点中输入名称。

    • 指定发送方名称。 在BizTalk Server管理控制台中,单击“参与方”节点,然后从“参与方和业务配置文件”页获取将发送批处理交换的参与方/合作伙伴的名称。 在控制消息的 SenderPartyName 节点中输入名称。

    • 指定协议名称。 在BizTalk Server管理控制台中,单击“参与方”节点,在“参与方和业务配置文件”页的“协议”部分中,右键单击具有需要使用控制消息重写的批处理配置的协议,然后单击“属性”。 在“协议属性”对话框的“常规”选项卡的“常规属性”页上,从“协议参数”部分的“名称”字段中复制值,并将其粘贴到控件消息的“AgreementName”节点中。

    注意

    无需指定目标方 ID。 控制消息中需要此元素只是为了实现向后兼容性。

  3. 保存文件。

启用外部发布触发器

  1. 在BizTalk Server管理控制台中,单击“参与方”节点,在“参与方和业务配置文件”页的“协议”部分中,右键单击具有需要使用控制消息重写的批处理配置的协议,然后单击“属性”。 在“ 协议属性 ”对话框中的“单向协议”选项卡上,单击“ 批处理配置”。

  2. “批处理配置” 页中,单击要为其具有外部发布触发器的批的选项卡,然后在“ 发布 ”部分下,选择“ 外部发布触发器”。

  3. 单击“确定”。

另请参阅

配置 EDI 批
如何创建接收位置