Condividi tramite


Procedura: Instradare dinamicamente un messaggio in base al contesto del messaggio usando criteri di regole business

Obiettivo

In questa sezione viene illustrato come creare un itinerario che determina gli endpoint del messaggio, in base alle proprietà del contesto del messaggio, usando un criterio del motore regole di business BizTalk Server (BRE) e quindi instrada il messaggio usando l'adattatore FILE BizTalk Server.

In questo argomento procedura si completeranno i passaggi seguenti:

  • Creare criteri di regole business per valutare il tipo di messaggio.

  • Creare una lista di routing di itinerari per instradare dinamicamente usando criteri di regole business.

  • Testare l'itinerario usando l'applicazione di esempio client di test di itinerario.

Prerequisiti

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

Passaggi

Per creare un criterio bre per instradare un messaggio usando le proprietà del contesto del messaggio

  1. Fare clic su Avvia sulla barra delle applicazioni, scegliere Tutti i programmi, scegliere 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. Assegnare un nome al criterio RouteBasedOnMessageType.

    Per aggiungere una regola di routing per gli ordini North American

  3. Nel criterio RouteBasedOnMessageType fare clic con il pulsante destro del mouse sulla versione 1.0 (non salvata) e quindi scegliere Aggiungi nuova regola. Assegnare un nome alla regola SetNAOrderEndpoint.

  4. Nella finestra Regola fare clic con il pulsante destro del mouse su Condizioni, scegliere Predicati e quindi fare clic su Uguale.

  5. In Esplora fatti espandere ESB. Vocabolario ContextInfo , espandere Versione 1.0 e quindi trascinare il fatto Del tipo di messaggio di contesto nel nodo argument1 in Condizioni.

    Nota

    Microsoft BizTalk ESB Toolkit include diversi vocabolari che possono essere usati per la creazione di regole. Alcuni di questi devono essere sostituiti o incrementati con i propri vocabolari. Ad esempio, i criteri DynamicRunTimeMaptypes hanno definizioni per le mappe fornite negli esempi di GlobalBank .

  6. Fare clic sul nodo argument2 e quindi digitare http://globalbank.esb.dynamicresolution.com/northamericanservices/#OrderDoc

  7. In Esplora fatti espandere ESB. Vocabolario EndPointInfo , espandere Versione 1.0 e quindi trascinare la definizione Imposta percorso trasporto in uscita punto finale in Azioni.

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

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

  10. In Esplora fatti espandere ESB. Vocabolario TansportTypes, espandere Versione 1.0 e quindi trascinare la definizione Provider di adattatori in <stringa> vuota.

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

    Per pubblicare e distribuire i criteri

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

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

    Per creare un modello di linguaggio specifico del dominio (DSL)

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

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

  16. Nella casella Nome digitare MessageType e quindi fare clic su Aggiungi.

    Per configurare le proprietà dell'itinerario

  17. In Visual Studio fare clic sull'area di progettazione di MessageType.route. Nella Finestra Proprietà MessageType configurare le proprietà seguenti:

    1. Nell'elenco a discesa Esportazione modello fare clic su Esportazione itinerari XML.

    2. Nella sezione Impostazioni estensione 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\Itinerari\MessageType e quindi fare clic su Salva.

      Nota

      Questo passaggio consente di esportare l'itinerario come XML in un percorso di file locale. L'esportazione di un itinerario in un percorso di file locale, anziché nel database di itinerario, consente di testare l'itinerario usando l'applicazione Client di test ESB. Questo processo verrà completato più avanti in questo argomento procedura.

    Per definire la struttura dell'itinerario

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

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

    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.

  19. Nella casella degli strumenti trascinare un elemento modello del servizio itinerario nell'area di progettazione e quindi inserirlo a destra dell'elemento modello On-Ramp . Nell'Finestra Proprietà ItinerarioService1 configurare le proprietà seguenti:

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

    2. Nell'elenco a discesa Estensione servizio itinerario fare clic su Estensione messaggistica.

      Nota

      Questa proprietà definisce che il processo verrà eseguito in una pipeline (messaggistica). In alternativa, se il processo verrà eseguito in un'orchestrazione, impostare la proprietà Extender del servizio itinerario su Orchestration Extender.

    3. Nell'elenco a discesa Contenitore espandere ReceiveOrders e quindi fare clic su Gestori di ricezione.

    4. Nell'elenco a discesa Nome servizio fare clic su Microsoft.Practices.ESB.Services.Routing.

  20. Fare clic con il pulsante destro del mouse sull'insieme Resolver dell'elemento modello BreRoute e quindi scegliere Aggiungi nuovo resolver. Nella Finestra Proprietà Resolver1 configurare le proprietà seguenti:

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

    2. Nell'elenco a discesa Implementazione resolver fare clic su Bre Resolver Extension (Estensione del resolver).

    3. Nell'elenco a discesa Criteri fare clic su RouteBasedOnMessageType v 1.0.

  21. Nella casella degli strumenti fare clic su Connettore. Trascinare una connessione dall'elemento modello ReceiveOrders all'elemento modello BreRoute .

  22. Dalla casella degli strumenti trascinare un elemento modello Off-Ramp nell'area di progettazione e quindi inserirlo a destra dell'elemento modello BreRoute . Nell'Finestra Proprietà OffRamp1 configurare le proprietà seguenti:

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

    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 Invia porta fare clic su DynamicResolutionOneWay.

  23. Dalla casella degli strumenti trascinare un elemento modello del servizio Itinerario nell'area di progettazione e quindi inserirlo tra l'elemento modello BreRoute e l'elemento modello SendBasedOnType . Nell'Finestra Proprietà ItinerarioService1 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 SendBasedOnType e quindi fare clic su Invia gestori.

  24. Nella casella degli strumenti fare clic su Connettore. Trascinare una connessione dall'elemento modello BreRoute all'elemento modello SendPortFilter .

  25. Nella casella degli strumenti fare clic su Connettore. Trascinare una connessione dall'elemento modello SendPortFilter all'elemento modello SendBasedOnType .

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

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

    Nota

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

  27. Salvare tutti gli artefatti del progetto.

  28. In Esplora risorse passare a C:\HowTos\Itinerari e notare la creazione del codice XML dell'itinerario (MessageType.xml).

    Per testare l'itinerario

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

  30. Nel client di test itinerari deselezionare la casella di controllo Usa servizio WCF e quindi fare clic su Carica itinerario.

  31. Nella finestra di dialogo Apri file itinerario passare a C:\HowTos\Itinerari. Selezionare MessageType.xmle quindi fare clic su Apri per caricare l'itinerario.

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

  33. Nel client test itinerari fare clic sul pulsante con i puntini di sospensione (...) accanto alla casella Carica messaggio .

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

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

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

Risorse aggiuntive

Per altre informazioni, vedere i seguenti argomenti correlati: