Utilice las siguientes instrucciones para crear el flujo de mensajes XML_FlightQueryReply. Para obtener instrucciones más detalladas, pulse en los enlaces que se proporcionan al final de cada paso.
Antes de crear el flujo de mensajes XML_FlightQueryReply, debe crear el flujo de mensajes XML_FlightQueryOut. Para obtener instrucciones, consulte Crear el flujo de mensajes XML_FlightQueryOut.
Para crear y configurar el flujo de mensajes XML_FlightQueryReply:
Cajones de la paleta | Tipo de nodo | Nombre de nodo |
---|---|---|
WebSphere MQ | MQInput | XML_FLIGHTQUERY_FLIGHT |
WebSphere MQ | MQInput | XML_FLIGHTQUERY_PASSENGERS |
WebSphere MQ | MQOutput | XML_FLIGHTQUERY_FAIL_1 |
WebSphere MQ | MQOutput | XML_FLIGHTQUERY_FAIL_2 |
WebSphere MQ | MQReply | MQMD_ReplyToQ |
Transformación | Compute | GetFlightDetails |
Transformación | Compute | GetPassengerDetails |
Nombre de nodo | Terminal | Conectar a |
---|---|---|
XML_FLIGHTQUERY_FLIGHT | Out | GetFlightDetails |
Catch | XML_FLIGHTQUERY_FAIL_1 | |
XML_FLIGHTQUERY_PASSENGERS | Out | GetPassengerDetails |
Catch | XML_FLIGHTQUERY_FAIL_2 | |
GetFlightDetails | Out | MQMD_ReplyToQ |
GetPassengerDetails | Out | MQMD_ReplyToQ |
Nombre de nodo | Página | Propiedad | Valor |
---|---|---|---|
XML_FLIGHTQUERY_FLIGHT | Básicas | Nombre de cola | XML_FLIGHTQUERY_FLIGHT (Este valor es la cola local desde la que el flujo de mensajes toma el mensaje.) |
Análisis de mensaje de entrada | Dominio del mensaje | XMLNSC : Para mensajes
XML (preparado para espacio de nombres, validación, poco uso de memoria) (Este valor indica al intermediario que utilice el analizador XML genérico.) |
|
XML_FLIGHTQUERY_PASSENGERS | Básicas | Nombre de cola | XML_FLIGHTQUERY_PASSENGERS (Este valor es la cola local desde la que el flujo de mensajes toma el mensaje.) |
Análisis de mensaje de entrada | Dominio del mensaje | XMLNSC : Para
mensajes XML (preparado para espacio de nombres, validación, poco uso de
memoria) (Este valor indica al intermediario que utilice el analizador XML genérico.) |
|
GetFlightDetails | Básicas | Origen de datos | RESERVDB (Este valor es la base de datos que utiliza este nodo.) |
Básicas | Módulo ESQL | GetFlightDetails (Este valor es el nombre del módulo ESQL que utiliza este nodo durante el proceso. El nombre ha de coincidir con el nombre que aparece en la sentencia CREATE COMPUTE en el archivo ESQL.) |
|
GetPassengerDetails | Básicas | Origen de datos | RESERVDB (Este valor es la base de datos que utiliza este nodo.) |
Básicas | Módulo ESQL | GetPassengerDetails (Este valor es el nombre del módulo ESQL que utiliza este nodo durante el proceso. El nombre ha de coincidir con el nombre que aparece en la sentencia CREATE COMPUTE en el archivo ESQL.) |
|
XML_FLIGHTQUERY_FAIL_1 | Básicas | Nombre de cola (No es necesario que especifique el nombre del gestor de colas porque la cola está definida en el mismo gestor de colas que el intermediario.) |
XML_FLIGHTQUERY_FAIL (Este valor es el lugar en que el flujo de mensajes coloca el mensaje si el proceso falla.) |
XML_FLIGHTQUERY_FAIL_2 | Básicas | Nombre de cola (No es necesario que especifique el nombre del gestor de colas porque la cola está definida en el mismo gestor de colas que el intermediario.) |
XML_FLIGHTQUERY_FAIL (Este valor es el lugar en que el flujo de mensajes coloca el mensaje si el proceso falla.) |
MQMD_ReplyToQ | Para este nodo no es necesario establecer ninguna propiedad. El nodo utiliza los campos ReplyToQ y ReplyToQMgr en la cabecera MQMD del mensaje. |
-- ************************************************** -- * ESQL para los flujos de mensajes XML_FlightQuery -- ************************************************** CREATE COMPUTE MODULE GetFlightDetails CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN SET OutputRoot = InputRoot; SET OutputRoot.XMLNSC.FlightQuery = NULL; CREATE FIELD OutputRoot.XMLNSC.Flight; DECLARE outflight REFERENCE TO OutputRoot.XMLNSC.Flight; DECLARE query REFERENCE TO InputRoot.XMLNSC.FlightQuery; -- llenar el mensaje de salida con información del vuelo de la base de datos SET OutputRoot.XMLNSC.Flight[] = (SELECT T.* FROM Database.XMLFLIGHTTB AS T WHERE T.FLIGHTNO = query.FlightNumber AND T.FLIGHTDATE = query.FlightDate); SET outflight.STARTPOINT = TRIM(outflight.STARTPOINT); SET outflight.ENDPOINT = TRIM(outflight.ENDPOINT); RETURN TRUE; END; END MODULE; CREATE COMPUTE MODULE GetPassengerDetails CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN SET OutputRoot = InputRoot; SET OutputRoot.XMLNSC.FlightQuery = NULL; CREATE FIELD OutputRoot.XMLNSC.ListOfPassengers; DECLARE outpass REFERENCE TO OutputRoot.XMLNSC.ListOfPassengers; DECLARE query REFERENCE TO InputRoot.XMLNSC.FlightQuery; -- llenar el mensaje de salida con información sobre pasajeros de la base de datos SET outpass.PassengerDetails[] = (SELECT T.* FROM Database.XMLPASSENGERTB AS T WHERE T.FLIGHTNO = query.FlightNumber AND T.FLIGHTDATE = query.FlightDate); DECLARE I INTEGER 1; DECLARE J INTEGER CARDINALITY(outpass.*[]); WHILE I <= J DO SET outpass.PassengerDetails[I].LASTNAME = TRIM(outpass.PassengerDetails[I].LASTNAME); SET outpass.PassengerDetails[I].FIRSTNAME = TRIM(outpass.PassengerDetails[I].FIRSTNAME); SET I = I + 1; END WHILE; RETURN TRUE; END; END MODULE;