Utilize as instruções a seguir para criar o fluxo de mensagens XML_PassengerQuery. Para obter instruções mais detalhadas, clique nos links fornecidos no final de cada etapa.
Para criar e configurar o fluxo de mensagens XML_PassengerQuery:
Tipo de Nó | Nome do Nó |
---|---|
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 |
O nó RouteToLabel roteia dinamicamente a mensagem com base no conteúdo do LocalEnvironment associado à mensagem. O LocalEnvironment contém a identidade de um ou mais nós Label de destino, identificado pela propriedade Label Name (não o nome do nó).
Nome do Nó | Terminal | Conectar a |
---|---|---|
XML_PASSENGERQUERY_IN | Failure | 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 |
Nome do Nó | Ativo | Propriedade | Valor |
---|---|---|---|
XML_PASSENGERQUERY_IN | Básico | Nome da Fila | XML_PASSENGERQUERY_IN (Essa é a fila local de onde o fluxo de mensagens obtém a mensagem.) |
Padrão | Domínio de Mensagens | XML
(Isso instrui o intermediário a utilizar o analisador XML genérico.) |
|
XML_PASSENGERQUERY_FAIL_1 | Básico | Nome da Fila (Não é necessário especificar o nome do Gerenciador de Filas, porque a fila está definida no mesmo gerenciador de filas que o intermediário). |
XML_PASSENGERQUERY_FAIL (Essa é a fila local na qual o fluxo de mensagens coloca a mensagem se o processamento falhar). |
XML_PASSENGERQUERY_FAIL_2 | Básico | Nome da Fila (Não é necessário especificar o nome do Gerenciador de Filas, porque a fila está definida no mesmo gerenciador de filas que o intermediário). |
XML_PASSENGERQUERY_FAIL (Essa é a fila local na qual o fluxo de mensagens coloca a mensagem se o processamento falhar). |
DecideOnQuery | Básico | Módulo ESQL | DecideOnQuery (Esse é o nome do módulo ESQL utilizado por esse nó durante o processamento. O nome deve corresponder ao nome na instrução CREATE COMPUTE MODULE no arquivo ESQL). |
Básico | Modo de Computação | LocalEnvironment e Message
(Isto faz com que LocalEnvironment e a mensagem sejam transmitidos ao nó RouteToLabel depois de serem modificados). |
|
RouteToLabel | Básico | Mode | Route to First (Faz com que o nó RouteToLabel comece a processar a lista de destinos a partir do primeiro item, no início da lista). |
SinglePassenger | Básico | Nome do Rótulo | SinglePassenger (É o nome do nó Label para o qual o fluxo de mensagens transmite a mensagem. Esse nome deve corresponder ao nome do rótulo definido no nó Decide On The Query. Consulte o ESQL no módulo Decide_on_query a seguir). |
AllReservations | Básico | Nome do Rótulo | AllReservations (É o nome do nó Label para o qual o fluxo de mensagens transmite a mensagem. Esse nome deve corresponder ao nome do rótulo definido no nó Decide On The Query. Consulte o ESQL no módulo Decide_on_query a seguir). |
GetPassengerInformation | Básico | Fonte de Dados | RESERVDB (Esse é o banco de dados utilizado por esse nó). |
Básico | Módulo ESQL | GetPassengerInformation (Esse é o nome do módulo ESQL utilizado por esse nó durante o processamento. O nome deve corresponder ao nome na instrução CREATE COMPUTE MODULE no arquivo ESQL). |
|
Básico | Modo de Computação | LocalEnvironment e Message
(Isto faz com que LocalEnvironment e a mensagem sejam transmitidos ao nó XML_PASSENGERQUERY_OUT depois de serem modificados). |
|
GetReservationsInformation | Básico | Fonte de Dados | RESERVDB (Esse é o banco de dados utilizado por esse nó). |
Básico | Módulo ESQL | GetReservationsInformation (Esse é o nome do módulo ESQL utilizado por esse nó durante o processamento. O nome deve corresponder ao nome na instrução CREATE COMPUTE MODULE no arquivo ESQL). |
|
Básico | Modo de Computação | LocalEnvironment e Message
(Isto faz com que LocalEnvironment e a mensagem sejam transmitidos ao nó XML_PASSENGERQUERY_OUT depois de serem modificados). |
|
XML_PASSENGERQUERY_OUT | Básico | Nome da Fila (Não é necessário especificar o nome do gerenciador de filas, porque a fila está definida no mesmo gerenciador de filas que o intermediário). |
XML_PASSENGERQUERY_OUT (Essa é a fila local na qual o fluxo de mensagens coloca a mensagem). |
-- ************************************************ -- * ESQL para o fluxo de mensagens 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; -- populate the environment with passenger info from the database SET Environment.Variables = THE (SELECT T.* FROM Database.XMLPASSENGERTB AS T WHERE T.RESERVATIONNO = InputRoot.XML.PassengerQuery.ReservationNumber); -- populate the output message with info from the database query 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; -- populate the environment with reservations info from the database 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); -- populate the output message with info from the database query 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;
Agora você criou o fluxo de mensagens XML_PassengerQuery, que recupera informações sobre passageiros específicos que reservaram assentos em um vôo.