Utilice las instrucciones siguientes 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:
Cajones de la paleta | Tipo de nodo | Nombre de nodo |
---|---|---|
WebSphere MQ | MQInput | XML_PASSENGERQUERY_IN |
WebSphere MQ | MQOutput | XML_PASSENGERQUERY_OUT |
WebSphere MQ | MQOutput | XML_PASSENGERQUERY_FAIL_1 |
WebSphere MQ | MQOutput | XML_PASSENGERQUERY_FAIL_2 |
Transformación | Compute | DecideOnQuery |
Transformación | Compute | GetPassengerInformation |
Transformación | Compute | GetReservationsInformation |
Direccionamiento | Label | SinglePassenger |
Direccionamiento | Label | AllReservations |
Direccionamiento | RouteToLabel | RouteToLabel |
El nodo RouteToLabel direcciona dinámicamente el mensaje según el contenido del entorno local que está asociado con el 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 | DecideOnQuery | |
Catch | XML_PASSENGERQUERY_FAIL_2 | |
DecideOnQuery | Out | RouteToLabel |
SinglePassenger | Out | GetPassengerInformation |
AllReservations | Out | GetReservationsInformation |
GetPassengerInformation | Out | XML_PASSENGERQUERY_OUT |
GetReservationsInformation | Out | XML_PASSENGERQUERY_OUT |
Nombre de nodo | Página | Propiedad | Valor |
---|---|---|---|
XML_PASSENGERQUERY_IN | Básicas | Nombre de cola | XML_PASSENGERQUERY_IN (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_PASSENGERQUERY_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_PASSENGERQUERY_FAIL (Este valor es la cola local en la que el flujo de mensajes coloca el mensaje si el proceso falla.) |
XML_PASSENGERQUERY_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_PASSENGERQUERY_FAIL (Este valor es la cola local en la que el flujo de mensajes coloca el mensaje si el proceso falla.) |
DecideOnQuery | Básicas | Módulo ESQL | DecideOnQuery (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.) |
Básicas | Modalidad de cálculo | Entorno local y mensaje (Este valor hace que tanto el entorno local como el mensaje se pasen al nodo RouteToLabel después de ser modificados.) |
|
RouteToLabel | Básicas | Modalidad | Direccionar a primero (Este valor 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ásicas | Nombre de etiqueta | SinglePassenger (Este valor es el nombre del nodo Label al que el flujo de mensajes pasa el mensaje. El nombre debe coincidir con el nombre de etiqueta establecido en el nodo Decide On The Query. Consulte el ESQL en el módulo Decide_on_query.) |
AllReservations | Básicas | Nombre de etiqueta | AllReservations (Este valor es el nombre del nodo Label al que el flujo de mensajes pasa el mensaje. El nombre debe coincidir con el nombre de etiqueta establecido en el nodo Decide On The Query. Consulte el ESQL en el módulo Decide_on_query.) |
GetPassengerInformation | Básicas | Origen de datos | RESERVDB (Este valor es la base de datos que utiliza este nodo.) |
Básicas | Módulo ESQL | GetPassengerInformation (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.) |
|
Básicas | Modalidad de cálculo | Entorno local y mensaje (Este valor hace que tanto el entorno local como el mensaje se pasen al nodo XML_PASSENGERQUERY_OUT después de ser modificados.) |
|
GetReservationsInformation | Básicas | Origen de datos | RESERVDB (Este valor es la base de datos que utiliza este nodo.) |
Básicas | Módulo ESQL | GetReservationsInformation (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.) |
|
Básicas | Modalidad de cálculo | Entorno local y mensaje (Este valor 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á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_PASSENGERQUERY_OUT (Este valor 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.XMLNSC.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.XMLNSC.PassengerQuery = NULL; -- llenar el entorno con información sobre pasajeros de la base de datos SET Environment.Variables = THE (SELECT T.* FROM Database.XMLPASSENGERTB AS T WHERE T.RESERVATIONNO = InputRoot.XMLNSC.PassengerQuery.ReservationNumber); -- llenar el mensaje de salida con información de la consulta de base de datos CREATE FIELD OutputRoot.XMLNSC.PassengerInfoResponse.PassengerInfo; DECLARE outpass REFERENCE TO OutputRoot.XMLNSC.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.XMLNSC.PassengerQuery = NULL; -- llenar el entorno con información sobre reservas de la base de datos SET Environment.Variables.Reservation[] = (SELECT T.* FROM Database.XMLPASSENGERTB AS T WHERE T.FIRSTNAME = InputRoot.XMLNSC.PassengerQuery.FirstName AND T.LASTNAME = InputRoot.XMLNSC.PassengerQuery.LastName); -- llenar el mensaje de salida con ínformación de la consulta de base de datos CREATE FIELD OutputRoot.XMLNSC.PassengerInfoResponse.ListOfReservations; DECLARE outres REFERENCE TO OutputRoot.XMLNSC.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;