Vorgehensweise: Auswählen eines Programmablaufs mithilfe einer Geschäftsregelrichtlinie
Zielsetzung
In diesem Abschnitt wird veranschaulicht, wie Sie Geschäftsregeln erstellen, die verwendet werden können, um eine Reiseroute basierend auf dem Inhalt einer empfangenen Nachricht auszuwählen, und wie Sie die Pipelinekomponente Reiseplanauswahl innerhalb einer generischen Reiseroute konfigurieren, um diese Regeln aufzurufen. In diesem Abschnitt wird ein Geschäftsszenario beschrieben, in dem Nachrichten basierend auf der Region, in der sich der Kunde befindet, unterschiedlich weitergeleitet werden.
In diesem Thema führen Sie die folgenden Schritte aus:
Modellrouten für die Divisionen Westen und Osten des Kunden Global Bank.
Erstellen Sie Richtlinien für Geschäftsregeln, die zum Auswählen einer Reiseroute für die Verarbeitung der Anforderung verwendet werden.
Konfigurieren Sie die Pipelinekomponente Routesauswahl, um eine Geschäftsregelrichtlinie zum Auswählen der entsprechenden Reiseroute zu verwenden.
Voraussetzungen
Die Prozeduren in diesem Thema erfordern den Abschluss der Voraussetzungen für die Entwicklungsaktivitäten.
Vorbereitungen
Führen Sie die folgenden Aufgaben aus, bevor Sie die Schritte weiter unten in diesem Thema ausführen:
Erstellen Sie die GlobalBank West-Testnachricht.
Erstellen Sie die GlobalBank East-Testnachricht.
In den folgenden Verfahren wird beschrieben, wie die einzelnen Schritte ausgeführt werden.
So erstellen Sie die GlobalBank West-Testnachricht
Navigieren Sie in Windows Explorer zu C:\HowTos.
Erstellen Sie eine Kopie von NAOrderDoc.xml, und benennen Sie die Kopie dann West.xml.
Öffnen Sie in Editor West.xml, und ändern Sie dann den Wert des customerName-Elements in GlobalBankWest.
Speichern Sie West.xml als UTF-8, und schließen Sie dann Editor.
So erstellen Sie die GlobalBank East-Testnachricht
Navigieren Sie in Windows Explorer zu C:\HowTos.
Erstellen Sie eine Kopie von NAOrderDoc.xml, und benennen Sie die Kopie dann East.xml.
Öffnen Sie in Editor East.xml, und ändern Sie dann den Wert des customerName-Elements in GlobalBankEast.
Speichern Sie East.xml als UTF-8, und schließen Sie dann Editor.
Schritte
So erstellen Sie eine BRE-Richtlinie (Business Rules Engine), um eine Reiseroute mithilfe benutzerdefinierter Nachrichteneigenschaften auszuwählen
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 Richtlinien Explorer mit der rechten Maustaste auf Richtlinien, und klicken Sie dann auf Neue Richtlinie hinzufügen. Nennen Sie die Richtlinie ResolveItineraryBasedOnCustomer.
Hinweis
In diesem How-to-Thema werden dieselben Geschäftsregeln und Reiserouten verwendet wie im Thema Gewusst wie: Teilen eines Austauschs und Weiterleiten der resultierenden Nachrichten an mehrere Dateispeicherorte mit unterschiedlichen Reiserouten. Wenn Sie diesen Abschnitt bereits abgeschlossen haben, können Sie weiter unten in diesem Thema mit der Prozedur "So erstellen und konfigurieren Sie einen ESB-On-Ramp" fortfahren.
So fügen Sie eine Auswahlregel für den Kunden GlobalBank West hinzu
Klicken Sie in der Richtlinie ResolveItineraryBasedOnCustomer mit der rechten Maustaste auf Version 1.0 (nicht gespeichert), und klicken Sie dann auf Neue Regel hinzufügen. Nennen Sie die Regel SetGlobalBankWestItinerary.
Klicken Sie unter Fakten Explorer auf die Registerkarte XML-Schemas, klicken Sie mit der rechten Maustaste auf Schemas, und klicken Sie dann auf Durchsuchen.
Navigieren Sie im Dialogfeld Schemadateien zu C:\Projects\Microsoft.Practices.ESB\Source\Samples\DynamicResolution\Source\ESB. DynamicResolution.Schemas, wählen Sie NAOrderDoc.xsd aus, und klicken Sie dann auf Öffnen.
Hinweis
Dies ist das Schema, das die NAOrderDoc.xml Nachricht definiert, die zum Erstellen der West- und Ostnachrichten verwendet wurde, die Sie zum Testen verwenden.
Klicken Sie unter Fakten Explorer auf NAOrderDoc.xsd, klicken Sie im Bereich Eigenschaften auf die Eigenschaft Dokumenttyp, und geben Sie dann GlobalBank.ESB.DynamicResolution.Schemas.NAOrderDoc ein.
Hinweis
Dies ist der vollqualifizierte Name des Schemas.
Erweitern Sie in Fakten Explorer naOrderDoc.xsd und dann OrderDoc.
Klicken Sie im Fenster Regel mit der rechten Maustaste auf Bedingungen, zeigen Sie auf Prädikate, und klicken Sie dann auf Gleich.
Ziehen Sie aus Fakten Explorer das customerName-Element unter Bedingungen auf den Knoten argument1.
Klicken Sie auf den Knoten argument2 , und geben Sie GlobalBankWest ein.
Klicken Sie unter Fakten Explorer auf die Registerkarte Vokabularen. Erweitern Sie den ESB. Routenvokabular erweitern Sie Version 1.1, und ziehen Sie dann die Definition Name der Reiseroute festlegen auf Aktionen.
Klicken Sie auf <eine leere Zeichenfolge>, und geben Sie GlobalBankWestItinerary ein.
Hinweis
Weiter unten in diesem Thema erstellen Sie diese Reiseroute, um Nachrichten von GlobalBank West zu verarbeiten.
So fügen Sie eine Auswahlregel für Customer GlobalBank East hinzu
Klicken Sie in Richtlinien Explorer mit der rechten Maustaste auf die Regel SetGlobalBankWestItinerary, und klicken Sie dann auf Kopieren.
Klicken Sie mit der rechten Maustaste auf Version 1.0 (nicht gespeichert), und klicken Sie dann auf Einfügen.
Geben Sie im Dialogfeld Neuer Regelname den Namen SetGlobalBankEastItinerary ein, und klicken Sie dann auf OK.
Klicken Sie unter Richtlinie Explorer auf die Regel SetGlobalBankEastItinerary.
Klicken Sie im Abschnitt Bedingungen mit der rechten Maustaste auf GlobalBankWest, und klicken Sie dann auf Argument zurücksetzen.
Klicken Sie auf argument2, und geben Sie dann GlobalBankEast ein.
Klicken Sie im Abschnitt Aktionen mit der rechten Maustaste auf GlobalBankWestItinerary, und klicken Sie dann auf Argument zurücksetzen.
Klicken Sie auf <eine leere Zeichenfolge> , und geben Sie GlobalBankEastItinerary ein.
Hinweis
Weiter unten im Thema How-to erstellen Sie diese Reiseroute, um Nachrichten von GlobalBank East zu verarbeiten.
So veröffentlichen und bereitstellen Sie die Richtlinie
Klicken Sie unter Richtlinie Explorer unter der Richtlinie ResolveItineraryBasedOnCustomer mit der rechten Maustaste auf Version 1.0 (nicht gespeichert) und dann auf Veröffentlichen.
Klicken Sie unter Richtlinie Explorer unter der Richtlinie ResolveItineraryBasedOnCustomer 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) der ESB-Reiseroute für GlobalBank West-Nachrichten
Öffnen Sie in Visual Studio C:\HowTos\Patterns\Patterns.sln.
Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf das Projekt ReiserouteLibrary, zeigen Sie auf Hinzufügen, und klicken Sie dann auf Neue Reiseroute.
Klicken Sie im Dialogfeld Neues Element hinzufügen im Bereich Vorlagen auf ReiserouteDsl.
Geben Sie im Feld Nameden Namen GlobalBankWestItinerary ein, und klicken Sie dann auf Hinzufügen.
So konfigurieren Sie die Eigenschaften der GlobalBank West-Reiseroute
Klicken Sie in Visual Studio auf die Entwurfsoberfläche von GlobalBankWestItinerary.itinerary. Konfigurieren Sie im globalBankWestItinerary-Eigenschaftenfenster die folgenden Eigenschaften:
Klicken Sie in der Dropdownliste Modellexporter auf Datenbankroutenexporter.
Klicken Sie auf die Schaltfläche mit den Auslassungspunkten (...) neben der Eigenschaft Reiseplandatenbank .
Wählen Sie im Dialogfeld Verbindungseigenschaften die SQL Server aus, die die Datenbank des Reiseplanrepositorys hostet, und geben Sie dann den Namen der Datenbank an (der Standardname lautet EsbItineraryDb).
Klicken Sie in der Dropdownliste Reiseroutenstatus auf Bereitgestellt.
Hinweis
Mit diesem Schritt können Sie die Reiseroute in ein zentrales Repository exportieren. Reiserouten können aus diesem Repository beim Nachrichtenempfang ausgewählt und angefügt werden. Später konfigurieren Sie die Pipelinekomponente Reiseroutenauswahl so, dass der Business Rules Engine-Resolver (BRI) verwendet wird, um eingehende Nachrichten auszuwerten und die entsprechende Reiseroute aus diesem Repository auszuwählen.
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 ReceiveNAOrder ein.
Klicken Sie in der Dropdownliste Extender auf On-Ramp ESB-Diensterweiterung.
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 Off-Ramp-Modellelement auf die Entwurfsoberfläche, und platzieren Sie es dann rechts neben dem ReceiveNAOrder-Modellelement . Konfigurieren Sie im offRamp1-Eigenschaftenfenster die folgenden Eigenschaften:
Klicken Sie auf die Name-Eigenschaft , und geben Sie sendNAOrder ein.
Klicken Sie in der Dropdownliste Extender auf Off-Ramp ESB-Diensterweiterung.
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 Itinerary Service-Modellelement auf die Entwurfsoberfläche, und platzieren Sie es dann zwischen dem ReceiveNAOrder-Modellelement und dem SendNAOrder-Modellelement . Konfigurieren Sie im Eigenschaftenfenster ItineraryService1 die folgenden Eigenschaften:
Klicken Sie auf die Name-Eigenschaft , und geben Sie dann RouteMessage ein.
Klicken Sie in der Dropdownliste Reiseplan-Service Extender auf Off-Ramp Itinerary Service Extension .
Erweitern Sie in der Dropdownliste Off-Ramp den Eintrag SendNAOrder, und klicken Sie dann auf Sendehandler.
Klicken Sie mit der rechten Maustaste auf die Resolver-Auflistung des RouteMessage-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 StaticResolver ein.
Klicken Sie in der Dropdownliste Resolverimplementierung auf Statische Resolvererweiterung.
Klicken Sie in der Dropdownliste Transportname auf DATEI.
Klicken Sie auf die Eigenschaft Transportspeicherort , und geben Sie dann C:\HowTos\Out\West%MessageID%.xmlein.
Klicken Sie in der Toolbox auf Connector. Ziehen Sie eine Verbindung aus dem Modellelement ReceiveNAOrder in das Modellelement RouteMessage .
Klicken Sie in der Toolbox auf Connector. Ziehen Sie eine Verbindung vom Modellelement RouteMessage auf das SendNAOrder-Modellelement .
So exportieren Sie das Modell in die Programmverlaufsdatenbank
Klicken Sie in Visual Studio mit der rechten Maustaste auf die Entwurfsoberfläche der GlobalBankWestItinerary-Reiseroute , und klicken Sie dann auf Modell exportieren.
Hinweis
Die Reiseroute wurde in die Reiseplandatenbank exportiert und kann jetzt von der Komponente Programmablaufauswahl verwendet werden.
Speichern Sie alle Projektartefakte.
So erstellen Sie ein ESB-Reiseverlaufs-DSL-Modell für die GlobalBank East-Nachricht
Öffnen Sie in Visual Studio C:\HowTos\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.
Klicken Sie im Dialogfeld Neues Element hinzufügen im Bereich Vorlagen auf ItineraryDsl.
Geben Sie im Feld Name den NamenGlobalBankEastItinerary ein, und klicken Sie dann auf Hinzufügen.
So konfigurieren Sie die Eigenschaften der GlobalBank East-Reiseroute
Klicken Sie in Visual Studio auf die Entwurfsoberfläche von GlobalBankEastItinerary.itinerary. Konfigurieren Sie im GlobalBankEastItinerary-Eigenschaftenfenster die folgenden Eigenschaften:
Klicken Sie in der Dropdownliste Modellexporter auf Datenbankroutenexporter.
Klicken Sie neben der Eigenschaft Itinerary Database auf die Schaltfläche mit den Auslassungspunkten (...).
Wählen Sie im Dialogfeld Verbindungseigenschaften die SQL Server aus, die die Repositorydatenbank der Reiseroute hostet, und geben Sie dann den Namen der Datenbank an (der Standardname lautet EsbItineraryDb).
Klicken Sie in der Dropdownliste Reiseverlaufsstatus auf Bereitgestellt.
Hinweis
In diesem Schritt können Sie die Reiseroute in ein zentrales Repository exportieren. Routen können ausgewählt und aus diesem Repository angefügt werden, wenn Nachrichten empfangen werden. Später konfigurieren Sie die Pipelinekomponente Itinerary Selector so, dass der BRI-Resolver verwendet wird, um eingehende Nachrichten auszuwerten und die entsprechende Reiseroute aus diesem Repository auszuwählen.
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 ReceiveNAOrder ein.
Klicken Sie in der Dropdownliste Extender auf On-Ramp ESB Service Extension ( On-Ramp ESB Service Extension).
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 Off-Ramp-Modellelement auf die Entwurfsoberfläche, und platzieren Sie es dann rechts neben dem ReceiveNAOrder-Modellelement . Konfigurieren Sie im offRamp1-Eigenschaftenfenster die folgenden Eigenschaften:
Klicken Sie auf die Name-Eigenschaft , und geben Sie sendNAOrder ein.
Klicken Sie in der Dropdownliste Extender auf Off-Ramp ESB-Diensterweiterung.
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 Programmplanungsdiensts auf die Entwurfsoberfläche, und platzieren Sie es dann zwischen dem ReceiveNAOrder-Modellelement und dem SendNAOrder-Modellelement . Konfigurieren Sie im Eigenschaftenfenster ItineraryService1 die folgenden Eigenschaften:
Klicken Sie auf die Eigenschaft Name , und geben Sie dann RouteMessage ein.
Klicken Sie in der Dropdownliste Itinerary Service Extender auf Off-Ramp Itinerary Service Extension ( Off-Ramp Itinerary Service Extension).
Erweitern Sie in der Dropdownliste Off-Ramp den Eintrag SendNAOrder, und klicken Sie dann auf Handler senden.
Klicken Sie mit der rechten Maustaste auf die Resolver-Auflistung des RouteMessage-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 StaticResolver ein.
Klicken Sie in der Dropdownliste Resolverimplementierung auf Statische Resolvererweiterung.
Klicken Sie in der Dropdownliste Transportname auf DATEI.
Klicken Sie auf die Eigenschaft Transportspeicherort , und geben Sie dann C:\HowTos\Out\East%MessageID%.xmlein.
Klicken Sie in der Toolbox auf Connector. Ziehen Sie eine Verbindung aus dem Modellelement ReceiveNAOrder in das Modellelement RouteMessage .
Klicken Sie in der Toolbox auf Connector. Ziehen Sie eine Verbindung vom Modellelement RouteMessage auf das SendNAOrder-Modellelement .
So exportieren Sie das Modell in die Programmverlaufsdatenbank
Klicken Sie in Visual Studio mit der rechten Maustaste auf die Entwurfsoberfläche der GlobalBankEastItinerary-Reiseroute , und klicken Sie dann auf Modell exportieren.
Hinweis
Die Reiseroute wurde in die Reiseplandatenbank exportiert und kann jetzt von der Komponente Programmablaufauswahl verwendet werden.
Speichern Sie alle Projektartefakte.
So erstellen und konfigurieren Sie eine ESB-Einrichtung
Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Alle Programme, zeigen Sie auf BizTalk Server, und klicken Sie dann auf BizTalk Server Verwaltung.
Erweitern Sie in der BizTalk Server Verwaltungskonsole die Optionen BizTalk-Gruppe, Anwendungen und Microsoft.Practices.ESB.
Klicken Sie mit der rechten Maustaste auf Empfangsspeicherorte, zeigen Sie auf Neu, und klicken Sie dann auf Unidirektionale Empfangsadresse.
Klicken Sie im Dialogfeld Empfangsport auswählen auf OnRamp.Itinerary, und klicken Sie dann auf OK.
Geben Sie im Dialogfeld Eigenschaften des Empfangsspeicherorts im Feld Name den Namen OnRamp.Itinerary.HowTo ein.
Klicken Sie in der Dropdownliste Typ auf DATEI, und klicken Sie dann auf Konfigurieren.
Geben Sie im Dialogfeld Dateitransporteigenschaften im Feld Empfangsordnerden Wert C:\HowTos\DropFolder ein, und klicken Sie dann auf OK.
So konfigurieren Sie die Pipelinekomponente "Programmablaufauswahl"
Klicken Sie im Dialogfeld Eigenschaften des Empfangsspeicherorts in der Dropdownliste Empfangspipeline auf ReiserouteSelectReceiveXml, und klicken Sie dann auf die Schaltfläche mit den Auslassungspunkten (...).
Verwenden Sie das Dialogfeld Pipeline konfigurieren , um die folgenden Komponenteneigenschaften der Programmablaufauswahl zu konfigurieren:
Klicken Sie auf die Eigenschaft ItineraryFactKey , und geben Sie Resolver.Itinerary ein.
Klicken Sie auf die ResolverConnectionString-Eigenschaft , und geben Sie bri :\\policy=ResolveItineraryBasedOnCustomer ein. useMsg=true; recognizeMessageFormat=true;
Klicken Sie auf OK , um das Dialogfeld Pipeline konfigurieren zu schließen.
Klicken Sie auf OK , um das Dialogfeld Eigenschaften des Empfangsspeicherorts zu schließen.
Klicken Sie in der BizTalk Server Verwaltungskonsole mit der rechten Maustaste auf den Empfangsspeicherort OnRamp.Itinerary.HowTo, und klicken Sie dann auf Aktivieren.
So testen Sie die Reiseroutenauswahl und Geschäftsregeln
Navigieren Sie in Windows Explorer zu C:\HowTos.
Kopieren (verschieben Sie nicht) die Dateien East.xml und West.xml in den Ordner DropFolder.
Navigieren Sie zu C:\HowTos\Out. Überprüfen Sie, ob die Nachrichten East%MessageID%.xml und West%MessageID%.xml in das Verzeichnis geschrieben wurden.
Hinweis
Obwohl die Nachrichten mit Ausnahme des Werts des Kundenelements identisch sind, wurden die Nachrichten mithilfe verschiedener Reiserouten verarbeitet, basierend auf der Auflösung der Pipelinekomponente "Itinerary Selector".
Klicken Sie in der BizTalk Server Verwaltungskonsole mit der rechten Maustaste auf den Empfangsspeicherort OnRamp.Itinerary.HowTo, und klicken Sie dann auf Deaktivieren.
Nachdem der Empfangsspeicherort OnRamp.Itinerary.HowTo deaktiviert wurde, klicken Sie mit der rechten Maustaste darauf, und klicken Sie dann auf Löschen. Klicken Sie im Dialogfeld Löschspeicherort bestätigen auf Ja.
Weitere Ressourcen
Weitere Informationen finden Sie in folgenden verwandten Themen: