Compartir a través de


Cómo: Enrutar dinámicamente un mensaje basado en el contexto del mensaje mediante una directiva de reglas de negocio

Objetivo

En esta sección se muestra cómo crear un itinerario que determina los puntos de conexión del mensaje, en función de las propiedades de contexto de mensaje, mediante una directiva de motor de reglas de negocios (BRE) de BizTalk Server y, a continuación, enruta el mensaje mediante el adaptador de BizTalk Server FILE.

En este tema de procedimientos, completará los pasos siguientes:

  • Cree una directiva de reglas de negocio para evaluar el tipo de mensaje.

  • Cree una lista de enrutamiento de itinerarios para enrutar dinámicamente mediante una directiva de reglas de negocio.

  • Pruebe el itinerario mediante la aplicación de ejemplo Cliente de prueba de itinerarios.

Requisitos previos

Los procedimientos de este tema de procedimientos requieren la finalización de los requisitos previos para las actividades de desarrollo.

Pasos

Para crear una directiva BRE para enrutar un mensaje mediante propiedades de contexto de mensaje

  1. Haga clic en Iniciar en la barra de tareas, seleccione Todos los programas, BizTalk Server y, a continuación, haga clic en Compositor de reglas de negocios.

  2. En el Explorador de directivas, haga clic con el botón derecho en Directivas y, a continuación, haga clic en Agregar nueva directiva. Asigne a la directiva el nombre RouteBasedOnMessageType.

    Para agregar una regla de enrutamiento para pedidos de Norteamérica

  3. En la directiva RouteBasedOnMessageType , haga clic con el botón derecho en Versión 1.0 (no guardada) y, a continuación, haga clic en Agregar nueva regla. Asigne a la regla el nombre SetNAOrderEndpoint.

  4. En la ventana Regla, haga clic con el botón derecho en Condiciones, seleccione Predicados y, a continuación, haga clic en Igual.

  5. En el Explorador de hechos, expanda el ESB. Vocabulario ContextInfo , expanda Versión 1.0 y arrastre el hecho Tipo de mensaje de contexto al nodo argument1 en Condiciones.

    Nota

    Microsoft BizTalk ESB Toolkit incluye varios vocabularios que se pueden usar para crear reglas. Algunos de ellos deben reemplazarse o aumentarse por sus propios vocabularios. Por ejemplo, la directiva DynamicRunTimeMaptypes tiene definiciones para los mapas proporcionados en los ejemplos de GlobalBank .

  6. Haga clic en el nodo argument2 y escriba http://globalbank.esb.dynamicresolution.com/northamericanservices/#OrderDoc

  7. En el Explorador de hechos, expanda el ESB. Vocabulario EndPointInfo , expanda Versión 1.0 y, a continuación, arrastre la definición Establecer ubicación de transporte saliente de punto de conexión a Acciones.

  8. Haga clic en <cadena> vacía y escriba C:\HowTos\Out\NorthAmerica%MessageID%.xml

  9. En el Explorador de hechos, arrastre la definición Set End Point Outbound Transport Type (Establecer tipo de transporte saliente de punto de conexión) a Actions (Acciones).

  10. En el Explorador de hechos, expanda el ESB. Vocabulario de TansportTypes, expanda Versión 1.0 y, a continuación, arrastre la definición proveedores de adaptadores a <una cadena> vacía.

  11. En el panel Acciones, expanda la lista desplegable Proveedores de adaptadores y, a continuación, haga clic en ARCHIVO.

    Para publicar e implementar la directiva

  12. En el Explorador de directivas, en la directiva RouteBasedOnMessageType , haga clic con el botón derecho en Versión 1.0 (no guardada) y, a continuación, haga clic en Publicar.

  13. En el Explorador de directivas, en la directiva RouteBasedOnMessageType , haga clic con el botón derecho en Versión 1.0 - Publicada y, a continuación, haga clic en Implementar.

    Para crear un modelo de lenguaje específico del dominio (DSL) de ESB

  14. En Visual Studio, abra C:\HowTos\Patterns\Patterns.sln.

  15. En Explorador de soluciones, haga clic con el botón derecho en el proyecto ItineraryLibrary, seleccione Agregar y, a continuación, haga clic en Nuevo itinerario.

  16. En el cuadro Nombre , escriba MessageType y, a continuación, haga clic en Agregar.

    Para configurar las propiedades del itinerario

  17. En Visual Studio, haga clic en la superficie de diseño de MessageType.itinerary. En el ventana Propiedades MessageType, configure las siguientes propiedades:

    1. En la lista desplegable Exportador de modelos, haga clic en Exportador de itinerarios XML.

    2. En la sección Configuración de extensor , junto a la propiedad Archivo XML de itinerario , haga clic en el botón de puntos suspensivos (...).

    3. En el cuadro de diálogo Seleccionar archivo XML , en el cuadro Nombre de archivo , escriba C:\HowTos\Itinerarios\MessageType y, a continuación, haga clic en Guardar.

      Nota

      Este paso le permite exportar el itinerario como XML a una ubicación de archivo local. La exportación de un itinerario a una ubicación de archivo local, en lugar de a la base de datos de itinerarios, permite realizar pruebas del itinerario mediante la aplicación cliente de prueba de ESB. Completará este proceso más adelante en este tema de procedimientos.

    Para definir la estructura del itinerario

  18. En el Cuadro de herramientas, arrastre un elemento de modelo on-Ramp a la superficie de diseño. En el ventana Propiedades OnRamp1, configure las siguientes propiedades:

    1. Haga clic en la propiedad Name y escriba ReceiveOrders.

    2. En la lista desplegable Extender , haga clic en On-Ramp ESB Extender.

    3. En la lista desplegable Aplicación de BizTalk , haga clic en Microsoft.Practices.ESB.

    4. En la lista desplegable Puerto de recepción, haga clic en OnRamp.Itinerary.

  19. En el Cuadro de herramientas, arrastre un elemento de modelo de Servicio de itinerarios a la superficie de diseño y, a continuación, colóquelo a la derecha del elemento de modelo On-Ramp . En el ventana Propiedades ItineraryService1, configure las siguientes propiedades:

    1. Haga clic en la propiedad Name y escriba BreRoute.

    2. En la lista desplegable Extender del servicio de itinerarios , haga clic en Extender de mensajería.

      Nota

      Esta propiedad define que el proceso tendrá lugar en una canalización (mensajería). Como alternativa, si el proceso tendrá lugar en una orquestación, establezca la propiedad Itinerary Service Extender en Orchestration Extender.

    3. En la lista desplegable Contenedor , expanda ReceiveOrdersy, a continuación, haga clic en Controladores de recepción.

    4. En la lista desplegable Nombre de servicio , haga clic en Microsoft.Practices.ESB.Services.Routing.

  20. Haga clic con el botón derecho en la colección Resolver del elemento del modelo BreRoute y, a continuación, haga clic en Agregar nuevo solucionador. En el ventana Propiedades Resolver1, configure las siguientes propiedades:

    1. Haga clic en la propiedad Name y escriba ByMessageType.

    2. En la lista desplegable Implementación del solucionador , haga clic en Extensión de resolución bre.

    3. En la lista desplegable Directiva , haga clic en RouteBasedOnMessageType v 1.0.

  21. En el cuadro de herramientas, haga clic en Conector. Arrastre una conexión desde el elemento de modelo ReceiveOrders al elemento de modelo de BreRoute .

  22. Desde el Cuadro de herramientas, arrastre un elemento de modelo Off-Ramp a la superficie de diseño y colóquelo a la derecha del elemento del modelo BreRoute . En el ventana Propiedades OffRamp1, configure las siguientes propiedades:

    1. Haga clic en la propiedad Name y escriba SendBasedOnType.

    2. En la lista desplegable Extender , haga clic en Off-Ramp ESB Extender.

    3. En la lista desplegable Aplicación de BizTalk , haga clic en GlobalBank.ESB.

    4. En la lista desplegable Puerto de envío, haga clic en DynamicResolutionOneWay.

  23. En el Cuadro de herramientas, arrastre un elemento de modelo de Servicio de itinerarios a la superficie de diseño y colóquelo entre el elemento del modelo BreRoute y el elemento de modelo SendBasedOnType . En el ventana Propiedades ItineraryService1, configure las siguientes propiedades:

    1. Haga clic en la propiedad Name y escriba SendPortFilter.

    2. En la lista desplegable Extender del servicio de itinerarios , haga clic en Extender fuera de rampa.

    3. En la lista desplegable Off-Ramp ,expanda SendBasedOnTypey, a continuación, haga clic en Send Handlers (Enviar controladores).

  24. En el cuadro de herramientas, haga clic en Conector. Arrastre una conexión desde el elemento del modelo BreRoute al elemento de modelo SendPortFilter .

  25. En el cuadro de herramientas, haga clic en Conector. Arrastre una conexión desde el elemento de modelo SendPortFilter al elemento de modelo SendBasedOnType .

    Para exportar el modelo para su uso con el cliente de prueba de itinerarios

  26. En Visual Studio, haga clic con el botón derecho en la superficie de diseño del itinerario MessageType y, a continuación, haga clic en Exportar modelo.

    Nota

    La versión XML del itinerario se abre en Visual Studio.

  27. Guarde todos los artefactos del proyecto.

  28. En el Explorador de Windows, vaya a C:\HowTos\Itinerarios y observe la creación del XML del itinerario (MessageType.xml).

    Para probar el itinerario

  29. Abra la aplicación de ejemplo Cliente de prueba de itinerarios mediante el acceso directo creado durante los requisitos previos para las actividades de desarrollo (C:\HowTos\ESB.Itinerary.Test.exe - Acceso directo).

  30. En el cliente de prueba de itinerarios, desactive la casilla Usar servicio WCF y, a continuación, haga clic en Cargar itinerario.

  31. En el cuadro de diálogo Abrir archivo de itinerario , vaya a C:\HowTos\Itinerarios. Seleccione MessageType.xmly haga clic en Abrir para cargar el itinerario.

  32. Haga clic en Aceptar para borrar el mensaje Itinerario cargado correctamente .

  33. En el cliente de prueba de itinerarios, haga clic en el botón de puntos suspensivos (...) situado junto al cuadro Cargar mensaje .

  34. En el cuadro de diálogo Seleccionar documento XML para cargar , vaya a C:\HowTos. Seleccione NAOrderDoc.xmly haga clic en Abrir para cargar el mensaje de prueba.

  35. Haga clic en el botón Enviar solicitud . Cuando se complete la prueba, haga clic en Aceptar para descartar la confirmación que aparece.

  36. En el Explorador de Windows, vaya a C:\HowTos\Out\. Compruebe que el mensaje NorthAmerica%MessageID%.xml se ha escrito en el directorio.

Recursos adicionales

Para obtener más información, vea los siguientes temas relacionados: