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:
Tipo de nodo | Nombre de nodo |
---|---|
MQInput | XML_FLIGHTQUERY_FLIGHT |
MQInput | XML_FLIGHTQUERY_PASSENGERS |
MQOutput | XML_FLIGHTQUERY_FAIL_1 |
MQOutput | XML_FLIGHTQUERY_FAIL_2 |
MQReply | MQMD_ReplyToQ |
Compute | GetFlightDetails |
Compute | GetPassengerDetails |
Nombre de nodo | Terminal | Conectar a |
---|---|---|
XML_FLIGHTQUERY_FLIGHT | Out (de salida) | GetFlightDetails |
Catch (de captación) | XML_FLIGHTQUERY_FAIL_1 | |
XML_FLIGHTQUERY_PASSENGERS | Out (de salida) | GetPassengerDetails |
Catch (de captación) | XML_FLIGHTQUERY_FAIL_2 | |
GetFlightDetails | Out (de salida) | MQMD_ReplyToQ |
GetPassengerDetails | Out (de salida) | MQMD_ReplyToQ |
Nombre de nodo | Página | Propiedad | Valor |
---|---|---|---|
XML_FLIGHTQUERY_FLIGHT | Básico | Nombre de cola | XML_FLIGHTQUERY_FLIGHT (Esta es la cola local desde la que el flujo de mensajes toma el mensaje.) |
Valor por omisión | Dominio del mensaje | XML (Indica al intermediario que utilice el analizador XML genérico.) |
|
XML_FLIGHTQUERY_PASSENGERS | Básico | Nombre de cola | XML_FLIGHTQUERY_PASSENGERS (Esta es la cola local desde la que el flujo de mensajes toma el mensaje.) |
Valor por omisión | Dominio del mensaje | XML (Indica al intermediario que utilice el analizador XML genérico.) |
|
Get Flight Details | Básico | Origen de datos | RESERVDB (Esta es la base de datos que utiliza este nodo.) |
Básico | Módulo ESQL | GetFlightDetails (Este 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.) |
|
Get Passenger Details | Básico | Origen de datos | RESERVDB (Esta es la base de datos que utiliza este nodo.) |
Básico | Módulo ESQL | GetPassengerDetails (Este 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ásico | Nombre de cola (No es necesario especificar el nombre del gestor de colas porque la cola está definida en el mismo gestor de colas que el intermediario.) |
XML_FLIGHTQUERY_FAIL (Es donde el flujo de mensajes coloca el mensaje si el proceso falla.) |
XML_FLIGHTQUERY_FAIL_2 | Básico | Nombre de cola (No es necesario especificar el nombre del gestor de colas porque la cola está definida en el mismo gestor de colas que el intermediario.) |
XML_FLIGHTQUERY_FAIL (Es donde 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 el flujo de mensajes XML_FlightQueryReply -- ******************************************************* CREATE COMPUTE MODULE GetFlightDetails CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN SET OutputRoot = InputRoot; SET OutputRoot.XML.FlightQuery = NULL; CREATE FIELD OutputRoot.XML.Flight; DECLARE outflight REFERENCE TO OutputRoot.XML.Flight; DECLARE query REFERENCE TO InputRoot.XML.FlightQuery; -- llenar el mensaje de salida con información del vuelo procedente de la base de datos SET OutputRoot.XML.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.XML.FlightQuery = NULL; CREATE FIELD OutputRoot.XML.ListOfPassengers; DECLARE outpass REFERENCE TO OutputRoot.XML.ListOfPassengers; DECLARE query REFERENCE TO InputRoot.XML.FlightQuery; -- llenar el mensaje de salida con información sobre pasajeros procedente 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;
Acaba de crear el flujo de mensajes XML_FlightQueryReply, que es la parte de respuesta agregada del flujo de mensajes XML_FlightQuery. El flujo de mensajes XML_FlightQueryReply trabaja con los flujos de mensajes XML_FlightQueryOut y XML_FlightQueryIn para solicitar información sobre un vuelo específico y los pasajeros que han reservado asientos en ese vuelo.