Utilice las siguientes instrucciones para crear el flujo de mensajes XML_PassengerQuery. Para obtener instrucciones más detalladas, pulse en los enlaces que se proporcionan al final de cada paso.
Para crear y configurar el flujo de mensajes XML_PassengerQuery:
Tipo de nodo | Nombre de nodo |
---|---|
MQInput | XML_PASSENGERQUERY_IN |
MQOutput | XML_PASSENGERQUERY_OUT |
MQOutput | XML_PASSENGERQUERY_FAIL_1 |
MQOutput | XML_PASSENGERQUERY_FAIL_2 |
Compute | DecideOnQuery |
Compute | GetPassengerInformation |
Compute | GetReservationsInformation |
Label | SinglePassenger |
Label | AllReservations |
RouteToLabel | RouteToLabel |
El nodo RouteToLabel direcciona dinámicamente el mensaje según el contenido del entorno local asociado al mensaje. El entorno local contiene la identidad de uno o más nodos Label de destino, identificados por la propiedad Nombre etiqueta (no el nombre del nodo).
Nombre de nodo | Terminal | Conectar a |
---|---|---|
XML_PASSENGERQUERY_IN | Failure (de anomalías) | XML_PASSENGERQUERY_FAIL_1 |
Out (de salida) | DecideOnQuery | |
Catch (de captación) | XML_PASSENGERQUERY_FAIL_2 | |
DecideOnQuery | Out (de salida) | RouteToLabel |
SinglePassenger | Out (de salida) | GetPassengerInformation |
AllReservations | Out (de salida) | GetReservationsInformation |
GetPassengerInformation | Out (de salida) | XML_PASSENGERQUERY_OUT |
GetReservationsInformation | Out (de salida) | XML_PASSENGERQUERY_OUT |
Nombre de nodo | Página | Propiedad | Valor |
---|---|---|---|
XML_PASSENGERQUERY_IN | Básico | Nombre de cola | XML_PASSENGERQUERY_IN (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_PASSENGERQUERY_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_PASSENGERQUERY_FAIL (Es la cola local en la que el flujo de mensajes coloca el mensaje si el proceso falla.) |
XML_PASSENGERQUERY_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_PASSENGERQUERY_FAIL (Es la cola local en la que el flujo de mensajes coloca el mensaje si el proceso falla.) |
DecideOnQuery | Básico | Módulo ESQL | DecideOnQuery (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.) |
Básico | Modalidad de cálculo | Entorno local y mensaje (Esto hace que tanto el entorno local como el mensaje se pasen al nodo RouteToLabel después de ser modificados.) |
|
RouteToLabel | Básico | Modalidad | Direccionar a primero (Esto hace que el nodo RouteToLabel empiece a procesar la lista de destinos a partir del primer elemento, en la parte superior de la lista.) |
SinglePassenger | Básico | Nombre de etiqueta | SinglePassenger (Este es el nombre del nodo Label al que el flujo de mensajes pasa el mensaje. Debe coincidir con el nombre de etiqueta en el nodo Decide On The Query. Vea el ESQL en el módulo Decide_on_query que hay a continuación.) |
AllReservations | Básico | Nombre de etiqueta | AllReservations (Este es el nombre del nodo Label al que el flujo de mensajes pasa el mensaje. Debe coincidir con el nombre de etiqueta en el nodo Decide On The Query. Vea el ESQL en el módulo Decide_on_query que hay a continuación.) |
GetPassengerInformation | Básico | Origen de datos | RESERVDB (Esta es la base de datos que utiliza este nodo.) |
Básico | Módulo ESQL | GetPassengerInformation (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.) |
|
Básico | Modalidad de cálculo | Entorno local y mensaje (Esto hace que tanto el entorno local como el mensaje se pasen al nodo XML_PASSENGERQUERY_OUT después de ser modificados.) |
|
GetReservationsInformation | Básico | Origen de datos | RESERVDB (Esta es la base de datos que utiliza este nodo.) |
Básico | Módulo ESQL | GetReservationsInformation (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.) |
|
Básico | Modalidad de cálculo | Entorno local y mensaje (Esto hace que tanto el entorno local como el mensaje se pasen al nodo XML_PASSENGERQUERY_OUT después de ser modificados.) |
|
XML_PASSENGERQUERY_OUT | 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_PASSENGERQUERY_OUT (Esta es la cola local en la que el flujo de mensajes coloca el mensaje.) |
-- ************************************************ -- * ESQL para el flujo de mensajes XML_PassengerQuery -- ******************************************************* CREATE COMPUTE MODULE DecideOnQuery CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN SET OutputRoot = InputRoot; IF InputRoot.XML.PassengerQuery.ReservationNumber <> '' THEN SET OutputLocalEnvironment.Destination.RouterList.DestinationData[1].labelname = 'SinglePassenger'; ELSE SET OutputLocalEnvironment.Destination.RouterList.DestinationData[1].labelname = 'AllReservations'; END IF; RETURN TRUE; END; END MODULE; CREATE COMPUTE MODULE GetPassengerInformation CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN SET OutputRoot = InputRoot; SET OutputRoot.XML.PassengerQuery = NULL; -- llenar el entorno con información sobre pasajeros procedente de la base de datos SET Environment.Variables = THE (SELECT T.* FROM Database.XMLPASSENGERTB AS T WHERE T.RESERVATIONNO = InputRoot.XML.PassengerQuery.ReservationNumber); -- llenar el mensaje de salida con información procedente de la consulta a la base de datos CREATE FIELD OutputRoot.XML.PassengerInfoResponse.PassengerInfo; DECLARE outpass REFERENCE TO OutputRoot.XML.PassengerInfoResponse.PassengerInfo; SET outpass.ReservationNumber = Environment.Variables.RESERVATIONNO; SET outpass.FirstName = Environment.Variables.FIRSTNAME; SET outpass.LastName = Environment.Variables.LASTNAME; SET outpass.FlightNumber = Environment.Variables.FLIGHTNO; SET outpass.Date = Environment.Variables.FLIGHTDATE; SET outpass.Class = Environment.Variables.CLASSTYPE; RETURN TRUE; END; END MODULE; CREATE COMPUTE MODULE GetReservationsInformation CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN SET OutputRoot = InputRoot; SET OutputRoot.XML.PassengerQuery = NULL; -- llenar el entorno con información sobre reservas procedente de la base de datos SET Environment.Variables.Reservation[] = (SELECT T.* FROM Database.XMLPASSENGERTB AS T WHERE T.FIRSTNAME = InputRoot.XML.PassengerQuery.FirstName AND T.LASTNAME = InputRoot.XML.PassengerQuery.LastName); -- llenar el mensaje de salida con información procedente de la consulta a la base de datos CREATE FIELD OutputRoot.XML.PassengerInfoResponse.ListOfReservations; DECLARE outres REFERENCE TO OutputRoot.XML.PassengerInfoResponse.ListOfReservations; DECLARE I INTEGER 1; DECLARE J INTEGER CARDINALITY(Environment.Variables.*[]); WHILE I <= J DO SET outres.Reservation[I].FlightNumber = Environment.Variables.Reservation[I].FLIGHTNO; SET outres.Reservation[I].Date = Environment.Variables.Reservation[I].FLIGHTDATE; SET outres.Reservation[I].Class = Environment.Variables.Reservation[I].CLASSTYPE; SET I = I + 1; END WHILE; RETURN TRUE; END; END MODULE;
Acaba de crear el flujo de mensajes XML_PassengerQuery, que recupera información sobre pasajeros específicos que han reservado asientos en un vuelo.