Utilize as instruções a seguir para criar o fluxo de mensagens XML_FlightQueryReply. Para obter instruções mais detalhadas, clique nos links fornecidos no final de cada etapa.
Antes de criar o fluxo de mensagens XML_FlightQueryReply, é necessário criar o fluxo de mensagens XML_FlightQueryOut. Para obter instruções, consulte Criando o Fluxo de Mensagens XML_FlightQueryOut.
Para criar e configurar o fluxo de mensagens XML_FlightQueryReply:
Tipo de Nó | Nome do Nó |
---|---|
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 |
Nome do Nó | 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 |
Nome do Nó | Ativo | Propriedade | Valor |
---|---|---|---|
XML_FLIGHTQUERY_FLIGHT | Básico | Nome da fila | XML_FLIGHTQUERY_FLIGHT (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_FLIGHTQUERY_PASSENGERS | Básico | Nome da fila | XML_FLIGHTQUERY_PASSENGERS (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.) |
|
Get Flight Details | Básico | Fonte de Dados | RESERVDB (Esse é o banco de dados utilizado por esse nó.) |
Básico | Módulo ESQL | GetFlightDetails (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). |
|
Get Passenger Details | Básico | Fonte de Dados | RESERVDB (Esse é o banco de dados utilizado por esse nó.) |
Básico | Módulo ESQL | GetPassengerDetails (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). |
|
XML_FLIGHTQUERY_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_FLIGHTQUERY_FAIL (É onde o fluxo de mensagens coloca a mensagem se o processamento falhar). |
XML_FLIGHTQUERY_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_FLIGHTQUERY_FAIL (É onde o fluxo de mensagens coloca a mensagem se o processamento falhar). |
MQMD_ReplyToQ | Não é necessário definir nenhuma propriedade para este nó.
O nó utiliza os campos ReplyToQ e ReplyToQMgr no cabeçalho MQMD da mensagem. |
-- ************************************************ -- * ESQL para o fluxo de mensagens 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; -- ocupar a mensagem de saída com informações sobre o vôo do banco de dados 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; -- populate the output message with passenger info from the database 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;
Agora, você criou o fluxo de mensagens XML_FlightQueryReply, que é a parte de resposta agregada do fluxo de mensagens XML_FlightQuery. O fluxo de mensagens XML_FlightQueryReply funciona com os fluxos de mensagens XML_FlightQueryOut e XML_FlightQueryIn para solicitar informações sobre um vôo específico ou sobre passageiros que reservaram assentos naquele vôo.