Freigeben über


End-to-End für BAM (BizTalk Server-Beispiel)

Das End-to-End-Beispiel zeigt, wie Ereignisse aus mehreren Komponenten (in diesem Fall: drei Orchestrierungen und einer Pipeline) mithilfe von BAM korreliert werden.

BAM rekonstruiert die Geschäftsaktivität, die die Pipelinekomponente und die Orchestrierungen umfasst. Auf der niedrigsten Ebene funktioniert dies durch Aufrufe von EventStream.EnableContinuation von jeder Implementierungskomponente, die mehr Ereignisse für die Aktivität erwartet. Der Aufruf von EnableContinuation ist explizit, während Aufrufe in Orchestrierung1 und Orchestrierung2 ausgeführt werden, indem dem Tracking-Profil in einem Zeitplan ein Fortsetzungsordner und ein ContinuationID-Ordner zum folgenden Zeitplan hinzugefügt werden.

Im folgenden Diagramm wird der im Beispiel verwendete Workflow veranschaulicht.

Abbildung, die zeigt, wie Ereignisse aus mehreren Komponenten korreliert werden.

Ziel des Beispiels

Das End-to-End-Beispiel für BAM zeigt, wie BAM eingesetzt werden kann, um Informationen aus einer Pipeline und mehreren Orchestrierungen zu sammeln und eine einzelne Aktivität zu aktualisieren.

Konzeption und Aufgabe dieses Beispiels

Das End-to-End-Beispiel für BAM soll die folgenden Aktivitäten veranschaulichen:

  • Verwenden von BAM in einer Pipeline.

  • Verwenden des Überwachungsprofil-Editors (Tracking Profile Editor, TPE), um Aktivitätselemente Formen in einer Orchestrierung und Elementen einer Nachricht zuzuordnen.

  • Verwenden von Fortsetzungen (Continuations), damit eine Aktivität aktiv bleibt, wenn mehrere Teile einer Lösung an einer Aktivität beteiligt sind.

Die Vorgehensweise in diesem Beispiel:

  1. Eine Eingabenachricht wird aus dem <Ordner Samples Path>\BamEndToEnd\Input abgerufen.

  2. Die Pipelinekomponente weist der Nachricht eine eindeutige DocumentID zu und verwendet die BAM-API, um eine neue BAM-Aktivität zu beginnen. Die DocumentID wird als separater Teil der Eingabenachricht angefügt und so den Orchestrierungen zur Verfügung gestellt.

  3. Der Dienst Orchestration1 wird beim Eintreffen der Eingabenachricht aktiviert.

  4. Orchestration1 ändert die Eingabenachricht und übergibt sie als Parameter an Orchestration2.

  5. Orchestration2 ändert die Eingabenachricht und sendet sie an die MessageBox-Datenbank, die Orchestration3 aktiviert.

  6. Orchestrierung3 ändert die Nachricht und schreibt sie in den Ordner <Samples Path>\BamEndToEnd\Output.

  7. Jede Orchestrierung aktualisiert Aktivitätselemente in der BAM-Aktivität.

Speicherort dieses Beispiels

Dieses Beispiel finden Sie unter <Beispielpfad>\BAM\BamEndToEnd.

In der folgenden Tabelle werden die Dateien in diesem Beispiel samt Zweck beschrieben.

Datei(en) BESCHREIBUNG
BamEndToEnd.sln End-to-End-Beispiellösung für BAM
BamEndToEnd.xls Stylesheet für BAM-Definition
BamEndToEnd.xml XML-Datei der BAM-Definition
BAMEndToEndBinding.xml Die BAM-Bindung.
Cleanup.bat Batchdatei für das Zurücknehmen der Bereitstellung des Beispiels
InputMessage.xml Eingabenachricht
Setup.bat Batchdatei für das Kompilieren und Bereitstellen des Beispiels
\Components\AssemblyInfo.cs Der Pipelinekomponentencode.
\Components\BAMMessagePartPLComponent.cs Der Pipelinekomponentencode.
\Components\Components.csproj Pipelinekomponentenprojekt
\Messages\InputMessage01.xml

