Compartir a través de


Extremo a extremo de BAM (ejemplo de BizTalk Server)

En el ejemplo de extremo a extremo se muestra cómo correlacionar eventos desde varios componentes (en este caso, tres orquestaciones y una canalización) mediante BAM.

BAM reconstruye la actividad económica que abarca el componente de canalización y las orquestaciones. En el nivel más bajo, esto funciona mediante llamadas a EventStream.EnableContinuation desde cada componente de implementación que espera más eventos para la actividad. La llamada a EnableContinuation es explícita, mientras que las llamadas en Orchestration1 y Orchestration2 se realizan agregando una carpeta Continuation al perfil de seguimiento en una programación y una carpeta ContinuationID a la programación siguiente.

En el siguiente diagrama se muestra el flujo de trabajo usado en el ejemplo.

Imagen que muestra cómo correlacionar eventos de varios componentes.

Descripción del ejemplo

En el ejemplo de extremo a extremo de BAM se muestra cómo puede usar BAM para recopilar información desde una canalización y varias orquestaciones y actualizar una única actividad.

Cómo y por qué se ha diseñado este ejemplo

El ejemplo de extremo a extremo de BAM se ha diseñado para demostrar las siguientes actividades:

  • Uso de BAM dentro de una canalización

  • Uso del Editor de perfiles de seguimiento (TPE) para asignar elementos de actividad a formas en una orquestación y a elementos de un mensaje

  • Uso de continuaciones para mantener activa una actividad cuando contribuyen a ella varias piezas de una solución

El ejemplo funciona como se describe a continuación:

  1. Se recupera un mensaje de entrada de la <carpeta Samples Path>\BamEndToEnd\Input.

  2. El componente de canalización asigna un identificador de documento único al mensaje y usa la API de BAM para comenzar una nueva actividad de BAM. El DocumentID se adjunta como una parte separada del mensaje de entrada para que esté disponible para las orquestaciones.

  3. La Orchestration1 se activa cuando se recibe el mensaje de entrada.

  4. La Orchestration1 modifica el mensaje de entrada y lo pasa como un parámetro a la Orchestration2.

  5. La Orchestration2 modifica el mensaje de entrada y lo envía a la base de datos de cuadro de mensajes, la cual activa la Orchestration3.

  6. Orchestration3 modifica el mensaje y lo escribe en la carpeta <Samples Path>\BamEndToEnd\Output.

  7. Cada orquestación actualiza los elementos de actividad de la actividad de BAM.

Ubicación del ejemplo

Puede encontrar este ejemplo en <Samples Path>\BAM\BamEndToEnd.

En la tabla siguiente se enumeran los archivos del ejemplo y se describe su propósito.

Archivos Descripción
BamEndToEnd.sln Solución de ejemplo de Extremo a extremo de BAM.
BamEndToEnd.xls Hoja de estilos de definición de BAM.
BamEndToEnd.xml XML de definición de BAM.
BAMEndToEndBinding.xml Enlace de BAM.
Cleanup.bat Archivo por lotes que se usa para anular la implementación del ejemplo.
InputMessage.xml Mensaje de entrada.
Setup.bat Archivo por lotes para compilar e implementar el ejemplo.
\Components\AssemblyInfo.cs Código de componente de canalización.
\Components\BAMMessagePartPLComponent.cs Código de componente de canalización.
\Components\Components.csproj Proyecto de componentes de canalización.
\Messages\InputMessage01.xml

...

\Messages\InputMessage10.xml
Mensajes de entrada de ejemplo.
\Services\BAMInbound.btp Archivo de canalización de entrada.
\Services\BAMPartSchema.xsd Esquema de mensajes de la parte de BAM.
\Services\Orchestration1.odx Orquestación.
\Services\Orchestration2.odx Orquestación.
\Services\Orchestration3.odx Orquestación.
\Services\PropertySchema.xsd Esquema de propiedad.
\Services\Schema1.xsd Esquema de mensajes.
\Services\Schema2.xsd Esquema de mensajes.
Services\Schema3.xsd Esquema de mensajes.
\Services\Services.btproj Proyecto de archivo de BizTalk de Visual Studio.
\Services\Transform_1.btm Archivo de asignación.
\Services\Transform_2.btm Archivo de asignación.
\Services\Transform_3.btm Archivo de asignación.

Uso del ejemplo

Use los siguientes procedimientos para generar y ejecutar el ejemplo de extremo a extremo de BAM:

Compilación e inicialización de este ejemplo

  1. Abra un símbolo del sistema como administrador y ejecute <la ruta de> acceso de ejemplos\BAM\BAMEndToEnd\Setup.bat. Setup.bat genera e inicializa la infraestructura de BAM para este ejemplo. Mantenga abierto el símbolo del sistema.

  2. Cree un perfil de seguimiento para asignar Orchestration1, Orchestration2 y Orchestration3 a la actividad de BAM. (Dado que la creación del perfil de seguimiento es un proceso complejo, las instrucciones detalladas se encuentran en un procedimiento independiente denominado Para crear un perfil de seguimiento. Este procedimiento aparece más adelante en este documento).

  3. Implemente el perfil de seguimiento BamEndToEnd.btt que creó en el paso anterior. En el símbolo del sistema, cambie al <directorio Samples Path>\BAM\BamEndToEnd. Para implementar el perfil de seguimiento, escriba la línea siguiente y presione Entrar:

    “<BizTalkInstallationPath>\Tracking\bttdeploy” BamEndToEnd.btt

    Cómo implementar perfiles de seguimiento con la Utilidad de administración de perfiles de seguimiento proporciona más información.

    Importante

    Puede pasar por alto el mensaje que indica que el identificador de continuación Orch1_ no tiene una continuación coincidente. Es previsible que aparezca este mensaje, pues la continuación denominada Orch1_ está definida en el componente de canalización y no en el perfil de seguimiento.

Ejecutar esta muestra

Copie el archivo <Samples Path>\BamEndToEnd\InputMessage.xml en la carpeta <Samples Path>\BamEndToEnd\Input. Después de unos segundos, el mensaje desaparece de la carpeta Input y aparece un mensaje de salida en la <carpeta Samples Path>\BamEndToEnd\Output.

Visualización de los datos de BAM

  1. Abra SQL Server Management Studio.

  2. En SQL Server Management Studio, expanda el servidor, bases de datos, BAMPrimaryImport y, a continuación, expanda Tablas.

  3. Haga clic con el botón derecho en dbo.bam_EndToEndActivity_Completed y, a continuación, haga clic en Abrir tabla. Si usa SQL Server, haga clic en Seleccionar las 1000 primeras filas.

    El contenido de la tabla bam_EndToEndActivity_Completed se muestra en el panel derecho. Cada fila de la tabla representa una actividad EndToEndActivity que se ha completado.

Volver a ejecutar este ejemplo

  1. Abra un símbolo del sistema como administrador y cambie al <directorio Samples Path>\BAM\BamEndToEnd. Escriba la línea siguiente:

    “C:\Program Files\Microsoft BizTalk Server <version>\Tracking\bttdeploy” BamEndToEnd.btt /remove

    Nota

    Si no instaló BizTalk Server en la unidad C, reemplace "C" por la letra de unidad donde instaló BizTalk Server.

  2. Ejecute <la ruta de acceso> de ejemplos\BAM\BAMEndToEnd\Cleanup.bat. Cleanup.bat quita la infraestructura de BAM para este ejemplo.

  3. Realice los pasos descritos en Para compilar e inicializar esta sección de ejemplo en este tema.

Creación de un perfil de seguimiento

  1. Haga clic en Inicio, seleccione Todos los programas, microsoft BizTalk Server 20xx. Haga clic con el botón derecho en Editor de perfiles de seguimiento y ejecute como administrador.

  2. En el panel izquierdo de la ventana Editor de perfiles de seguimiento , haga clic aquí para importar una definición de actividad de BAM.

  3. En la sección Nombre de definición de actividad de BAM del cuadro de diálogo Importar definición de actividad de BAM , seleccione EndToEndActivity y, a continuación, haga clic en Aceptar.

  4. En el panel derecho de la ventana Editor de perfiles de seguimiento , haga clic aquí para seleccionar un origen de eventos.

  5. En la sección Nombre de ensamblado del cuadro de diálogo Seleccionar ensamblado primario del origen de eventos, seleccione Microsoft.Samples.BizTalk.BamEndToEnd.Services y, a continuación, haga clic en Siguiente.

  6. En la sección Nombre de orquestación del cuadro de diálogo Seleccionar orquestación , seleccione BamEndToEnd.Services.Orchestration1 y haga clic en Aceptar.

  7. En el panel izquierdo de la ventana Editor de perfiles de seguimiento , haga clic con el botón derecho en EndToEndActivity y, a continuación, haga clic en Nuevo ContinuationID. Asigne un nombre al nuevo identificador de continuación Orch1_. Repita este paso para crear dos identificadores de continuación más denominados Orch2_ y Orch3_.

  8. Haga clic con el botón derecho en EndToEndActivityy, a continuación, haga clic en Nueva continuación. Asigne un nombre al nuevo Orch2_ de continuación. Repita este paso para crear otra continuación denominada Orch3_.

  9. Haga clic con el botón derecho en la forma Receive1 y, a continuación, haga clic en Esquemas de propiedades de contexto.

  10. Desplácese hasta el final de la lista Nombre de propiedad de contexto y, a continuación, haga doble clic en BAMEndToEnd.Services.PropertySchema.DocumentID.

  11. Expanda <Esquema> y, a continuación, arrastre DocumentID en el panel derecho para Orch1_ en el panel izquierdo.

  12. Haga clic en el icono de carpeta con la flecha (botón con carpeta y flecha arriba) dos veces para mostrar la orquestación.

  13. Arrastre la forma Receive1 en el panel derecho a SBegin1 en el panel izquierdo.

  14. Arrastre la forma StartOrchestration_1 en el panel derecho a SEnd1 en el panel izquierdo.

  15. Haga clic con el botón derecho en la forma StartOrchestration_1 y, a continuación, haga clic en Esquemas de carga de mensajes.

  16. Haga doble clic en la fila que contiene el valor "Message_2" en la columna Mensaje y el valor "MessageBody" en la columna Parte .

    Esquema de carga de mensajes TPE que muestra message_2

  17. Expanda Esquema2 y, a continuación, arrastre Data2 en el panel derecho a Data1 en el panel izquierdo.

  18. Haga clic en Seleccionar origen de eventos y, a continuación, haga clic en Seleccionar propiedad de contexto.

  19. Desplácese hasta el final de la lista Nombre de propiedad de contexto y, a continuación, haga doble clic en BAMEndToEnd.Services.PropertySchema.DocumentID.

  20. Expanda <Esquema> y, a continuación, arrastre DocumentID a la continuación Orch2_ en el panel izquierdo.

    Nota

    No confunda la continuación Orch2_ con el identificador de continuación Orch2_. El icono que representa un identificador de continuación contiene una clave (icono para un identificador de continuación), mientras que el icono que representa una continuación no contiene una clave (icono para una de continuación).

  21. Haga clic en Seleccionar origen de eventos y, a continuación, haga clic en Seleccionar programación de orquestación.

  22. En la sección Nombre de ensamblado del cuadro de diálogo Seleccionar ensamblado primario del origen de eventos, seleccione Microsoft.Samples.BizTalk.BamEndToEnd.Services y, a continuación, haga clic en Siguiente.

  23. En la sección Nombre de orquestación del cuadro de diálogo Seleccionar orquestación , seleccione BamEndToEnd.Services.Orchestration2 y, a continuación, haga clic en Aceptar.

  24. Haga clic con el botón derecho en la forma ConstructMessage_1 y, a continuación, haga clic en Esquemas de carga de mensajes.

  25. Haga doble clic en la fila que contiene el valor "Message_3" en la columna Mensaje y el valor "BAMPart" en la columna Parte .

  26. Expanda BAMPart y, a continuación, arrastre DocumentID en el panel derecho al Orch2_ id. de continuación en el panel izquierdo.

    Nota

    No confunda la continuación Orch2_ con el identificador de continuación Orch2_. El icono que representa un identificador de continuación contiene una clave (icono para un identificador de continuación), mientras que el icono que representa una continuación no contiene una clave (icono para una de continuación).

  27. Haga clic en el icono de carpeta con la flecha (botón con carpeta y flecha arriba) dos veces para mostrar la orquestación.

  28. Arrastre la forma ConstructMessage_1 en el panel derecho a SBegin2 en el panel izquierdo.

  29. Arrastre la forma Send_1 en el panel derecho a SEnd2 en el panel izquierdo.

  30. Haga clic con el botón derecho en la forma Send_1 y, a continuación, haga clic en Esquemas de carga de mensajes.

  31. Haga doble clic en la fila que contiene el valor "Message_3" en la columna Mensaje y el valor "MessageBody" en la columna Parte .

  32. Expanda Esquema3 y, a continuación, arrastre Data3 en el panel derecho a Data2 en el panel izquierdo.

  33. En la lista desplegable situada encima del panel derecho, seleccione Esquemas de carga de mensajes.

  34. Haga doble clic en la fila que contiene el valor "Message_3" en la columna Mensaje y el valor "BAMPart" en la columna Parte .

  35. Expanda BAMPart y, a continuación, arrastre DocumentID en el panel derecho hasta la continuación Orch3_ en el panel izquierdo.

    Nota

    No confunda la continuación Orch3_ con el identificador de continuación Orch3_. El icono que representa un identificador de continuación contiene una clave (icono para un identificador de continuación), mientras que el icono que representa una continuación no contiene una clave (icono para una de continuación).

  36. Haga clic en Seleccionar origen de eventos y, a continuación, haga clic en Seleccionar programación de orquestación.

  37. En la sección Nombre de ensamblado del cuadro de diálogo Seleccionar ensamblado primario del origen de eventos, seleccione Microsoft.Samples.BizTalk.BamEndToEnd.Services y, a continuación, haga clic en Siguiente.

  38. En la sección Nombre de orquestación del cuadro de diálogo Seleccionar orquestación , seleccione BamEndToEnd.Services.Orchestration3 y, a continuación, haga clic en Aceptar.

  39. Haga clic con el botón derecho en la forma Receive1 y, a continuación, haga clic en Esquemas de carga de mensajes.

  40. Haga doble clic en la fila que contiene el valor "Message_3" en la columna Mensaje y el valor "BAMPart" en la columna Parte .

  41. Expanda BAMPart y, a continuación, arrastre DocumentID en el panel derecho al Orch3_ id. de continuación en el panel izquierdo.

    Nota

    No confunda la continuación Orch3_ con el identificador de continuación Orch3_. El icono que representa un identificador de continuación contiene una clave (icono para un identificador de continuación), mientras que el icono que representa una continuación no contiene una clave (icono para una de continuación).

  42. Haga clic en el icono de carpeta con la flecha (botón con carpeta y flecha arriba) dos veces para mostrar la orquestación.

  43. Arrastre la forma Receive1 en el panel derecho a SBegin3 en el panel izquierdo.

  44. Arrastre la forma Send_1 en el panel derecho a SEnd3 en el panel izquierdo.

  45. Haga clic con el botón derecho en la forma Send_1 y, a continuación, haga clic en Esquema de carga de mensajes.

  46. Expanda Esquema3 y, a continuación, arrastre Data3 en el panel derecho a Data3 en el panel izquierdo.

  47. Haga clic con el botón derecho en DocumentID debajo de la continuación de Orch2_ y, a continuación, haga clic en Establecer asignaciones de puerto.

    Nota

    No confunda la continuación Orch2_ con el identificador de continuación Orch2_. El icono que representa un identificador de continuación contiene una clave (icono para un identificador de continuación), mientras que el icono que representa una continuación no contiene una clave (icono para una de continuación).

  48. En la sección Seleccionar puertos del cuadro de diálogo Seleccionar puertos , haga clic en BamEndToEnd_ReceivePort, haga clic en el signo mayor que (>) y, a continuación, haga clic en Aceptar.

  49. Guarde el perfil de seguimiento en <Ruta de acceso> de ejemplos\BAM\BamEndToEnd\BamEndToEnd.btt.

Detalles importantes

Los archivos de seguimiento no son compatibles con las canalizaciones. Sin embargo, la llamada a BeginActivity en el componente de canalización es la misma que el uso de ActivityID en una orquestación. La llamada a EnableContinuation es la misma que el uso de una continuación en una orquestación.

Consulte también

Supervisión de la actividad económica (carpeta de ejemplos de BizTalk Server)