Vorgehensweise: dynamisches Routing einer auf einem Nachrichtenkontext basierenden Nachricht mithilfe einer Geschäftsregelrichtlinie
Zielsetzung
In diesem Abschnitt wird veranschaulicht, wie Eine Reiseroute erstellt wird, die Nachrichtenendpunkte basierend auf Nachrichtenkontexteigenschaften mithilfe einer bre-Richtlinie (BizTalk Server Business Rules Engine) bestimmt und dann die Nachricht mithilfe des BizTalk Server FILE-Adapters weitergibt.
In diesem How-to-Thema führen Sie die folgenden Schritte aus:
Erstellen Sie eine Geschäftsregelrichtlinie, um den Nachrichtentyp auszuwerten.
Erstellen Sie einen Routingzettel für die Reiseroute, um mithilfe einer Geschäftsregelrichtlinie dynamisch weiterzuleiten.
Testen Sie die Reiseroute mithilfe der Beispielanwendung Für den Programmablauftestclient.
Voraussetzungen
Die Verfahren in diesem How-to-Thema erfordern den Abschluss der Voraussetzungen für die Entwicklungsaktivitäten.
Schritte
So erstellen Sie eine BRE-Richtlinie zum Weiterleiten einer Nachricht mithilfe von Nachrichtenkontexteigenschaften
Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Alle Programme, zeigen Sie auf BizTalk Server, und klicken Sie dann auf Business Rule Composer.
Klicken Sie unter Richtlinie Explorer mit der rechten Maustaste auf Richtlinien, und klicken Sie dann auf Neue Richtlinie hinzufügen. Nennen Sie die Richtlinie RouteBasedOnMessageType.
So fügen Sie eine Routingregel für nordamerikanische Bestellungen hinzu
Klicken Sie in der Richtlinie RouteBasedOnMessageType mit der rechten Maustaste auf Version 1.0 (nicht gespeichert), und klicken Sie dann auf Neue Regel hinzufügen. Nennen Sie die Regel SetNAOrderEndpoint.
Klicken Sie im Fenster Regel mit der rechten Maustaste auf Bedingungen, zeigen Sie auf Prädikate, und klicken Sie dann auf Gleich.
Erweitern Sie unter Fakten Explorer den ESB. ContextInfo-Vokabular erweitern Sie Version 1.0, und ziehen Sie dann den Kontextnachrichtentyp-Fakt unter Bedingungen auf den Knoten argument1.
Hinweis
Das Microsoft BizTalk ESB Toolkit enthält mehrere Vokabular, die zum Erstellen von Regeln verwendet werden können. Einige davon sollten durch Ihre eigenen Vokabular ersetzt oder ergänzt werden. Beispielsweise enthält die DynamicRunTimeMaptypes-Richtlinie Definitionen für die Zuordnungen, die in den GlobalBank-Beispielen bereitgestellt werden.
Klicken Sie auf den Knoten argument2 , und geben Sie dann ein. http://globalbank.esb.dynamicresolution.com/northamericanservices/#OrderDoc
Erweitern Sie unter Fakten Explorer den ESB. EndPointInfo-Vokabular erweitern Sie Version 1.0, und ziehen Sie dann die Definition End point Outbound Transport Location aufActions.
Klicken Sie auf <eine leere Zeichenfolge>, und geben Sie dann C:\HowTos\Out\NorthAmerica%MessageID%.xml
Ziehen Sie aus fakten Explorer die Definition End Point Outbound Transport Type festlegen auf Aktionen.
Erweitern Sie unter Fakten Explorer den ESB. TansportTypes-Vokabular erweitern Sie Version 1.0, und ziehen Sie dann die Definition Adapteranbieter in eine< leere Zeichenfolge>.
Erweitern Sie im Bereich Aktionen die Dropdownliste Adapteranbieter , und klicken Sie dann auf DATEI.
So veröffentlichen und bereitstellen Sie die Richtlinie
Klicken Sie unter Richtlinie Explorer unter der Richtlinie RouteBasedOnMessageType mit der rechten Maustaste auf Version 1.0 (nicht gespeichert), und klicken Sie dann auf Veröffentlichen.
Klicken Sie unter Richtlinie Explorer unter der Richtlinie RouteBasedOnMessageType mit der rechten Maustaste auf Version 1.0 – Veröffentlicht, und klicken Sie dann auf Bereitstellen.
So erstellen Sie ein DSL-Modell (Domain-Specific Language) für die ESB-Reiseroute
Öffnen Sie in Visual Studio C:\HowTos\Patterns\Patterns.sln.
Klicken Sie Projektmappen-Explorer mit der rechten Maustaste auf das Projekt ItineraryLibrary, zeigen Sie auf Hinzufügen, und klicken Sie dann auf Neue Reiseroute.
Geben Sie im Feld Nameden Namen MessageType ein, und klicken Sie dann auf Hinzufügen.
So konfigurieren Sie die Eigenschaften der Reiseroute
Klicken Sie in Visual Studio auf die Entwurfsoberfläche von MessageType.itinerary. Konfigurieren Sie im messageType-Eigenschaftenfenster die folgenden Eigenschaften:
Klicken Sie in der Dropdownliste Modellexporter auf XML-Programmablaufexporter.
Klicken Sie im Abschnitt Extendereinstellungen neben der Dateieigenschaft Itinerary XML auf die Schaltfläche mit den Auslassungspunkten (...).
Geben Sie im Dialogfeld XML-Datei auswählen im Feld Dateinameden Namen C:\HowTos\Itineraries\MessageType ein, und klicken Sie dann auf Speichern.
Hinweis
In diesem Schritt können Sie die Reiseroute als XML an einen lokalen Dateispeicherort exportieren. Das Exportieren einer Reiseroute in einen lokalen Dateispeicherort anstelle von in die Reiseplandatenbank ermöglicht das Testen der Reiseroute mithilfe der ESB-Testclientanwendung. Sie schließen diesen Prozess später in diesem Thema ab.
So definieren Sie die Struktur der Reiseroute
Ziehen Sie aus der Toolbox ein On-Ramp-Modellelement auf die Entwurfsoberfläche. Konfigurieren Sie im OnRamp1-Eigenschaftenfenster die folgenden Eigenschaften:
Klicken Sie auf die Name-Eigenschaft , und geben Sie dann ReceiveOrders ein.
Klicken Sie in der Dropdownliste Extender auf On-Ramp ESB Extender ( On-Ramp ESB Extender).
Klicken Sie in der Dropdownliste BizTalk-Anwendung auf Microsoft.Practices.ESB.
Klicken Sie in der Dropdownliste Empfangsport auf OnRamp.Itinerary.
Ziehen Sie aus der Toolbox ein Modellelement des Programmplanungsdiensts auf die Entwurfsoberfläche, und platzieren Sie es dann rechts neben dem On-Ramp-Modellelement . Konfigurieren Sie im Eigenschaftenfenster ItineraryService1 die folgenden Eigenschaften:
Klicken Sie auf die Name-Eigenschaft , und geben Sie breRoute ein.
Klicken Sie in der Dropdownliste Itinerary Service Extender auf Messaging Extender.
Hinweis
Diese Eigenschaft definiert, dass der Prozess in einer Pipeline (Messaging) stattfindet. Wenn der Prozess in einer Orchestrierung stattfindet, legen Sie alternativ die Eigenschaft Itinerary Service Extender auf Orchestration Extender fest.
Erweitern Sie in der Dropdownliste Container den Eintrag ReceiveOrders, und klicken Sie dann auf Empfangshandler.
Klicken Sie in der Dropdownliste Dienstname auf Microsoft.Practices.ESB.Services.Routing.
Klicken Sie mit der rechten Maustaste auf die Resolver-Auflistung des BreRoute-Modellelements , und klicken Sie dann auf Neuen Resolver hinzufügen. Konfigurieren Sie im Eigenschaftenfenster Resolver1 die folgenden Eigenschaften:
Klicken Sie auf die Name-Eigenschaft , und geben Sie dann ByMessageType ein.
Klicken Sie in der Dropdownliste Resolverimplementierung auf Bre Resolver-Erweiterung.
Klicken Sie in der Dropdownliste Richtlinie auf RouteBasedOnMessageType v 1.0.
Klicken Sie in der Toolbox auf Connector. Ziehen Sie eine Verbindung aus dem ReceiveOrders-Modellelement in das BreRoute-Modellelement .
Ziehen Sie aus der Toolbox ein Off-Ramp-Modellelement auf die Entwurfsoberfläche, und platzieren Sie es dann rechts neben dem BreRoute-Modellelement . Konfigurieren Sie im offRamp1-Eigenschaftenfenster die folgenden Eigenschaften:
Klicken Sie auf die Name-Eigenschaft , und geben Sie dann SendBasedOnType ein.
Klicken Sie in der Dropdownliste Extender auf OFF-Ramp ESB Extender.
Klicken Sie in der Dropdownliste BizTalk-Anwendung auf GlobalBank.ESB.
Klicken Sie in der Dropdownliste Port senden auf DynamicResolutionOneWay.
Ziehen Sie aus der Toolbox ein Modellelement des Reiseplandiensts auf die Entwurfsoberfläche, und platzieren Sie es dann zwischen dem BreRoute-Modellelement und dem SendBasedOnType-Modellelement . Konfigurieren Sie im Eigenschaftenfenster ItineraryService1 die folgenden Eigenschaften:
Klicken Sie auf die Name-Eigenschaft , und geben Sie sendPortFilter ein.
Klicken Sie in der Dropdownliste Itinerary Service Extender auf Off-Ramp Extender.
Erweitern Sie in der Dropdownliste Off-Ramp den Eintrag SendBasedOnType, und klicken Sie dann auf Handler senden.
Klicken Sie in der Toolbox auf Connector. Ziehen Sie eine Verbindung aus dem BreRoute-Modellelement auf das SendPortFilter-Modellelement .
Klicken Sie in der Toolbox auf Connector. Ziehen Sie eine Verbindung vom SendPortFilter-Modellelement auf das SendBasedOnType-Modellelement .
So exportieren Sie das Modell für die Verwendung mit dem Programmablauftestclient
Klicken Sie in Visual Studio mit der rechten Maustaste auf die Entwurfsoberfläche der MessageType-Reiseroute , und klicken Sie dann auf Modell exportieren.
Hinweis
Die XML-Version der Reiseroute wird in Visual Studio geöffnet.
Speichern Sie alle Projektartefakte.
Navigieren Sie in Windows Explorer zu C:\HowTos\Itineraries, und beachten Sie die Erstellung Ihrer Reiserouten-XML (MessageType.xml).
So testen Sie die Reiseroute
Öffnen Sie die Beispielanwendung "Itinerary Test Client", indem Sie die Verknüpfung verwenden, die während der Voraussetzungen für die Entwicklungsaktivitäten (C:\HowTos\ESB.Itinerary.Test.exe - Verknüpfung) erstellt wurde.
Deaktivieren Sie im Programmablauftestclient das Kontrollkästchen WCF-Dienst verwenden , und klicken Sie dann auf Reiseroute laden.
Navigieren Sie im Dialogfeld Reiseroutendatei öffnen zu C:\HowTos\Itineraries. Wählen Sie MessageType.xmlaus, und klicken Sie dann auf Öffnen , um die Reiseroute zu laden.
Klicken Sie auf OK , um die Meldung Route erfolgreich geladen zu löschen.
Klicken Sie im Programmablauftestclient auf die Schaltfläche mit den Auslassungspunkten (...) neben dem Feld Nachricht laden .
Navigieren Sie im Dialogfeld Zu ladende XML-Dokument auswählen zu C:\HowTos. Wählen Sie NAOrderDoc.xmlaus, und klicken Sie dann auf Öffnen , um die Testnachricht zu laden.
Klicken Sie auf die Schaltfläche Anforderung übermitteln . Klicken Sie nach Abschluss des Tests auf OK , um die angezeigte Bestätigung zu schließen.
Navigieren Sie in Windows Explorer zu C:\HowTos\Out\. Vergewissern Sie sich, dass die NorthAmerica%MessageID%.xml-Nachricht in das Verzeichnis geschrieben wurde.
Weitere Ressourcen
Weitere Informationen finden Sie in folgenden verwandten Themen: