Condividi tramite


Procedura: Implementare il routing basato sul contenuto usando criteri di regole business per un tipo di messaggio conosciuto

Obiettivo

Questa sezione illustra come creare un itinerario che instrada dinamicamente un messaggio, in base al contenuto di un tipo di messaggio noto (schema distribuito nel database di configurazione di Microsoft BizTalk Server), usando un criterio delle regole business.

In questo argomento di procedura si completeranno i passaggi seguenti:

  • Creare criteri di regole business che verranno usati per instradare un messaggio in base al contenuto.

  • Creare una lista di routing dell'itinerario con un sistema di risoluzione BRE per instradare dinamicamente un messaggio.

  • Testare l'itinerario usando l'applicazione di esempio Client di test dell'itinerario.

Prerequisiti

Le procedure descritte in questa procedura richiedono il completamento dei prerequisiti per le attività di sviluppo.

Prima di iniziare

Completare le attività seguenti prima di eseguire i passaggi più avanti in questo argomento procedura:

  • Creare il messaggio di test di GlobalBank West.

  • Creare il messaggio di test di GlobalBank East.

    Le procedure seguenti descrivono come eseguire ognuna di queste operazioni.

Per creare il messaggio di test di GlobalBank West

  1. In Esplora risorse passare a C:\HowTos.

  2. Creare una copia di NAOrderDoc.xml e quindi denominare la copia West.xml.

  3. Nel Blocco note aprire West.xml e quindi modificare il valore dell'elemento customerName in GlobalBankWest.

  4. Salvare West.xml come UTF-8 e quindi chiudere blocco note.

Per creare il messaggio di test di GlobalBank East

  1. In Esplora risorse passare a C:\HowTos.

  2. Creare una copia di NAOrderDoc.xml e quindi denominare la copia East.xml.

  3. Nel Blocco note aprire East.xml e quindi modificare il valore dell'elemento customerName in GlobalBankEast.

  4. Salvare East.xml come UTF-8 e quindi chiudere blocco note.

Passaggi

Per creare un criterio BRE da instradare usando le proprietà personalizzate dei messaggi

Questa regola userà il nome del cliente per impostare in modo dinamico l'endpoint usato per instradare il messaggio.

  1. Fare clic su Start sulla barra delle applicazioni, scegliere Tutti i programmi, BizTalk Server e quindi fare clic su Business Rule Composer.

  2. In Esplora criteri fare clic con il pulsante destro del mouse su Criteri e quindi scegliere Aggiungi nuovo criterio. Denominare il criterio RouteBasedOnCustomerKnownType.

Per aggiungere una regola di routing per il cliente GlobalBank West

  1. Nel criterio RouteBasedOnCustomerKnownType fare clic con il pulsante destro del mouse sulla versione 1.0 (non salvata) e quindi scegliere Aggiungi nuova regola. Assegnare alla regola il nome SetWestEndpoint.

  2. In Esplora fatti fare clic sulla scheda XML Schema, fare clic con il pulsante destro del mouse su Schemi e quindi scegliere Sfoglia.

  3. Nella finestra di dialogo File schema passare a C:\Projects\Microsoft.Practices.ESB\Source\Samples\DynamicResolution\Source\ESB. DynamicResolution.Schemas, selezionare NAOrderDoc.xsd e quindi fare clic su Apri.

    Nota

    Si tratta dello schema che definisce il messaggio di NAOrderDoc.xml, usato per creare i messaggi occidentali e orientali che verranno usati per il test.

  4. In Esplora fatti fare clic su NAOrderDoc.xsd, quindi nel riquadro Proprietà fare clic sulla proprietà Tipo di documento , quindi digitare GlobalBank.ESB.DynamicResolution.Schemas.NAOrderDoc.

    Nota

    Nome completo dello schema.

  5. In Esplora fatti espandere NAOrderDoc.xsd, quindi espandere OrderDoc.

  6. Nella finestra Regola fare clic con il pulsante destro del mouse su Condizioni, scegliere Predicatie quindi fare clic su Uguale.

  7. Da Esplora fatti trascinare l'elemento customerName nel nodo argument1 in Condizioni.

  8. Fare clic sul nodo argument2 e quindi digitare GlobalBankWest.

  9. In Esplora fatti fare clic sulla scheda Vocabolari , espandere ESB. EndPointInfo, quindi espandere la versione 1.0.

    Nota

    Microsoft BizTalk ESB Toolkit include diversi vocabolari che possono essere usati per la creazione di regole da usare in ESB. Alcune di queste devono essere sostituite o aumentate con i propri vocabolari. Ad esempio, DynamicRunTimeMaptypes contiene definizioni per le mappe fornite negli esempi GlobalBank .

  10. Da Esplora fatti trascinare la definizione Imposta percorso trasporto in uscita punto finale su Azioni.

  11. Fare clic su <stringa> vuota e digitare C:\HowTos\Out\West%MessageID%.xml.

  12. Da Esplora fatti trascinare la definizione Imposta tipo di trasporto in uscita punto finale su Azioni.

  13. In Esplora fatti espandere ESB. TransportTypes, espandere la versione 1.0 e quindi trascinare la definizione Dei provider di adattatori in <una stringa> vuota.

  14. Nel riquadro Azioni espandere l'elenco a discesa Provider di adattatori e quindi fare clic su FILE.

Per aggiungere una regola di routing per il cliente GlobalBank East

  1. In Esplora criteri fare clic con il pulsante destro del mouse sulla regola SetWestEndpoint e quindi scegliere Copia.

  2. Fare clic con il pulsante destro del mouse sulla versione 1.0 (non salvata) e quindi scegliere Incolla.

  3. Nella finestra di dialogo Nuovo nome regola digitare SetEastEndpoint e quindi fare clic su OK.

  4. In Esplora criteri fare clic sulla regola SetEastEndpoint .

  5. Nella sezione Condizioni fare clic con il pulsante destro del mouse su GlobalBankWest e quindi scegliere Reimposta argomento.

  6. Fare clic su argument2 e quindi digitare GlobalBankEast.

  7. Nella sezione Azioni fare clic con il pulsante destro del mouse su C:\HowTos\Out\West%MessageID%.xmle quindi scegliere Reimposta argomento.

  8. Fare clic su <stringa> vuota e quindi digitare C:\HowTos\Out\East%MessageID%.xml.

Per aggiungere una regola di routing per i clienti sconosciuti

  1. Nel criterio RouteBasedOnCustomerKnownType fare clic con il pulsante destro del mouse sulla versione 1.0 (non salvata) e quindi scegliere Aggiungi nuova regola. Assegnare alla regola il nome SetUnknownCustomerEndpoint.

  2. Nella finestra Regola fare clic con il pulsante destro del mouse su Condizioni e quindi scegliere Aggiungi AND logico.

  3. Nella finestra Regola fare clic con il pulsante destro del mouse su AND, scegliere Predicatie quindi fare clic su NotEqual.

  4. In Esplora fatti fare clic sulla scheda XML Schema, espandere NAOrderDoc.xsd e quindi espandere OrderDoc.

  5. Da Esplora fatti trascinare l'elemento customerName nel nodo argument1 in Condizioni.

  6. Fare clic sul nodo argument2 e quindi digitare GlobalBankWest.

  7. Nella finestra Regola fare clic con il pulsante destro del mouse su AND, scegliere Predicatie quindi fare clic su NotEqual.

  8. Da Esplora fatti trascinare l'elemento customerName nel nodo argument1 in Condizioni.

  9. Fare clic sul nodo argument2 e quindi digitare GlobalBankEast.

  10. In Esplora fatti fare clic sulla scheda Vocabolari, espandere ESB. EndPointInfo, quindi espandere la versione 1.0.

  11. Da Esplora fatti trascinare la definizione Imposta percorso trasporto in uscita punto finale su Azioni.

  12. Fare clic su <stringa> vuota e quindi digitare C:\HowTos\Out\CustomerUnknown%MessageID%.xml.

  13. Da Esplora fatti trascinare la definizione Imposta tipo di trasporto in uscita punto finale su Azioni.

  14. In Esplora fatti espandere ESB. TransportTypes, espandere la versione 1.0 e quindi trascinare la definizione Dei provider di adattatori in <una stringa> vuota.

  15. Nel riquadro Azioni espandere l'elenco a discesa Provider di adattatori e quindi fare clic su FILE.

Per pubblicare e distribuire i criteri

  1. In Esplora criteri, nel criterio RouteBasedOnCustomerKnownType fare clic con il pulsante destro del mouse sulla versione 1.0 (non salvata) e quindi scegliere Pubblica.

  2. In Esplora criteri, nel criterio RouteBasedOnCustomerKnownType fare clic con il pulsante destro del mouse sulla versione 1.0 - Pubblicata e quindi scegliere Distribuisci.

Per creare un modello DSL di itinerariO ESB

  1. In Visual Studio aprire C:\HowTos\Patterns\Patterns.sln.

  2. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto ItinerarioLibrario, scegliere Aggiungi e quindi fare clic su Nuovo itinerario.

  3. Nella finestra di dialogo Aggiungi nuovo elemento digitare CbrKnownType nella casella Nome e quindi fare clic su Aggiungi.

Per configurare le proprietà dell'itinerario

  1. In Visual Studio fare clic sull'area di progettazione di CbrKnownType.itinerary. Nel Finestra Proprietà CbrKnownType configurare le proprietà seguenti:

    1. Nell'elenco a discesa Esportazione modelli fare clic su Utilità di esportazione itinerari XML.

    2. Nella sezione Impostazioni extender accanto alla proprietà File XML itinerario fare clic sul pulsante con i puntini di sospensione (...).

    3. Nella finestra di dialogo Seleziona file XML digitare C:\HowTos\Itineraries\CbrKnownType nella casella Nome file e quindi fare clic su Salva.

      Nota

      Questo passaggio consente di esportare l'itinerario come XML in un percorso di file locale. Esportando un itinerario in un percorso di file locale, anziché nel database dell'itinerario, consente il test dell'itinerario usando l'applicazione client di test ESB. Questo processo verrà completato più avanti in questo argomento relativo alle procedure.

Per definire la struttura dell'itinerario

  1. Dalla casella degli strumenti trascinare un elemento del modello On-Ramp nell'area di progettazione. Nel Finestra Proprietà OnRamp1 configurare le proprietà seguenti:

    1. Fare clic sulla proprietà Name e quindi digitare ReceiveNAOrder.

    2. Nell'elenco a discesa Extender fare clic su On-Ramp ESB Extender.

    3. Nell'elenco a discesa Applicazione BizTalk fare clic su Microsoft.Practices.ESB.

    4. Nell'elenco a discesa Porta di ricezione fare clic su OnRamp.Itinerario.

  2. Dalla Casella degli strumenti trascinare un elemento del modello Off-Ramp nell'area di progettazione e quindi posizionarlo a destra dell'elemento del modello ReceiveNAOrder . Nel Finestra Proprietà OffRamp1 configurare le proprietà seguenti:

    1. Fare clic sulla proprietà Name e quindi digitare SendRegionalOrders.

    2. Nell'elenco a discesa Extender fare clic su Off-Ramp ESB Extender.

    3. Nell'elenco a discesa Applicazione BizTalk fare clic su GlobalBank.ESB.

    4. Nell'elenco a discesa Porta di trasmissione fare clic su DynamicResolutionOneWay.

  3. Dalla casella degli strumenti trascinare un elemento del modello Del servizio itinerario nell'area di progettazione e quindi posizionarlo tra l'elemento del modello ReceiveNAOrder e l'elemento del modello SendRegionalOrders . Nel Finestra Proprietà ItineraryService1 configurare le proprietà seguenti:

    1. Fare clic sulla proprietà Name e quindi digitare SendPortFilter.

    2. Nell'elenco a discesa Estensione servizio itinerario fare clic su Off-Ramp Extender.

    3. Nell'elenco a discesa Off-Ramp espandere SendRegionalOrders e quindi fare clic su Gestori di invio.

  4. Fare clic con il pulsante destro del mouse sull'insieme Resolver dell'elemento del modello SendPortFilter e quindi scegliere Aggiungi nuovo sistema di risoluzione. Nella Finestra Proprietà Resolver1 configurare le proprietà seguenti:

    1. Fare clic sulla proprietà Name e quindi digitare RouteRegionalOrders.

    2. Nell'elenco a discesa Nome trasporto fare clic su BRE.

    3. Nell'elenco a discesa Implementazione resolver fare clic su Bre Resolver Extension (Estensione sistema di risoluzione).

    4. Nell'elenco a discesa Criteri fare clic su RouteBasedOnCustomerKnownType.

    5. Nell'elenco a discesa Recognize Message Format (Riconoscimento formato messaggio ) fare clic su True.

    6. Nell'elenco a discesa UseMsg fare clic su True.

      Nota

      Se si usa l'estensione del sistema di risoluzione BRE dall'orchestrazione, la proprietà recognizeMessageFormat deve essere impostata su False.

  5. Nella casella degli strumenti fare clic su Connettore. Trascinare una connessione dall'elemento del modello ReceiveNAOrder all'elemento del modello SendPortFilter .

  6. Nella casella degli strumenti fare clic su Connettore. Trascinare una connessione dall'elemento del modello SendPortFilter all'elemento del modello SendRegionalOrders .

Per esportare il modello da usare con il client di test dell'itinerario

  1. In Visual Studio fare clic con il pulsante destro del mouse sull'area di progettazione dell'itinerario CbrKnownType e quindi scegliere Esporta modello.

    Nota

    Viene aperta la versione XML dell'itinerario in Visual Studio.

  2. Salvare tutti gli artefatti del progetto.

  3. In Esplora risorse passare a C:\HowTos\Itineraries e notare la creazione del codice XML dell'itinerario (CbrKnownType.xml).

Per testare l'itinerario e le regole di business

  1. Aprire l'applicazione di esempio Client di test dell'itinerario usando il collegamento creato durante i prerequisiti per le attività di sviluppo (C:\HowTos\ESB.Itinerary.Test.exe - Collegamento).

  2. Nel client di test dell'itinerario deselezionare la casella di controllo Usa servizio WCF e quindi fare clic su Carica itinerario.

  3. Nella finestra di dialogo Apri file itinerari passare a C:\HowTos\Itineraries. Selezionare CbrKnownType.xmle quindi fare clic su Apri per caricare l'itinerario.

  4. Fare clic su OK per cancellare il messaggio Itinerario caricato correttamente .

  5. Nel client di test dell'itinerario fare clic sul pulsante con i puntini di sospensione (...) accanto alla finestra Carica messaggio .

  6. Nella finestra di dialogo Seleziona documento XML da caricare passare a C:\HowTos. Selezionare West.xmle quindi fare clic su Apri per caricare il messaggio di test.

  7. Fare clic sul pulsante Invia richiesta . Al termine del test, fare clic su OK per ignorare la conferma visualizzata.

  8. In Esplora risorse passare a C:\HowTos\Out. Verificare che il messaggio West%MessageID%.xml sia stato scritto nella directory.

  9. Ripetere il processo di test usando il messaggio East.xml.

  10. In Esplora risorse passare a C:\HowTos\Out. Verificare che il messaggio East%MessageID%.xml sia stato scritto nella directory.

  11. Ripetere il processo di test usando il messaggio NAOrderDoc.xml.

  12. In Esplora risorse passare a C:\HowTos\Out. Verificare che il messaggio CustomerUnknown%MessageID%.xml sia stato scritto nella directory.

Risorse aggiuntive

Per altre informazioni, vedere i seguenti argomenti correlati: