Paso 7 (local): Crear una orquestación
Según el escenario empresarial, después de BizTalk Server recibe el mensaje de pedido de ventas de la cola de Service Bus, debe comprobar si la cantidad ordenada en el mensaje es superior a 100. Si la cantidad es mayor que 100, el mensaje se inserta en la tabla SalesOrder . En caso contrario, el mensaje se envía a una ubicación de archivos compartidos. Northwind consigue su lógica de negocios creando una orquestación. Este tema proporciona instrucciones paso a paso sobre cómo crear la orquestación.
Para agregar una orquestación al proyecto de BizTalk Server
En el BizTalk Server que ya ha creado, haga clic con el botón derecho en el proyecto, seleccione Agregar y, a continuación, haga clic en Nuevo elemento.
En el cuadro de diálogo Nuevo elemento , seleccione Orquestación de BizTalk, escriba el nombre del mapa como
OrderProcessing.odx
y, a continuación, haga clic en Agregar.
Crear mensajes para la orquestación
El esquema que ha generado anteriormente describe los "tipos" necesarios para los mensajes de la orquestación. Normalmente, un mensaje es una variable cuyo tipo está definido por el esquema correspondiente. Ahora debe crear mensajes para la orquestación y vincularlos a los esquemas que ha generado anteriormente. Necesita crear los tres mensajes siguientes:
Nombre del mensaje | Corresponde al esquema |
---|---|
Message1_SO_Inbound | Este mensaje es una instancia del esquema ECommerceSalesOrder.xsd . |
Message2_SO_Inbound | Este mensaje es una copia del Message1_SO_Inbound. Como práctica recomendada, debe crear una copia del mensaje, modificar después el nuevo mensaje y dejar el mensaje original intacto. Para obtener más información, vea El mensaje de BizTalk Server. |
Message1_SO_Outbound | Este mensaje es una instancia del esquema TableOperations.dbo.SalesOrder (Insert). |
Para crear mensajes
Abra la ventana Vista de orquestación del proyecto de BizTalk, si aún no está abierta. Para ello, haga clic en Ver, seleccione Otras ventanas y, a continuación, haga clic en Vista de orquestación.
En vista de orquestación, haga clic con el botón derecho en Mensajes y, a continuación, haga clic en Nuevo mensaje.
Haga clic con el botón derecho en el mensaje recién creado y, a continuación, seleccione Ventana Propiedades.
En el panel Propiedades del Message_1, haga lo siguiente:
Nombre de propiedad Realizar acción Identificador Escriba Message1_SO_Inbound
.Tipo de mensaje En la lista desplegable, expanda Esquemas y, a continuación, seleccione OrderProcessingDemo.ECommerceSalesOrder, donde OrderProcessingDemo es el nombre del proyecto de BizTalk. ECommerceSalesOrder es el esquema del mensaje de pedido de ventas recibido de la cola de Service Bus. Repita los pasos para crear los mensajes con los siguientes detalles:
Nombre del mensaje Realizar acción Message2_SO_Inbound - Establecer identificador en Message2_SO_Inbound
- Establecer tipo de mensaje en OrderProcessingDemo.ECommerceSalesOrderMessage1_SO_Outbound - Establecer identificador en Message1_SO_Outound
- Establecer el tipo de mensajeen OrderProcessingDemo.TableOperation_dbo_SalesOrder.Insert
Agregar formas a la orquestación
Las formas de orquestación definen el flujo de una aplicación BizTalk Server. En esta sección, se agregan las formas necesarias a la orquestación.
Para agregar formas a la orquestación
Para empezar, debe agregar una forma Receive . Esta forma recibe el mensaje del pedido de ventas entrante desde la cola del Service Bus. Establezca las siguientes propiedades en la forma de recepción.
Establezca Activar en True.
Establezca Message en Message1_SO_Inbound.
Establezca Nombre en ReceiveOrder.
Como se ha mencionado anteriormente, debe crear una copia del mensaje del pedido de ventas original que se recibe en la orquestación.
Arrastre y coloque una forma Construct Message debajo de la forma ReceiveOrder . Dado que usa esta forma para construir un mensaje de tipo Message2_SO_Inbound, establezca la propiedad Messages Con construct enMessage2_SO_Inbound.
Agregue una forma asignación de mensajes dentro de la forma Construir mensaje . Haga doble clic en la forma para abrir el Editor de expresiones y agregue lo siguiente:
Message2_SO_Inbound = Message1_SO_Inbound; //copy the message Message2_SO_Inbound(*) = Message1_SO_Inbound(*); //copy the context properties on the message
Haga clic en OK.
Según el escenario de negocio, el mensaje se debe enviar a distintos destinos en función de la cantidad de elementos pedidos. Por lo tanto, ahora debe extraer el valor de cantidad del mensaje del pedido de ventas entrante.
El elemento Quantity del mensaje entrante (ECommerceSalesOrder.xsd) contiene el valor de la cantidad ordenada. Debe promocionar esta propiedad para que el elemento se pueda usar en las expresiones de la orquestación. Para promover la propiedad, abra el esquema ECommerceSalesOrder.xsd , haga clic con el botón derecho en Cantidad, seleccione Promover y, a continuación, haga clic en Promociones rápidas.
Cree una variable para almacenar el valor de la cantidad. Para crear una variable, en la vista orquestación, haga clic con el botón derecho en Variables y, a continuación, haga clic en Nueva variable. Establezca las siguientes propiedades de la variable:
Nombre de propiedad Value Identificador Escriba quantityOrdered
.Tipo Seleccione Int32. Ahora debe asignar el valor del elemento Quantity a la variable quantityOrdered . Arrastre y coloque un Editor de expresiones después de la forma Construir mensaje . Abra el editor y escriba la siguiente expresión.
quantityOrdered = Message2_SO_Inbound.Quantity;
Haga clic en OK.
Después de extraer la cantidad del pedido, ahora necesita crear un bloque de decisiones donde distribuir las dos rutas separadas que toma el flujo de mensajes. Para crear el bloque de decisión en una orquestación, agregue una forma Decidir .
Arrastre y coloque una forma Decide después de la forma del Editor de expresiones .
Seleccione la forma Rule_1 y, en la ventana Propiedades , especifique lo siguiente:
Nombre de propiedad Value Identificador Escriba Yes
. Nota: La otra ruta se denomina de forma predeterminada Else.Expression Escriba quantityOrdered > 100
.Ahora las dos rutas están disponibles. Si el valor de la variable quantityOrdered es mayor que 100, el mensaje toma la ruta Sí . De lo contrario, toma la ruta Else . Ahora hay que definir las acciones que se realizarán en cada ruta.
Según el escenario de negocio, si la cantidad del pedido es superior a 100, el mensaje se debe insertar en la tabla SalesOrder. Por lo tanto, en la ruta Sí , debes transformar el esquema ECommerceSalesOrder.xsd en el esquema TableOperations.SalesOrder.Insert. Ha creado el esquema Insert en el tema Step 5 (On Premises): Generate the Schema for Inserting a Message inito SalesOrder Table. Después de transformar el esquema, debe enviar el mensaje fuera a la tabla de base de datos de SQL Server.
Dentro de la ruta Sí , arrastre y coloque una forma Construir mensaje . Establezca la propiedad Messages Con construido para la forma en Message1_SO_Outbound.
Dentro de la forma Construir mensaje , agregue una forma Transformar . Haga doble clic en la forma para abrir el cuadro de diálogo Transformar configuración . Haga lo siguiente:
Seleccione la opción Mapa existente .
En la lista desplegable Nombre de mapa completo , seleccione OrderProcessingDemo.SalesOrder_SQL.
En Origen, seleccione Message2_SO_Inbound.
En Destino, seleccione Message1_SO_Outound.
Después de la forma Construir mensaje , arrastre y coloque una forma Send y establezca la propiedad Message para la forma en
Message1_SO_Outbound
.
Según el escenario de negocio, si la cantidad del pedido es inferior a 100, el mensaje se debe enviar a una ubicación de archivos compartidos. Por lo tanto, en la ruta Else debe agregar una forma de envío.
En la ruta Else , arrastre y coloque una forma Send y establezca la propiedad Message de la forma
Message2_SO_Inbound
en .Nota
Se establece el mensaje en Message2_SO_Inbound porque el mismo mensaje que se recibe de la cola del Service Bus se envía a la ubicación de archivos sin procesamiento. Message2_SO_Inbound representa el mensaje que recibe la cola del Service Bus.
Agregar puertos a la orquestación
Los puertos representan los medios de entrada y de salida del mensaje con respecto a una orquestación. Los mensajes son consumidos por la orquestación usando un puerto de recepción y se envían usando un puerto de envío. En el escenario de negocio, un mensaje se recibe de un medio (cola del Service Bus) y se envía a dos ubicaciones distintas (base de datos de SQL Server o ubicación de recurso compartido de archivos) según el procesamiento del mensaje. Por lo tanto, debe crear un puerto de recepción y dos puertos de envío como parte de la orquestación.
Para agregar puertos
Arrastre y coloque una forma Puerto en el panel Superficie del puerto del Designer orquestación para iniciar el Asistente para configuración de puertos. En la página principal, haga clic en Siguiente.
En la página Propiedades del puerto, asigne el nombre al puerto como
ReceiveSO
y, a continuación, haga clic en Siguiente.En la página Seleccionar un tipo de puerto , seleccione la opción Crear un nuevo tipo de puerto , seleccione el patrón de comunicación unidireccional , deje el valor predeterminado para las restricciones de acceso y, a continuación, haga clic en Siguiente.
En la página Enlace de puerto, para la dirección del puerto, seleccione Siempre recibiré mensajes en este puerto, deje la puja del puerto en el valor predeterminado y, a continuación, haga clic en Siguiente.
En la última página, haga clic en Finalizar.
Repita los pasos para crear los dos puertos de envío. Especifique los siguientes valores cuando cree los puertos.
Nombre del puerto Propiedades SendToSQL - Establecer el nombre en SendToSQL
- Seleccione Crear un nuevo tipo de puerto.
- Establecer el patrón de comunicación en unidireccional
- Establecer la dirección del puerto en siempre enviaré mensajes en este puerto.SendToFile - Establecer nombre en SendToFile
- Seleccione Crear un nuevo tipo de puerto.
- Establecer el patrón de comunicación en unidireccional
- Establecer la dirección del puerto en siempre enviaré mensajes en este puerto.
Conectar puertos y formas de mensaje
Ahora debe conectar los puertos y las formas de mensaje para completar la orquestación. La orquestación se inicia cuando la forma ReceiveOrder recibe el mensaje y la orquestación sale cuando las dos formas Send envían el mensaje. Debe usar este criterio para conectar los puertos y las formas del mensaje.
Para conectar puertos a las formas de mensaje
Conecte el puerto de recepción ReceiveSO a la forma ReceiveOrder .
Conecte la forma Enviar en la ruta Sí al puerto de envío SendToSQL . Esto indica que si un mensaje escribe esta ruta (quantityOrdered> 100), se enviará a la tabla SalesOrder de la base de datos SQL Server.
Conecte la forma Enviar en la ruta Else al puerto de envío SendToFile . Esto indica que si un mensaje escribe esta ruta (quantityOrdered<= 100), se enviará a una ubicación de archivo especificada.
La orquestación debe tener el siguiente aspecto:
Consulte también
Tutorial 4: Creación de una aplicación híbrida mediante BizTalk Server 2013