Korrelieren eines eingehenden Transaktionssatzes mit einem ausgehenden Batch
BizTalk Server ermöglicht es Ihnen, einen EDI-Transaktionssatz, der an die Batchverarbeitungsorchestrierung übermittelt wurde, mit einem ausgehenden Batch zu korrelieren. Dies erreichen Sie, indem Sie einen Statusberichteintrag für den an die Batchverarbeitungsorchestrierung („BTSInterchangeID“) gesendeten Transaktionssatz mit einem Statusberichteintrag für die Orchestrierung („ActivityID“) korrelieren. Diese Korrelation wird unter Verwendung von Einträgen in der BAM-Aktivität „BusinessMessageJournal“ ausgeführt. Diese Einträge werden von der Batchverarbeitungsorchestrierung erstellt, wenn ein Batchelement empfangen wird.
Wichtig
BizTalk Server werden nur dann Einträge in der BusinessMessageJournal-Aktivität vornehmen, wenn edi status Berichterstellung und Transaktionssatznachverfolgung für die Vereinbarung aktiviert ist.
In den folgenden Abschnitten wird Folgendes beschrieben:
Speichern von Nachverfolgungsdaten BizTalk Server
Erstellen einer benutzerdefinierten Pipelinekomponente zur Ermöglichung der Korrelation.
Korrelieren eines eingehenden Transaktionssatzes mit einem ausgehenden Batch.
Abfragen der Aktivität „BusinessMessageJournal“, um die „BTSInterchangeID“ des Batches zu bestimmen, wenn Sie die „BTSInterchangeID“ des in dem Batch enthaltenen Transaktionssatzes kennen.
Voraussetzungen
Sie müssen als Mitglied der Gruppe BizTalk Server Administratoren oder BizTalk Server B2B-Operatoren angemeldet sein.
Änderungen an den Aktivitäten
Die Batchverarbeitungsorchestrierung erstellt Einträge in den BAM-Aktivitäten „BatchingActivity“, „TransactionSetActivity“ und „BusinessMessageJournal“. Wenn ein Transaktionssatz BizTalk Server durchläuft, nimmt BizTalk Server die folgenden Einträge in diesen Aktivitätstabellen für den Transaktionssatz und den Batch vor, der ihn enthält:
Wenn der EDI-Disassembler einen eingehenden EDI-Austausch verarbeitet, erstellt er Einträge in den Tabellen „InterchangeStatusActivity“ und „TransactionSetActivity“.
Hinweis
Weitere Informationen zu den BAM-Aktivitäten finden Sie unter BAM-Aktivitäten erstellt zum Nachverfolgen von EDI-AS2-Nachrichten.
Wenn die Batchverarbeitungsorchestrierung instanziiert ist, erstellt die Orchestrierung einen Eintrag in der „BatchingActivity“. Das BAM-Subsystem erstellt einen Wert für die „ActivityID“.
Nachdem die Batchverarbeitungsorchestrierung den Transaktionssatz übernommen hat, erstellt sie einen Eintrag für den Transaktionssatz in der Tabelle „TransactionSetActivity“.
Die Orchestrierung erstellt dann einen Eintrag in der Aktivität „BusinessMessageJournal“. Sie legt das Feld „MessageTrackingID“ dieser Aktivität auf den Wert des Felds „ActivityID“ des Eintrags fest, der von der Orchestrierung in der Tabelle „TransactionSetActivity“ erstellt wurde. Darüber hinaus legt sie das Feld „BTSInterchangeID“ auf die Kontexteigenschaft BTS.InterchangeID des Transaktionssatzes fest und das Feld „BTSMessageID“ auf die Kontexteigenschaft BTS.MessageID des Transaktionssatzes.
Die Orchestrierung erstellt dann einen zweiten Eintrag in der Aktivität „BusinessMessageJournal“. Sie legt das Feld „MessageTrackingID“ auf den Wert des Felds „ActivityID“ des Eintrags fest, der von der Orchestrierung in der Tabelle „TransactionSetActivity“ erstellt wurde. Sie legt das Feld „BTSInterchangeID“ auf die Kontexteigenschaft BTS.InterchangeID für den Batch fest. Die „BTSMessageID“ wird nicht festgelegt. Sie legt die „ContainerActivityID“ auf den Wert der „ActivityID“ in der „BatchingActivity“ fest.
Erstellen einer benutzerdefinierten Pipelinekomponente zur Ermöglichung der Korrelation
Zum Einrichten einer Korrelation eines eingehenden Transaktionssatzes mit einem ausgehenden Batch, der diesen Transaktionssatz enthält, müssen Sie eine benutzerdefinierte Pipelinekomponente erstellen. Diese Pipelinekomponente sollte auf den EDI-Disassembler folgen, aber vor der BatchMarker-Komponente der EDIReceive-Pipeline sein. Diese Pipelinekomponente muss einen Eintrag in der Aktivität „BusinessMessageJournal“ erstellen. In diesem Eintrag muss das Feld „BTSInterchangeID“ auf die Kontexteigenschaft BTS.InterchangeID und das Feld „BTSMessageID“ auf die Kontexteigenschaft BTS.MessageID festgelegt werden.
Nachschlagen der „InterchangeID“ für einen Transaktionssatz in einem Batch
Ein empfangener Austausch wird mit dem Batch, der den Transaktionssatz aus dem Austausch enthält, korreliert, indem Sie die Einträge in der Tabelle „BatchingActivity“ und in der Aktivität „BusinessMessageJournal“, wie im Folgenden beschrieben, verwenden.
So korrelieren Sie einen eingehenden Transaktionssatz mit einem ausgehenden Batch, der diesen Transaktionssatz enthält
Bestimmen Sie den Wert von „ActivityID“ für den Batch in der Tabelle „BatchingActivity“.
Suchen Sie nach dem Wert von „ActivityID“ im Feld „ContainerActivityID“ der Aktivitätstabelle „BusinessMessageJournal“.
In dem anhand der „ContainerActivityID“ identifizierten Datensatz schlagen Sie den Wert des Felds „MessageTrackingID“ nach, das dem Batch zugeordnet ist.
Suchen Sie unter Verwendung des Felds „MessageTrackingID“, das dem Batch in der Aktivitätstabelle „BusinessMessageJournal“ zugeordnet ist, nach demselben Wert im Feld „MessageTrackingID“ anderer Datensätze in der Aktivitätstabelle „BusinessMessageJournal“. Alle gefundenen Datensätze sind Transaktionssätzen in dem Batch zugeordnet, wie von der Batchverarbeitungsorchestrierung aufgezeichnet.
Schlagen Sie in einem Datensatz, der einem Transaktionssatz in der Aktivitätstabelle „BusinessMessageJournal“ zugeordnet ist, den Wert des Felds „BTSInterchangeID“ nach.
Sie können unter Verwendung des Werts der „BTSInterchangeID“ einen Datensatz für den Transaktionssatz nachschlagen, der in der Aktivitätstabelle „BusinessMessageJournal“ erstellt wurde, wie von der benutzerdefinierten Pipelinekomponente aufgezeichnet. Ferner können Sie einen Datensatz für den Transaktionssatz in der Tabelle „TransactionSetActivity“ nachschlagen.
Abfragen von „BusinessMessageJournal“
Wenn die Transaktionssatz-Berichterstattung aktiviert ist und Sie die „BTSInterchangeID“ des empfangenen Austauschs kennen, können Sie mit der folgenden SQL-Abfrage die „BTSInterchangeID“ des Batches herausfinden, der den an die Batchverarbeitungsorchestrierung gesendeten Transaktionssatz enthält. Mit diesem Code können Sie dann eine benutzerdefinierte Anwendung erstellen, um Einsicht in die Nachrichten eines Batches zu erhalten.
Wichtig
BizTalk Server werden nur dann Einträge in der BusinessMessageJournal-Aktivität vornehmen, wenn edi status Berichterstellung und Transaktionssatznachverfolgung für die Vereinbarung aktiviert ist.
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>
Weitere Informationen
Zum Nachverfolgen von EDI-/AS2-Nachrichten erstellte BAM-Aktivitäten
Aktivieren von EDI- und AS2-Statusberichten