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.

  1. 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.
    1. Pulse el botón derecho del ratón en el proyecto de Message Broker, pulse Nuevo > Flujo de mensajes.
    2. Defina el Nombre de flujo de mensajes como Branch2HQDriver.msgflow y pulse Finalizar.
  2. 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)
  3. 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)
  4. Personalice el nodo "Datos de ventas de Sucursal (MQ)":
    1. Pulse con el botón derecho del ratón sobre el nodo "Datos de ventas de Sucursal (MQ)", pulse Propiedades.
    2. Pulse Básicas y defina el Nombre de cola como FTE_STOCK_REQ_BRANCH
    3. Pulse Análisis del mensaje de entrada, establezca Dominio de mensaje en BLOB.
    4. Pulse Avanzado, seleccione la propiedad Orden lógico.
  5. Personalice el nodo "Preparar FTEAgent" :
    1. Pulse con el botón derecho del ratón en el nodo "Preparar FTEAgent", pulse Propiedades.
    2. Pulse Básicas y defina Módulo ESQL como FTENodesSampleMFlow.Branch2HQDriver_PrepareforFTEAgent
    3. Defina Modalidad de cálculo como Entorno local y mensaje.
    4. Efectúe una doble pulsación en el nodo "Preparar FTEAgent".
    5. 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);
      
  6. Personalice el nodo "Transferir archivo a HQ (FTE)":
    1. Pulse con el botón derecho del ratón en el nodo "Transferir archivo a HQ (FTE)", pulse Propiedades.
    2. Pulse Básicas y defina el Nombre de trabajo con un nombre de su elección, por ejemplo, Branch123
    3. Defina el Agente con un nombre de agente apropiado en el formato siguiente, MB8BROKER.FTEHQ
    4. Si utiliza el la configuración predeterminada, defina Gestor de colas como MB8QMGR
    5. Defina el Directorio de entrada como /ToHQ
    6. Defina el Nombre de archivo como StockReplenishmentRequest_*.xml
    7. 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".

  1. Utilizando el proyecto de Message Broker creado anteriormente, complete las instrucciones siguientes:
    1. Pulse el botón derecho del ratón en el proyecto de Message Broker, pulse Nuevo > Flujo de mensajes.
    2. Defina el Nombre de flujo de mensajes como FTEInputBranch2HQMFlow.msgflow y pulse Finalizar.
  2. 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)
  3. 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)
  4. Personalice el nodo "Recibir archivo de sucursal (FTE)":
    1. Pulse con el botón derecho del ratón sobre el nodo "Recibir archivo de sucursal (FTE)", pulse Propiedades.
    2. Pulse Básicas, defina el Filtro de nombre de archivo como StockReplenishmentRequest_*.xml.
    3. Defina Acción si el proceso es satisfactorio con el valor Suprimir.
    4. Pulse Análisis del mensaje de entrada, establezca Dominio de mensaje en XMLNSC.
    5. Pulse Registros y elementos, defina Detección de registros como Secuencia de registro analizada.
  5. Personalice el nodo "Conservar detalles de sucursal":
    1. Pulse con el botón derecho del ratón en el nodo "Conservar detalles de sucursal", pulse Propiedades.
    2. Pulse Básicas, defina Módulo ESQL como FTENodesSampleMFlow.FTEInputBranch2HQMFlow_PreserveBranchDetails
    3. Defina la Modalidad de cálculo con el valor Entorno local y mensaje.
    4. Efectúe una doble pulsación en el nodo "Conservar detalles de sucursal".
    5. 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;
  6. Personalice el nodo "Marcar el fin de los datos de sucursal":
    1. Pulse con el botón derecho del ratón en el nodo "Marcar el fin de los datos de sucursal", pulse Propiedades.
    2. Pulse Básicas, defina Módulo ESQL como FTENodesSampleMFlow.FTEInputBranch2HQMFlow_MarkEndofBranchData
    3. Defina la Modalidad de cálculo con el valor Entorno local y mensaje.
    4. Efectúe una doble pulsación en el nodo "Marcar el fin de los datos de sucursal".
    5. 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';
  7. Personalice el nodo "Eliminar duplicación (Resequence)":
    1. Pulse con el botón derecho del ratón en el nodo "Eliminar duplicación (Resequence)", pulse Propiedades.
    2. Pulse Básicas, defina la Vía de acceso de número de secuencia como $LocalEnvironment/StockReplenishment/SequenceNumber
    3. Defina Vía de acceso de identificador de grupo de secuencia como $LocalEnvironment/Wildcard/WildcardMatch
    4. En Fin de definición de secuencia, defina Predicado como $InputRoot/XMLNSC/StockReplenishment/EndofData="true"
  8. Personalice el nodo "Enviar a App de reabastecimiento de HQ (MQ)":
    1. Pulse con el botón derecho del ratón sobre el nodo "Enviar a App de reabastecimiento de HQ (MQ)", pulse Propiedades.
    2. Si utiliza el la configuración predeterminada, pulse Básicas y defina el Nombre del Gestor de colas como MB8QMGR.
    3. 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".

  1. Utilizando el proyecto de Message Broker creado anteriormente, complete las instrucciones siguientes:
    1. Pulse el botón derecho del ratón en el proyecto de Message Broker, pulse Nuevo > Flujo de mensajes.
    2. Defina Nombre de flujo de mensajes como HQProcessingDriver.msgflow y pulse Finalizar.
  2. 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)
  3. 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)
  4. Personalice el nodo "Recibir datos de ventas (MQ)":
    1. Pulse con el botón derecho del ratón en el nodo "Entrada de app de sucursal", pulse Propiedades.
    2. Pulse Básicas, defina el Nombre de cola como FTE_STOCK_PROCESS_HQ
    3. Pulse Análisis del mensaje de entrada, establezca Dominio de mensaje en XMLNSC.
    4. Pulse Avanzado, seleccione la propiedad Orden lógico.
  5. Personalice el nodo "Reabastecimiento según demanda":
    1. Pulse con el botón derecho del ratón en el nodo "Reabastecimiento según demanda", pulse Propiedades.
    2. Pulse Básicas, defina Módulo ESQL como FTENodesSampleMFlow.HQProcessingDriver_DemandDrivenReplenishment
    3. Defina la Modalidad de cálculo con el valor Entorno local y mensaje.
    4. Efectúe una doble pulsación en el nodo "Reabastecimiento según demanda".
    5. 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;
  6. Personalice el nodo "Enviar factura de reabastecimiento de existencias (MQ)":
    1. Pulse con el botón derecho del ratón sobre el nodo "Enviar factura de reabastecimiento de existencias (MQ)", pulse Propiedades.
    2. Si utiliza el la configuración predeterminada, pulse Básicas y defina el Nombre del Gestor de colas como MB8QMGR.
    3. 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".

  1. Utilizando el proyecto de Message Broker creado anteriormente, complete las instrucciones siguientes:
    1. Pulse el botón derecho del ratón en el proyecto de Message Broker, pulse Nuevo > Flujo de mensajes.
    2. Establezca Nombre de flujo de mensajes en FTEOutputHQ2BranchMFlow.msgflow, pulse Finalizar.
  2. 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)
  3. 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)
  4. Personalice el nodo "Recibir factura de reabastecimiento de existencias (MQ)":
    1. Pulse con el botón derecho del ratón sobre el nodo "Recibir factura de reabastecimiento de existencias (MQ)" y pulse Propiedades.
    2. Pulse Básicas, defina el Nombre de cola como FTE_STOCK_INVOICE_BRANCH
    3. Pulse Análisis del mensaje de entrada, establezca Dominio de mensaje en XMLNSC.
    4. Pulse Avanzado, seleccione la propiedad Orden lógico.
  5. Personalice el nodo "Preparar FTEAgent" :
    1. Pulse con el botón derecho del ratón en el nodo "Preparar FTEAgent", pulse Propiedades.
    2. Pulse Básicas, defina Módulo ESQL como FTENodesSampleMFlow.FTEOutputHQ2BranchMFlow_PrepareforFTEAgent
    3. Defina la Modalidad de cálculo con el valor Entorno local y mensaje.
    4. Efectúe una doble pulsación en el nodo "Preparar FTEAgent".
    5. 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;
            
  6. Personalice el nodo "Transferir a sucursal (FTE)":
    1. Pulse con el botón derecho del ratón en el nodo "Transferir a sucursal (FTE)", pulse Propiedades.
    2. Pulse Básicas, defina el Nombre de trabajo con un nombre de su elección, por ejemplo, Factura a FTEBRANCH123
    3. Defina el Agente con un nombre de agente apropiado que utilice el formato siguiente, MB8BROKER.FTEBRANCH123
    4. Si utiliza el la configuración predeterminada, defina Gestor de colas como MB8QMGR.
    5. Pulse Básicas, establezca el Directorio de entrada en /ToBranch
    6. Defina el Nombre de archivo como StockReplenishmentInvoice_*.xml
    7. 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:

Cree los siguientes archivadores de intermediario (BAR) y añada los flujos de mensaje especificados:

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:

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