...

\Messages\InputMessage10.xml
Beispieleingabenachrichten
\Services\BAMInbound.btp Eingehende Pipelinedatei
\Services\BAMPartSchema.xsd Nachrichtenschema für BAM-Teil
\Services\Orchestration1.odx Orchestrierung.
\Services\Orchestration2.odx Orchestrierung.
\Services\Orchestration3.odx Orchestrierung.
\Services\PropertySchema.xsd Eigenschaftsschema.
\Services\Schema1.xsd Das Nachrichtenschema.
\Services\Schema2.xsd Das Nachrichtenschema.
Dienste\Schema3.xsd Das Nachrichtenschema.
\Services\Services.btproj Visual Studio BizTalk-Dateiprojekt.
\Services\Transform_1.btm Die Zuordnungsdatei.
\Services\Transform_2.btm Die Zuordnungsdatei.
\Services\Transform_3.btm Die Zuordnungsdatei.

Verwenden dieses Beispiels

Mithilfe der folgenden Verfahren können Sie das End-to-End-Beispiel für BAM erstellen und ausführen.

Erstellen und Initialisieren dieses Beispiels

  1. Öffnen Sie eine Eingabeaufforderung als Administrator, und führen Sie Beispielpfad>\BAM\BAMEndToEnd\Setup.bat aus<. Setup.bat erstellt und initialisiert die BAM-Infrastruktur für dieses Beispiel. Lassen Sie die Eingabeaufforderung geöffnet.

  2. Erstellen Sie ein Überwachungsprofil, um Orchestration1, Orchestration2 undOrchestration3 der BAM-Aktivität zuzuordnen. (Da das Erstellen des Nachverfolgungsprofils ein komplexer Prozess ist, befinden sich die detaillierten Anweisungen in einem separaten Verfahren mit dem Namen So erstellen Sie ein Nachverfolgungsprofil. Dieses Verfahren wird weiter unten in diesem Dokument angezeigt.)

  3. Stellen Sie das im vorhergehenden Schritt erstellte Überwachungsprofil BamEndToEnd.btt bereit. Wechseln Sie in der Eingabeaufforderung zum <Verzeichnis Samples Path>\BAM\BamEndToEnd. Geben Sie zum Bereitstellen des Nachverfolgungsprofils die folgende Zeile ein, und drücken Sie dann die EINGABETASTE:

    “<BizTalkInstallationPath>\Tracking\bttdeploy” BamEndToEnd.btt

    Weitere Informationen zum Bereitstellen von Nachverfolgungsprofilen mit dem Verwaltungsprogramm für Nachverfolgungsprofile .

    Wichtig

    Sie können die Meldung ignorieren, dass „ContinuationID Orch1_“ keine übereinstimmende Fortsetzung besitzt. Diese Meldung wird erwartet, weil die Fortsetzung Orch1_ in der Pipelinekomponente (und nicht im Überwachungsprofil) definiert ist.

Dieses Beispiel ausführen

Kopieren Sie die Datei <Samples Path>\BamEndToEnd\InputMessage.xml in den Ordner <Samples Path>\BamEndToEnd\Input. Nach einigen Sekunden wird die Nachricht aus dem Ordner Eingabe ausgeblendet, und eine Ausgabemeldung wird im <Ordner Samples Path>\BamEndToEnd\Output angezeigt.

Anzeigen der BAM-Daten

  1. Öffnen Sie SQL Server Management Studio.

  2. Erweitern Sie in SQL Server Management Studio den Server, datenbanken, BAMPrimaryImport und tabellen.

  3. Klicken Sie mit der rechten Maustaste auf dbo.bam_EndToEndActivity_Completed, und klicken Sie dann auf Tabelle öffnen. Wenn Sie SQL Server verwenden, klicken Sie auf Top 1000 Zeilen auswählen.

    Der Inhalt der Tabelle bam_EndToEndActivity_Completed wird im rechten Bereich angezeigt. Jede Tabellenzeile stellt eine abgeschlossene Aktivität vom Typ „EndToEndActivity“ dar.

Erneutes Ausführen dieses Beispiels

  1. Öffnen Sie eine Eingabeaufforderung als Administrator, und wechseln Sie zum <Verzeichnis Samples Path>\BAM\BamEndToEnd. Geben Sie die folgende Zeile ein:

    “C:\Program Files\Microsoft BizTalk Server <version>\Tracking\bttdeploy” BamEndToEnd.btt /remove

    Hinweis

    Wenn Sie BizTalk Server nicht auf Laufwerk C installiert haben, ersetzen Sie "C" durch den Laufwerkbuchstaben, an dem Sie BizTalk Server installiert haben.

  2. Führen Sie <beispielpfad>\BAM\BAMEndToEnd\Cleanup.bat aus. Cleanup.bat entfernt die BAM-Infrastruktur für dieses Beispiel.

  3. Führen Sie die Schritte unter Erstellen und Initialisieren dieses Beispielabschnitts in diesem Thema aus.

Erstellen eines Nachverfolgungsprofils

  1. Klicken Sie auf Start, zeigen Sie auf Alle Programme, zeigen Sie auf Microsoft BizTalk Server 20xx. Klicken Sie mit der rechten Maustaste auf Überwachungsprofil-Editor, und Führen Sie als Administrator aus.

  2. Klicken Sie im linken Bereich des Fensters Nachverfolgungsprofil-Editor auf Klicken Sie hier, um eine BAM-Aktivitätsdefinition zu importieren.

  3. Wählen Sie im Abschnitt BAM-Aktivitätsdefinitionsname des Dialogfelds Bam-Aktivitätsdefinition importierendie Option EndToEndActivity aus, und klicken Sie dann auf OK.

  4. Klicken Sie im rechten Bereich des Fensters Überwachungsprofil-Editor auf Klicken Sie hier, um eine Ereignisquelle auszuwählen.

  5. Wählen Sie im Abschnitt Assemblyname des Dialogfelds Übergeordnete Assembly für Ereignisquelle auswählendie Option Microsoft.Samples.BizTalk.BamEndToEnd.Services aus, und klicken Sie dann auf Weiter.

  6. Wählen Sie im Abschnitt Orchestrierungsname des Dialogfelds Orchestrierung auswählendie Option BamEndToEnd.Services.Orchestration1 aus, und klicken Sie dann auf OK.

  7. Klicken Sie im linken Bereich des Überwachungsprofil-Editors mit der rechten Maustaste auf EndToEndActivity, und klicken Sie dann auf Neue Fortsetzungs-ID. Benennen Sie die neue Fortsetzungs-ID Orch1_. Wiederholen Sie diesen Schritt, um zwei weitere Fortsetzungs-IDs mit den Namen Orch2_ und Orch3_ zu erstellen.

  8. Klicken Sie mit der rechten Maustaste auf EndToEndActivity, und klicken Sie dann auf Neue Fortsetzung. Benennen Sie die neue Fortsetzung Orch2_. Wiederholen Sie diesen Schritt, um eine weitere Fortsetzung namens Orch3_ zu erstellen.

  9. Klicken Sie mit der rechten Maustaste auf das Shape Receive1 , und klicken Sie dann auf Kontexteigenschaftenschemas.

  10. Scrollen Sie zum Ende der Liste Name der Kontexteigenschaft , und doppelklicken Sie dann auf BAMEndToEnd.Services.PropertySchema.DocumentID.

  11. Erweitern Sie <Schema>, und ziehen Sie documentID im rechten Bereich, um im linken Bereich Orch1_.

  12. Klicken Sie zweimal auf das Ordnersymbol mit dem Pfeil (Schaltfläche mit Ordner und Pfeil nach oben), um die Orchestrierung anzuzeigen.

  13. Ziehen Sie die Form Receive1 im rechten Bereich auf SBegin1 im linken Bereich.

  14. Ziehen Sie die StartOrchestration_1 Form im rechten Bereich nach SEnd1 im linken Bereich.

  15. Klicken Sie mit der rechten Maustaste auf das shape StartOrchestration_1 , und klicken Sie dann auf Nachrichtennutzlastschemas.

  16. Doppelklicken Sie auf die Zeile, die den Wert "Message_2" in der Spalte Nachricht und den Wert "MessageBody" in der Spalte Teil enthält.

    TPE-Nachrichtennutzlastschema mit message_2

  17. Erweitern Sie Schema2, und ziehen Sie Data2 im rechten Bereich auf Data1 im linken Bereich.

  18. Klicken Sie auf Ereignisquelle auswählen, und klicken Sie dann auf Kontexteigenschaft auswählen.

  19. Scrollen Sie zum Ende der Liste Name der Kontexteigenschaft , und doppelklicken Sie dann auf BAMEndToEnd.Services.PropertySchema.DocumentID.

  20. Erweitern Sie <Schema>, und ziehen Sie documentID dann in die Orch2_ Fortsetzung im linken Bereich.

    Hinweis

    Verwechseln Sie die Fortsetzung Orch2_ nicht mit der ContinuationID Orch2_. Das Symbol, das eine Fortsetzungs-ID darstellt, enthält einen Schlüssel (Symbol für eine Fortsetzungs-ID), während das Symbol, das eine Fortsetzung darstellt, keinen Schlüssel (Symbol für einen Fortsetzungstest) enthält.

  21. Klicken Sie auf Ereignisquelle auswählen, und klicken Sie dann auf Orchestrierungszeitplan auswählen.

  22. Wählen Sie im Abschnitt Assemblyname des Dialogfelds Übergeordnete Assembly für Ereignisquelle auswählendie Option Microsoft.Samples.BizTalk.BamEndToEnd.Services aus, und klicken Sie dann auf Weiter.

  23. Wählen Sie im Abschnitt Orchestrierungsname des Dialogfelds Orchestrierung auswählendie Option BamEndToEnd.Services.Orchestration2 aus, und klicken Sie dann auf OK.

  24. Klicken Sie mit der rechten Maustaste auf das shape ConstructMessage_1 , und klicken Sie dann auf Nachrichtennutzlastschemas.

  25. Doppelklicken Sie auf die Zeile, die den Wert "Message_3" in der Spalte Nachricht und den Wert "BAMPart" in der Spalte Part enthält.

  26. Erweitern Sie BAMPart, und ziehen Sie documentID im rechten Bereich auf die Orch2_ Fortsetzungs-ID im linken Bereich.

    Hinweis

    Verwechseln Sie die Fortsetzung Orch2_ nicht mit der ContinuationID Orch2_. Das Symbol, das eine Fortsetzungs-ID darstellt, enthält einen Schlüssel (Symbol für eine Fortsetzungs-ID), während das Symbol, das eine Fortsetzung darstellt, keinen Schlüssel (Symbol für einen Fortsetzungstest) enthält.

  27. Klicken Sie zweimal auf das Ordnersymbol mit dem Pfeil (Schaltfläche mit Ordner und Pfeil nach oben), um die Orchestrierung anzuzeigen.

  28. Ziehen Sie die ConstructMessage_1 Shape im rechten Bereich nach SBegin2 im linken Bereich.

  29. Ziehen Sie das shape Send_1 im rechten Bereich nach SEnd2 im linken Bereich.

  30. Klicken Sie mit der rechten Maustaste auf das shape Send_1 , und klicken Sie dann auf Nachrichtennutzlastschemas.

  31. Doppelklicken Sie auf die Zeile, die den Wert "Message_3" in der Spalte Nachricht und den Wert "MessageBody" in der Spalte Teil enthält.

  32. Erweitern Sie Schema3, und ziehen Sie Data3 im rechten Bereich auf Data2 im linken Bereich.

  33. Wählen Sie in der Dropdownliste oberhalb des rechten Bereichs Die Option Nachrichtennutzlastschemas aus.

  34. Doppelklicken Sie auf die Zeile, die den Wert "Message_3" in der Spalte Nachricht und den Wert "BAMPart" in der Spalte Part enthält.

  35. Erweitern Sie BAMPart, und ziehen Sie documentID im rechten Bereich in die Orch3_ Fortsetzung im linken Bereich.

    Hinweis

    Verwechseln Sie die Fortsetzung Orch3_ nicht mit der ContinuationID Orch3_. Das Symbol, das eine Fortsetzungs-ID darstellt, enthält einen Schlüssel (Symbol für eine Fortsetzungs-ID), während das Symbol, das eine Fortsetzung darstellt, keinen Schlüssel (Symbol für einen Fortsetzungstest) enthält.

  36. Klicken Sie auf Ereignisquelle auswählen, und klicken Sie dann auf Orchestrierungszeitplan auswählen.

  37. Wählen Sie im Abschnitt Assemblyname des Dialogfelds Übergeordnete Assembly für Ereignisquelle auswählendie Option Microsoft.Samples.BizTalk.BamEndToEnd.Services aus, und klicken Sie dann auf Weiter.

  38. Wählen Sie im Abschnitt Orchestrierungsname des Dialogfelds Orchestrierung auswählendie Option BamEndToEnd.Services.Orchestration3 aus, und klicken Sie dann auf OK.

  39. Klicken Sie mit der rechten Maustaste auf das Shape Receive1 , und klicken Sie dann auf Nachrichtennutzlastschemas.

  40. Doppelklicken Sie auf die Zeile, die den Wert "Message_3" in der Spalte Nachricht und den Wert "BAMPart" in der Spalte Part enthält.

  41. Erweitern Sie BAMPart, und ziehen Sie documentID im rechten Bereich auf die Orch3_ Fortsetzungs-ID im linken Bereich.

    Hinweis

    Verwechseln Sie die Fortsetzung Orch3_ nicht mit der ContinuationID Orch3_. Das Symbol, das eine Fortsetzungs-ID darstellt, enthält einen Schlüssel (Symbol für eine Fortsetzungs-ID), während das Symbol, das eine Fortsetzung darstellt, keinen Schlüssel (Symbol für einen Fortsetzungstest) enthält.

  42. Klicken Sie zweimal auf das Ordnersymbol mit dem Pfeil (Schaltfläche mit Ordner und Pfeil nach oben), um die Orchestrierung anzuzeigen.

  43. Ziehen Sie das Shape Receive1 im rechten Bereich nach SBegin3 im linken Bereich.

  44. Ziehen Sie das shape Send_1 im rechten Bereich auf SEnd3 im linken Bereich.

  45. Klicken Sie mit der rechten Maustaste auf das shape Send_1 , und klicken Sie dann auf Nachrichtennutzlastschema.

  46. Erweitern Sie Schema3, und ziehen Sie Data3 im rechten Bereich auf Data3 im linken Bereich.

  47. Klicken Sie mit der rechten Maustaste unter der Orch2_ Fortsetzung auf DocumentID, und klicken Sie dann auf Portzuordnungen festlegen.

    Hinweis

    Verwechseln Sie die Fortsetzung Orch2_ nicht mit der ContinuationID Orch2_. Das Symbol, das eine Fortsetzungs-ID darstellt, enthält einen Schlüssel (Symbol für eine Fortsetzungs-ID), während das Symbol, das eine Fortsetzung darstellt, keinen Schlüssel (Symbol für einen Fortsetzungstest) enthält.

  48. Klicken Sie im Abschnitt Ports auswählen des Dialogfelds Ports auswählen auf BamEndToEnd_ReceivePort, klicken Sie auf das Größer-als-Zeichen (>), und klicken Sie dann auf OK.

  49. Speichern Sie das Nachverfolgungsprofil unter <Beispielpfad>\BAM\BamEndToEnd\BamEndToEnd.btt.

Wichtige Details

Überwachungsprofile werden für Pipelines nicht unterstützt. Der Aufruf von BeginActivity in der Pipelinekomponente ist jedoch identisch mit der Verwendung von ActivityID in einer Orchestrierung. Der Aufruf von EnableContinuation ist identisch mit der Verwendung einer Fortsetzung in einer Orchestrierung.

Weitere Informationen

Geschäftsaktivitätsüberwachung (BAM) (Ordner für BizTalk Server-Beispiele)