實作外部批次釋放機制
您可以使用外部釋放觸發程序來觸發釋放批次。 您可讓後端的企業營運系統應用程式在達到特定的臨界值時,自動觸發釋放。 除了透過排程或交易集或字元計數自動觸發批次發行,或按一下單向合約索引標籤之 [批次組態] 頁面中的 [覆寫] 按鈕,手動觸發批次。
若要實作外部釋放觸發程序,您必須設定接收埠和位置來處理 OverrideControlMessage。 接收位置必須使用 Edi.BatchControlMessageRecvPipeline
接收管線。 這是 BatchControlMessageRecvLoc 接收位置所使用的相同管線,BizTalk Server用來處理手動覆寫訊息。 不過,BatchControlMessageRecvLoc 是 SQL 類型的接收位置,而您為外部釋放觸發程序設定的接收位置則可使用任何配接器類型。
外部批次釋放是由 XML 控制訊息觸發的。 若要觸發批次,後端應用程式需要將控制訊息路由傳送至接收位置。 您可以修改控制訊息來啟動、覆寫或終止批次。 請參閱下面建立控制訊息的程序。
若要啟用外部發行觸發程式,您必須在 X12 或 EDIFACT 的 [合約屬性] 對話方塊的 [批次組態] 頁面中選取 [外部發行觸發程式] 屬性。 此屬性指示批次發行時必須有外部發行訊息。 如果已選取[外部發行觸發程式] 屬性,[覆寫] 按鈕、[停止] 按鈕和 [啟用範圍] 控制項仍有效。
必要條件
您必須以 BizTalk Server Administrators 或 BizTalk Server B2B 操作員群組的成員身分登入。
若要建立外部批次釋放觸發程序訊息的接收位置
在 BizTalk Server 管理主控台中,建立單向接收埠。 如需如何建立接收埠的指示,請參閱 如何建立接收埠。
在接收埠中建立單向接收位置。
選取傳輸類型。 您可以為這個接收位置選取任何類型。 一般是選取 [FILE] 類型,然後輸入接收檔案的資料夾。
針對 [接收管線],選取
BatchControlMessageRecvPipeline
。按一下 [確定]。
若要建立外部批次釋放觸發程序訊息
在 [記事本] 中建立新檔案,命名時以 .xml 為副檔名。
將下列程式碼新增至檔案:
<?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。
判斷批次識別碼和批次名稱。 若要這樣做,請開啟 [ 合約屬性 ] 對話方塊,然後在 [單向合約] 索引標籤上,按一下 [ 批次設定]。 按一下要覆寫之批次的索引標籤,然後在控制訊息的BatchName和BatchID節點中輸入Batch 名稱和Batch ID欄位的值。
指定目的地合作物件名稱。 在 BizTalk Server 管理主控台中,按一下 [合作物件] 節點,然後從 [合作物件和商務設定檔] 頁面取得將接收批次交換之合作物件/合作夥伴的名稱。 在控制項訊息的 ReceiverPartyNameType 節點中輸入名稱。
指定寄件者合作物件名稱。 在 BizTalk Server 管理主控台中,按一下 [合作物件] 節點,然後從 [合作物件和商務設定檔] 頁面,取得將傳送批次交換的合作物件/合作夥伴名稱。 在控制項訊息的 SenderPartyName 節點中輸入名稱。
指定合約名稱。 在 [BizTalk Server 管理主控台] 中,按一下 [合作物件] 節點,然後從 [合作物件和商務設定檔] 頁面的 [合約] 區段中,以滑鼠右鍵按一下具有需要使用控制訊息覆寫之批次設定的合約,然後按一下 [屬性]。 在 [合約屬性] 對話方塊的 [一般] 索引標籤的 [一般屬性] 頁面上,從 [合約參數] 區段中的 [名稱] 欄位複製值,並將其貼到控制項訊息的AgreementName節點中。
注意
您不需要指定目的地合作對象識別碼。 控制項訊息中只需要 元素,才能進行回溯相容性。
儲存檔案。
若要啟用外部釋放觸發程序
在 [BizTalk Server 管理主控台] 中,按一下 [合作物件] 節點,然後從 [合作物件和商務設定檔] 頁面的 [合約] 區段中,以滑鼠右鍵按一下具有需要使用控制訊息覆寫之批次設定的合約,然後按一下 [屬性]。 在 [ 合約內容 ] 對話方塊的 [單向合約] 索引標籤上,按一下 [ 批次設定]。
在 [ 批次組態 ] 頁面中,按一下您想要擁有外部發行觸發程式的批次索引標籤,然後在 [ 發行 ] 區段底下,選取 [ 外部發行觸發程式]。
按一下 [確定] 。