Creación del ejemplo de transferencia de archivos gestionados
Si surgen problemas al ejecutar el ejemplo, consulte Preparar el entorno para los nodos de Edición de transferencia de archivos de WebSphere MQ o bien Resolución de problemas cuando se ejecutan ejemplos en la documentación de WebSphere Message
Broker.
Crear el flujo de mensajes branch2HQDriver
Utilice las siguientes instrucciones para crear el flujo de mensajes
de aplicación de ventas al final del día por sucursal.
- Cree un nuevo proyecto SecurityIdentitySampleFlowProject de Message Broker.
Para obtener más información, consulte
Creación de un proyecto de
Message Broker en la documentación de WebSphere Message Broker.
- Pulse el botón derecho del ratón en el proyecto de Message Broker, pulse Nuevo > Flujo de mensajes.
- Defina el Nombre de flujo de mensajes como Branch2HQDriver.msgflow y pulse Finalizar.
- En el Editor de flujos de mensajes, añada y renombre los nodos que
se listan en la siguiente tabla.
Tipo de nodo |
Nombre de nodo |
MQInput |
Datos de ventas de Sucursal (MQ) |
Compute |
Preparar FTEAgent |
FTEOutput |
Transferir archivo a HQ (FTE) |
- Conecte los nodos tal como se describe en la siguiente tabla.
Nombre de nodo |
Terminal |
Conectar a este nodo |
Datos de ventas de Sucursal (MQ) |
Salida |
Preparar FTEAgent |
Preparar FTEAgent |
Salida |
Transferir archivo a HQ (FTE)(IN) |
- Personalice el nodo "Datos de ventas de Sucursal (MQ)":
- Pulse con el botón derecho del ratón sobre el nodo "Datos de ventas de Sucursal (MQ)", pulse Propiedades.
- Pulse Básicas y
defina el Nombre de cola como
FTE_STOCK_REQ_BRANCH
- Pulse Análisis del mensaje de entrada,
establezca Dominio de mensaje
en BLOB.
- Pulse Avanzado,
seleccione la propiedad Orden lógico.
- Personalice el nodo "Preparar FTEAgent" :
- Pulse con el botón derecho del ratón en el nodo "Preparar FTEAgent", pulse Propiedades.
- Pulse Básicas y defina Módulo ESQL como
FTENodesSampleMFlow.Branch2HQDriver_PrepareforFTEAgent
- Defina Modalidad de cálculo como
Entorno local y mensaje.
- Efectúe una doble pulsación en el nodo "Preparar FTEAgent".
- Añada las siguientes sentencias ESQL en la sección BEGIN:
-- CALL CopyMessageHeaders();
CALL CopyEntireMessage();
-- El BranchName(Código) para crear el archivo de salida se toma de la cabecera MQMD
SET OutputLocalEnvironment.Wildcard.WildcardMatch = TRIM(InputRoot.MQMD.ApplOriginData);
- Personalice el nodo "Transferir archivo a HQ (FTE)":
- Pulse con el botón derecho del ratón en el nodo "Transferir archivo a HQ (FTE)", pulse
Propiedades.
- Pulse Básicas y defina el Nombre de trabajo
con un nombre de su elección, por ejemplo, Branch123
- Defina el Agente con un nombre de
agente apropiado en el formato siguiente,
MB8BROKER.FTEHQ
- Si utiliza el la configuración predeterminada, defina
Gestor de colas como
MB8QMGR
- Defina el Directorio de entrada como /ToHQ
- Defina el Nombre de archivo como StockReplenishmentRequest_*.xml
- Pulse Registros y elementos y
defina Definición de registro como El registro es Archivo completo.
Crear el flujo de mensajes FTEInputBranch2HQMFlow
Utilice las siguientes instrucciones para crear el flujo de mensajes
"Detalles de reabastecimiento de existencias recibido en HQ".
- Utilizando el proyecto de Message Broker creado anteriormente, complete las instrucciones siguientes:
- Pulse el botón derecho del ratón en el proyecto de Message Broker, pulse Nuevo > Flujo de mensajes.
- Defina el Nombre de flujo de mensajes como FTEInputBranch2HQMFlow.msgflow y pulse Finalizar.
- En el Editor de flujos de mensajes, añada y renombre los nodos que se listan en la siguiente tabla:
Tipo de nodo |
Nombre de nodo |
FTEInput |
Recibir archivo de sucursal (FTE) |
Compute |
Conservar detalles de sucursal |
Compute |
Marcar final de datos de sucursal |
Resequence |
Eliminar duplicación (Resequence) |
MQOutput |
Enviar a App de reabastecimiento de HQ (MQ) |
- Conecte los nodos tal como se describe en la siguiente tabla:
Nombre de nodo |
Terminal |
Conectar a este nodo |
Recibir archivo de sucursal (FTE) |
Salida |
Conservar detalles de sucursal |
Conservar detalles de sucursal |
Salida |
Eliminar duplicación (Resequence) |
Recibir archivo de sucursal (FTE) |
Fin de los datos |
Marcar final de datos de sucursal |
Marcar final de datos de sucursal |
Salida |
Eliminar duplicación (Resequence) |
Eliminar duplicación (Resequence) |
Salida |
Enviar a App de reabastecimiento de HQ (MQ) |
- Personalice el nodo "Recibir archivo de sucursal (FTE)":
- Pulse con el botón derecho del ratón sobre el nodo "Recibir archivo de sucursal (FTE)", pulse
Propiedades.
- Pulse Básicas, defina el Filtro de nombre de archivo
como StockReplenishmentRequest_*.xml.
- Defina Acción si el proceso es satisfactorio con el valor
Suprimir.
- Pulse Análisis del mensaje de entrada,
establezca Dominio de mensaje
en XMLNSC.
- Pulse Registros y elementos, defina
Detección de registros como
Secuencia de registro analizada.
- Personalice el nodo "Conservar detalles de sucursal":
- Pulse con el botón derecho del ratón en el nodo "Conservar detalles de sucursal", pulse Propiedades.
- Pulse Básicas, defina Módulo ESQL como
FTENodesSampleMFlow.FTEInputBranch2HQMFlow_PreserveBranchDetails
- Defina la Modalidad de cálculo con el valor Entorno local y mensaje.
- Efectúe una doble pulsación en el nodo "Conservar detalles de sucursal".
- Añada las siguientes sentencias ESQL en la sección BEGIN:
-- CALL CopyMessageHeaders();
CALL CopyEntireMessage();
SET OutputRoot.XMLNSC.StockReplenishment.SequenceNumber = InputLocalEnvironment.FTE.Record;
-- Utilizadas por el nodo Resequence para rechazar registros duplicados en una situación de recuperación
SET OutputLocalEnvironment.Wildcard.WildcardMatch = InputRoot.XMLNSC.StockReplenishment.BranchNumber;
SET OutputLocalEnvironment.StockReplenishment.SequenceNumber = InputLocalEnvironment.FTE.Record;
- Personalice el nodo "Marcar el fin de los datos de sucursal":
- Pulse con el botón derecho del ratón en el nodo "Marcar el fin de los datos de sucursal", pulse Propiedades.
- Pulse Básicas, defina Módulo ESQL como
FTENodesSampleMFlow.FTEInputBranch2HQMFlow_MarkEndofBranchData
- Defina la Modalidad de cálculo con el valor Entorno local y mensaje.
- Efectúe una doble pulsación en el nodo "Marcar el fin de los datos de sucursal".
- Añada las siguientes sentencias ESQL en la sección BEGIN:
-- CALL CopyMessageHeaders();
CALL CopyEntireMessage();
-- Tomar el número de sucursal del nombre de archivo "StockReplenishmentRequest_*.xml"
SET OutputRoot.XMLNSC.StockReplenishment.BranchNumber = SUBSTRING( InputLocalEnvironment.FTE.Name FROM 27 FOR 3 );
SET OutputRoot.XMLNSC.StockReplenishment.SequenceNumber = InputLocalEnvironment.FTE.Record + 1;
SET OutputRoot.XMLNSC.StockReplenishment.EndofData = 'true';
-- Para el nodo Resequence
SET OutputLocalEnvironment.Wildcard.WildcardMatch = OutputRoot.XMLNSC.StockReplenishment.BranchNumber;
SET OutputLocalEnvironment.StockReplenishment.SequenceNumber = InputLocalEnvironment.FTE.Record + 1;
SET OutputLocalEnvironment.StockReplenishment.EndofData = 'true';
- Personalice el nodo "Eliminar duplicación (Resequence)":
- Pulse con el botón derecho del ratón en el nodo "Eliminar duplicación (Resequence)",
pulse Propiedades.
- Pulse Básicas, defina la Vía de acceso de número de secuencia
como $LocalEnvironment/StockReplenishment/SequenceNumber
- Defina Vía de acceso de identificador de grupo de secuencia como
$LocalEnvironment/Wildcard/WildcardMatch
- En Fin de definición de secuencia,
defina Predicado como
$InputRoot/XMLNSC/StockReplenishment/EndofData="true"
- Personalice el nodo "Enviar a App de reabastecimiento de HQ (MQ)":
- Pulse con el botón derecho del ratón sobre el nodo "Enviar a App de reabastecimiento de HQ (MQ)", pulse
Propiedades.
- Si utiliza el la configuración predeterminada, pulse
Básicas y defina el
Nombre del Gestor de colas como
MB8QMGR.
- Defina el Nombre de
cola como FTE_STOCK_PROCESS_HQ
Crear el flujo de mensajes HQProcessingDriver
Utilice las siguientes instrucciones para crear el flujo de mensajes
"Aplicación de suministro de existencias de HQ".
- Utilizando el proyecto de Message Broker creado anteriormente, complete las instrucciones siguientes:
- Pulse el botón derecho del ratón en el proyecto de Message Broker, pulse Nuevo > Flujo de mensajes.
- Defina Nombre de flujo de mensajes como HQProcessingDriver.msgflow y pulse Finalizar.
- En el Editor de flujos de mensajes, añada y renombre los nodos que se listan en la siguiente tabla:
Tipo de nodo |
Nombre de nodo |
MQInput |
Recibir datos de ventas (MQ) |
Compute |
Reabastecimiento según demanda |
MQOutput |
Enviar factura de reabastecimiento de existencias (MQ) |
- Conecte los nodos tal como se describe en la siguiente tabla:
Nombre de nodo |
Terminal |
Conectar a este nodo |
Recibir datos de ventas (MQ) |
Salida |
Reabastecimiento según demanda |
Reabastecimiento según demanda |
Salida |
Enviar factura de reabastecimiento de existencias (MQ) |
- Personalice el nodo "Recibir datos de ventas (MQ)":
- Pulse con el botón derecho del ratón en el nodo "Entrada de app de sucursal", pulse Propiedades.
- Pulse Básicas,
defina el Nombre de cola como
FTE_STOCK_PROCESS_HQ
- Pulse Análisis del mensaje de entrada,
establezca Dominio de mensaje
en XMLNSC.
- Pulse Avanzado,
seleccione la propiedad Orden lógico.
- Personalice el nodo "Reabastecimiento según demanda":
- Pulse con el botón derecho del ratón en el nodo "Reabastecimiento según demanda", pulse Propiedades.
- Pulse Básicas, defina Módulo ESQL como
FTENodesSampleMFlow.HQProcessingDriver_DemandDrivenReplenishment
- Defina la Modalidad de cálculo con el valor Entorno local y mensaje.
- Efectúe una doble pulsación en el nodo "Reabastecimiento según demanda".
- Añada las siguientes sentencias ESQL en la sección BEGIN:
-- CALL CopyMessageHeaders();
CALL CopyEntireMessage();
-- SET OutputLocalEnvironment.Wildcard.WildcardMatch = InputRoot.XMLNSC.StockReplenishment.BranchNumber;
-- Los cambios de reabastecimiento de existencias se procesan aquí
IF ( InputRoot.XMLNSC.StockReplenishment.LineItem.ItemID = 'AA0533' ) THEN
SET OutputRoot.XMLNSC.StockReplenishment.LineItem.ActualSalesUnitPrice = '1.50';
END IF;
IF ( InputRoot.XMLNSC.StockReplenishment.LineItem.ItemID = 'AA0534' ) THEN
SET OutputRoot.XMLNSC.StockReplenishment.LineItem.Quantity = '163';
SET OutputRoot.XMLNSC.StockReplenishment.LineItem.Promotion = '4 for 2.00';
END IF;
- Personalice el nodo "Enviar factura de reabastecimiento de existencias (MQ)":
- Pulse con el botón derecho del ratón sobre el nodo "Enviar factura de reabastecimiento de existencias (MQ)", pulse
Propiedades.
- Si utiliza el la configuración predeterminada, pulse
Básicas y defina el
Nombre del Gestor de colas como
MB8QMGR.
- Defina el Nombre de
cola como FTE_STOCK_INVOICE_BRANCH
Crear el flujo de mensajes FTEOutputHQ2BranchMFlow
Utilice las siguientes instrucciones para crear el flujo de mensajes
"Los puntos de venta de sucursal reciben el archivo XML de reabastecimiento de existencias de HQ".
- Utilizando el proyecto de Message Broker creado anteriormente, complete las instrucciones siguientes:
- Pulse el botón derecho del ratón en el proyecto de Message Broker, pulse Nuevo > Flujo de mensajes.
- Establezca Nombre de flujo de mensajes en
FTEOutputHQ2BranchMFlow.msgflow, pulse Finalizar.
- En el Editor de flujos de mensajes, añada y renombre los nodos que
se listan en la siguiente tabla.
Tipo de nodo |
Nombre de nodo |
MQInput |
Recibir factura de reabastecimiento de existencias (MQ) |
Compute |
Preparar FTEAgent |
FTEOutput |
Transferir a sucursal (FTE) |
- Conecte los nodos tal como se describe en la siguiente tabla.
Nombre de nodo |
Terminal |
Conectar a este nodo |
Recibir factura de reabastecimiento de existencias (MQ) |
Salida |
Preparar FTEAgent |
Preparar FTEAgent |
Salida |
Transferir a sucursal (FTE)(In) |
Preparar FTEAgent |
Out1 |
Transferir a sucursal (FTE)(Archivo de finalización) |
- Personalice el nodo "Recibir factura de reabastecimiento de existencias (MQ)":
- Pulse con el botón derecho del ratón sobre el nodo "Recibir factura de reabastecimiento de existencias (MQ)" y pulse
Propiedades.
- Pulse Básicas, defina el Nombre de cola como
FTE_STOCK_INVOICE_BRANCH
- Pulse Análisis del mensaje de entrada,
establezca Dominio de mensaje
en XMLNSC.
- Pulse Avanzado,
seleccione la propiedad Orden lógico.
- Personalice el nodo "Preparar FTEAgent" :
- Pulse con el botón derecho del ratón en el nodo "Preparar FTEAgent", pulse Propiedades.
- Pulse Básicas, defina Módulo ESQL como
FTENodesSampleMFlow.FTEOutputHQ2BranchMFlow_PrepareforFTEAgent
- Defina la Modalidad de cálculo con el valor Entorno local y mensaje.
- Efectúe una doble pulsación en el nodo "Preparar FTEAgent".
- Añada las siguientes sentencias ESQL en la sección BEGIN:
-- CALL CopyMessageHeaders();
CALL CopyEntireMessage();
SET OutputLocalEnvironment.Wildcard.WildcardMatch = InputRoot.XMLNSC.StockReplenishment.BranchNumber;
IF ( InputRoot.XMLNSC.StockReplenishment.EndofData = 'true' ) THEN
PROPAGATE TO TERMINAL 'out1';
RETURN FALSE;
END IF;
RETURN TRUE;
- Personalice el nodo "Transferir a sucursal (FTE)":
- Pulse con el botón derecho del ratón en el nodo "Transferir a sucursal (FTE)", pulse
Propiedades.
- Pulse Básicas, defina el Nombre de trabajo
con un nombre de su elección, por ejemplo, Factura a FTEBRANCH123
- Defina el Agente con un nombre de
agente apropiado que utilice el formato siguiente,
MB8BROKER.FTEBRANCH123
- Si utiliza el la configuración predeterminada, defina
Gestor de colas como
MB8QMGR.
- Pulse Básicas, establezca el Directorio de entrada en
/ToBranch
- Defina el Nombre de archivo como StockReplenishmentInvoice_*.xml
- Pulse Registros y elementos y
defina Definición de registro con el valor El registro es Datos sin modificar.
Cree las propiedades del intermediario
Para ejecutar el ejemplo deberá crear las siguientes colas locales:
- FTE_STOCK_INVOICE_BRANCH
- FTE_STOCK_PROCESS_HQ
- FTE_STOCK_REQ_BRANCH
Cree los siguientes archivadores de intermediario (BAR) y añada los flujos de mensaje especificados:
- BRANCH_DRIVER_ARCHIVE.bar
- HQ_ARCHIVE.bar
- FTEInputBranch2HQMFlow.msgflow
- FTEOutputHQ2BranchMFlow.msgflow
- HQProcessingDriver.msgflow
Para obtener más información sobre la creación de un archivador de intermediario,
consulte Creación de un archivador de
intermediario.
Cree los siguientes grupos de ejecución y despliegue el archivo BAR especificado:
- FTEBRANCH123
- BRANCH_DRIVER_ARCHIVE.bar
- FTEHQ
Consulte Creación de un grupo de
ejecución y Despliegue de un
archivo de archivado de intermediario.
Volver a la página inicial del ejemplo