CallOrchestration (BizTalk Server-Beispiel)

Das „CallOrchestration“-Beispiel veranschaulicht, wie eine BizTalk-Orchestrierung in einer anderen Orchestrierung aufgerufen wird.

Ziel des Beispiels

Dieses Beispiel veranschaulicht anhand der folgenden Schrittfolge, wie eine Orchestrierung eine andere Orchestrierung aufruft:

  1. Die primäre Orchestrierung empfängt eine Bestellungsnachricht.

  2. Die primäre Orchestrierung ruft die sekundäre Orchestrierung auf, um den Versandpreis für die Bestellung zu bestimmen.

  3. Die sekundäre Orchestrierung berechnet den angefragten Versandpreis und gibt diesen an die primäre Orchestrierung zurück.

  4. Die primäre Orchestrierung aktualisiert die Bestellungsnachricht mit dem zurückgegebenen Versandpreis.

  5. Die primäre Orchestrierung legt die aktualisierte Bestellungsnachricht in einem Ordner ab, den Sie überprüfen können.

Wie dieses Beispiel entworfen wird und warum

Der Hauptzweck dieses Beispiels ist es zu veranschaulichen, wie eine Orchestrierung in einer anderen Orchestrierung aufgerufen wird. Dank der Möglichkeit des Aufrufs von Orchestrierungen können Sie Ihre Geschäftsprozesse in wiederverwendbare Komponenten aufgliedern. Sie können Ihre allgemeinen Prozesse in getrennte Orchestrierungen aufteilen, die andere Benutzer wiederverwenden können.

In diesem Beispiel ruft das Call Orchestration-Shape in receivePO.odx findShippingPrice.odx auf und wartet auf die geschachtelte Orchestrierung findShippingPrice.odx, um den Versandpreis zu berechnen und zurückzugeben, bevor die Bestellung gesendet wird. Die Orchestrierung findShippingPrice.odx verwendet zum Berechnen des Versandpreises die folgende Logik:

If ( weight * shippingRate ) < minShippingPrice Then  
    shippingPrice = minShippingPrice  
Else  
    shippingPrice = weight * shippingRate  
End If  

Die Bestellungseingabedatei im Beispiel InputPO.xml gibt als Gewicht 20 an, was dazu führt, dass sich in der Bestellungsausgabenachricht der Versandpreis von 10 in 20 ändert.

Hinweis

Sie können eine lang andauernde Transaktion nicht in einer atomarischen Orchestrierung aufrufen.

Hinweis

Der Unterschied zwischen der Verwendung der Form "Aufruforchestrierung " und der Form " Orchestrierung starten " besteht darin, dass der Aufrufer beim Aufrufen einer Orchestrierung darauf wartet, dass die geschachtelte Orchestrierung zurückgegeben wird, bevor er fortfährt. Beim Starten einer Orchestrierung in einer Orchestrierung wechselt der Aufrufer nach Auslösen der Aktion zum nächsten Schritt im Verarbeitungsablauf. Die vom Aufrufer aufgerufene Orchestrierung wird unabhängig ausgeführt, bis sie den Verarbeitungsablauf beendet. Weitere Informationen finden Sie unter Konfigurieren des Aufruforchestrierungs-Shapes. Weitere Informationen finden Sie unter Konfigurieren der Startorchestrierungsform.

Speicherort dieses Beispiels

<Beispielpfad>\Orchestrierungen\CallOrchestration\

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

Datei(en) BESCHREIBUNG
CallOrchestration.btproj, CallOrchestration.sln Projekt- und Projektmappendateien für dieses Beispiel.
CallOrchestrationBinding.xml Wird für das automatisierte Setup verwendet, z. B. Portbindung.
Cleanup.bat Wird verwendet, um die Bereitstellung von Assemblys aufzuheben und die Assemblys aus dem globalen Assemblycache zu entfernen. Entfernt Sende- und Empfangsports. Entfernt nach Bedarf virtuelle Verzeichnisse von Microsoft Internetinformationsdienste (IIS).
findShippingPrice.odx BizTalk-Orchestrierung, die als sekundäre Orchestrierung dient und in der primären Orchestrierung receivePO.odx aufgerufen wird.
InputPO.xml Bestellungseingabenachricht des Beispiel, die das in der Datei PO.xsd definierte Schema einhält.
PO.xsd Schema, das die Struktur eingehender Bestellungsnachrichten, z. B. der Beispieleingabedatei InputPO.xml sowie die Eigenschaftenheraufstufung aller drei Elemente im Schema definiert.
PropertySchema.xsd Eigenschaftenschemadatei, die an der Eigenschaftenheraufstufung aller drei Elemente im Schema PO.xsd beteiligt ist.
receivePO.odx BizTalk-Orchestrierung, die als primäre Orchestrierung in diesem Beispiel dient. Sie ruft Bestellungsnachrichten aus dem Empfangsordner ab und ruft anschließend die andere Orchestrierung findShippingPrice.odx auf, um den Versandpreis zu berechnen und zu aktualisieren.
Setup.bat Dient zum Erstellen und Initialisieren dieses Beispiels.

Erstellen und Initialisieren dieses Beispiels

So erstellen und initialisieren Sie das „CallOrchestration“-Beispiel

  1. Navigieren Sie in einem Befehlsfenster zum folgenden Ordner:

    <Beispielpfad>\Orchestrierungen\CallOrchestration\

  2. Führen Sie die Datei "Setup.bat" aus, von der folgende Aktionen ausgeführt werden:

    • Erstellen des Eingabeordners (In) und des Ausgabeordners (Out) für dieses Beispiel im Ordner CallOrchestration.

    • Kompiliert das Visual Studio-Projekt, das beide Orchestrierungen enthält, und stellt es für dieses Beispiel bereit.

    • Erstellen und Binden des BizTalk Server-Empfangsspeicherorts sowie der Sende- und Empfangsports.

    • Aktiviert den Empfangsspeicherort und startet den Sendeport.

Hinweis

Sie sollten sicherstellen, dass von BizTalk Server während des Erstellungs- und Initialisierungsprozesses keine Fehler gemeldet wurden, bevor Sie dieses Beispiel ausführen.

Ausführen dieses Beispiels

So führen Sie das „CallOrchestration“-Beispiel aus

  1. Fügen Sie eine Kopie der Datei InputPO.xml in den Ordner In ein.

  2. Untersuchen Sie aktualisierte XML-Datei der Bestellung, die im Ordner Out erstellt wird. Diese enthält die ursprüngliche Bestellungsnachricht, der (wie zuvor beschrieben) die berechneten Versandkosten hinzugefügt wurden. Das Format des Namens dieser Datei ist <MessageID>.xml, wobei <MessageID> die GUID ist, die generiert wird, um die Nachricht eindeutig zu identifizieren.

Deinstallieren dieses Beispiels

So deinstallieren Sie das „CallOrchestration“-Beispiel

  1. Navigieren Sie in einem Visual Studio-Befehlsfenster zum folgenden Ordner:

    <Beispielpfad>\Orchestrierungen\CallOrchestration\

  2. Führen Sie die Datei Cleanup.bat aus.

Weitere Informationen

Orchestrierungen (Ordner für BizTalk Server-Beispiele)