共用方式為


使內送交易集與外寄批次相互關聯

BizTalk Server可讓您將提交至批次協調流程的 EDI 交易集與傳出批次相互關聯。 您可以透過讓提交至「批次處理協調流程」(BTSInterchangeID) 的狀態報告項目與協調流程 (ActivityID) 的狀態報告項目相互關聯,藉此完成這項操作。 此相互關聯是使用 BusinessMessageJournal BAM 活動中的項目執行。 這些項目是由「批次處理協調流程」在接收批次元素時建立。

重要

BizTalk Server只有在合約啟用 EDI 狀態報表和交易集追蹤時,才會在 BusinessMessageJournal 活動中建立專案。

下列章節會說明下列內容:

  • BizTalk Server如何儲存追蹤資料

  • 如何建立自訂管線元件來啟用相互關聯

  • 如何使內送交易集與外寄批次相互關聯

  • 如何在已知批次中所包含交易集的 BTSInterchangeID 時查詢 BusinessMessageJournal 活動以判斷批次的 BTSInterchangeID。

必要條件

您必須以 BizTalk Server Administrators 或 BizTalk Server B2B 操作員群組的成員身分登入。

活動的變更

「批次處理協調流程」會在 BatchingActivity、TransactionSetActivity 和 BusinessMessageJournal BAM 活動中建立項目。 當交易集在 BizTalk Server 中進行時,BizTalk Server 將在交易集的這些活動資料表和包含交易集的批次中建立下列項目:

  1. 當 EDI 解譯器處理內送 EDI 交換時,會在 InterchangeStatusActivity 和 TransactionSetActivity 資料表中建立項目。

    注意

    如需 BAM 活動的詳細資訊,請參閱 建立以追蹤 EDI-AS2 訊息的 BAM 活動

  2. 當「批次處理協調流程」產生時,協調流程就會在 BatchingActivity 中建立一個項目。 BAM 子系統會為 ActivityID 建立一個值。

  3. 批次處理協調流程挑選了交易集之後,就會在 TransactionSetActivity 資料表中建立交易集的項目。

  4. 協調流程會在 BusinessMessageJournal 活動中建立一個項目。 它會將此活動的 MessageTrackingID 欄位設定為協調流程在 TransactionSetActivity 資料表中所建立項目的 ActivityID 欄位值。 此外還會將 BTSInterchangeID 欄位設為交易集的 BTS.InterchangeID 內容屬性,以及將 BTSMessageID 欄位設為交易集的 BTS.MessageID 內容屬性。

  5. 協調流程會在 BusinessMessageJournal 活動中建立第二個項目。 它會將 MessageTrackingID 欄位設定為協調流程在 TransactionSetActivity 資料表中所建立項目的 ActivityID 欄位, 以及將 BTSInterchangeID 欄位設為批次的 BTS.InterchangeID 內容屬性。 不過不會設定 BTSMessageID。 另外還會將 ContainerActivityID 設為 BatchingActivity 中 ActivityID 的值。

建立自訂管線元件來啟用相互關聯

若要建立內送交易集與包含交易集的外寄批次之間的相互關聯,您必須建立自訂管線元件。 此管線元件應在 EDI 解譯器之後,並且在 EDIReceive 管線的 BatchMarker 元件之前。 此管線元件必須在 BusinessMessageJournal 活動中建立一個項目。 在此項目中,BTSInterchangeID 欄位應設為 BTS.InterchangeID 內容屬性,而 BTSMessageID 欄位應設為 BTS.MessageID 內容屬性。

查閱批次中交易集的 InterchangeID

您可以透過使用 BatchingActivity 資料表和 BusinessMessageJournal 活動中的項目,使收到的交換與包含交換中交易集的批次相互關聯,如下所述。

使內送交易集與包含該交易集的外寄批次相互關聯

  1. 判斷 BatchingActivity 資料表中批次的 ActivityID 值。

  2. 在 BusinessMessageJournal 活動資料表的 ContainerActivityID 欄位中搜尋 ActivityID 值。

  3. 在 ContainerActivityID 識別的記錄中,查閱與批次相關聯的 MessageTrackingID 欄位值。

  4. 使用與 BusinessMessageJournal 活動資料表中批次相關聯的 MessageTrackingID 欄位值,在 BusinessMessageJournal 活動資料表中其他記錄的 MessageTrackingID 欄位中搜尋相同的值。 找到的所有記錄都會與批次中的交易集相關,如同「批次處理協調流程」所記錄。

  5. 在與 BusinessMessageJournal 活動資料表中交易集相關的記錄中,查閱 BTSInterchangeID 欄位的值。

  6. 您可以使用 BTSInterchangeID 的值,查閱之前在 BusinessMessageJournal 活動資料表中建立的交易集記錄,如自訂管線元件所記錄。 您也可以查閱 TransactionSetActivity 資料表中的交易集記錄。

查詢 BusinessMessageJournal

如果交易集報告已啟用,而且您知道所收到交換的 BTSInterchangeID,則可以使用下列 [SQL 查詢] 找出包含提交至「批次處理協調流程」之交易集的批次 BTSInterchangeID。 您可以使用此程式碼建立自訂應用程式,以檢視批次中的訊息。

重要

BizTalk Server只有在合約啟用 EDI 狀態報表和交易集追蹤時,才會在 BusinessMessageJournal 活動中建立專案。

Select MessageTrackingID  
From BusinessMessageJournal  
Where BTSInterchangeID = <given InterchangeID of the receive interchange>  
  
Select BTSInterchangeID  
From BusinessMessageJournal  
Where MessageTrackingID = <MessageTrackingID from the previous query> and BTSInterchangeID = <given InterchangeID>  

另請參閱

建立用來追蹤 EDI-AS2 訊息的 BAM 活動
啟用 EDI 和 AS2 狀態報告