Criando o Fluxo de Mensagens XML_FlightQueryReply

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:

  1. Crie um novo fluxo de mensagens denominado XML_FlightQueryReply.
    Para obter instruções, consulte Criando um fluxo de mensagens na documentação do WebSphere Message Broker.
  2. No editor de Fluxo de Mensagens, inclua e renomeie os nós listados na tabela a seguir.
    Para obter instruções, consulte Incluindo um nó do fluxo de mensagens na documentação do WebSphere Message Broker.
    Gavetas de Paleta Tipo de Nó Nome de Nó
    WebSphere MQ MQInput XML_FLIGHTQUERY_FLIGHT
    WebSphere MQ MQInput XML_FLIGHTQUERY_PASSENGERS
    WebSphere MQ MQOutput XML_FLIGHTQUERY_FAIL_1
    WebSphere MQ MQOutput XML_FLIGHTQUERY_FAIL_2
    WebSphere MQ MQReply MQMD_ReplyToQ
    Transformação Compute GetFlightDetails
    Transformação Compute GetPassengerDetails
  3. Conecte os nós conforme mostrado na tabela a seguir.
    Para obter instruções, consulte Conectando nós de fluxo de mensagens na documentação do WebSphere Message Broker.
    Para verificar se você conectou os nós corretamente, consulte o diagrama em Sobre o fluxo de mensagens XML_FlightQueryReply.
    Nome de 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
  4. Configure as propriedades do nó, conforme mostradas na tabela a seguir. Aceite os valores padrão para todas as propriedades, a menos que seja mostrado um valor alternativo na tabela.
    Para obter instruções, consulte Configurando um nó do fluxo de mensagens na documentação do WebSphere Message Broker.
    Nome de Nó Ativo Propriedade Valor
    XML_FLIGHTQUERY_FLIGHT Básico Nome da fila XML_FLIGHTQUERY_FLIGHT
    (Esse valor é a fila local a partir da qual o fluxo de mensagens obtém a mensagem.)
    Análise de Mensagem de Entrada Domínio de mensagem XMLNSC: Para mensagens XML (conhecimento de espaço de nomes, validação, baixa utilização de memória)
    (Esse valor instrui o intermediário a utilizar o analisador XML genérico.)
    XML_FLIGHTQUERY_PASSENGERS Básico Nome da fila XML_FLIGHTQUERY_PASSENGERS
    (Esse valor é a fila local a partir da qual o fluxo de mensagens obtém a mensagem.)
    Análise de Mensagem de Entrada Domínio de mensagem XMLNSC: Para mensagens XML (conhecimento de espaço de nomes, validação, baixa utilização de memória)
    (Esse valor instrui o intermediário a utilizar o analisador XML genérico.)
    GetFlightDetails Básico Origem de dados RESERVDB
    (Esse valor é o banco de dados utilizado por esse nó).
    Básico Módulo ESQL GetFlightDetails
    (Esse valor é o nome do módulo ESQL usado por esse nó durante o processamento. O nome deve corresponder ao nome na instrução CREATE COMPUTE MODULE no arquivo ESQL).
    GetPassengerDetails Básico Origem de dados RESERVDB
    (Esse valor é o banco de dados utilizado por esse nó).
    Básico Módulo ESQL GetPassengerDetails
    (Esse valor é o nome do módulo ESQL usado 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
    (Esse valor é 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
    (Esse valor é onde o fluxo de mensagens coloca a mensagem se o processamento falhar.)
    MQMD_ReplyToQ Não é necessário configurar nenhuma propriedade para esse nó.
    O nó usa os campos ReplyToQ e ReplyToQMgr no cabeçalho MQMD da mensagem.
  5. No projeto Fluxos de Mensagens de Linha Aérea XML, dê um clique duplo no arquivo ESQL para abri-lo no editor ESQL. Copie e cole os seguintes módulos de código ESQL no arquivo ESQL e salve o arquivo. Para obter mais informações, consulte Desenvolvendo ESQL na documentação do WebSphere Message Broker.
    -- ************************************************ -- * ESQL
    para os fluxos de mensagens XML_FlightQuery --
    *****************************************************
    
    CREATE COMPUTE MODULE GetFlightDetails 	CREATE FUNCTION Main()
    RETURNS BOOLEAN 	BEGIN 		SET OutputRoot = InputRoot; 		SET
    OutputRoot.XMLNSC.FlightQuery = NULL; 		CREATE FIELD
    OutputRoot.XMLNSC.Flight; 		DECLARE outflight REFERENCE TO
    OutputRoot.XMLNSC.Flight; 		DECLARE query REFERENCE TO
    InputRoot.XMLNSC.FlightQuery;		 		-- preenche a mensagem de saída com
    informações sobre o vôo a partir do banco de dados 		SET
    OutputRoot.XMLNSC.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.XMLNSC.FlightQuery = NULL;		 		CREATE FIELD
    OutputRoot.XMLNSC.ListOfPassengers; 		DECLARE outpass REFERENCE TO
    OutputRoot.XMLNSC.ListOfPassengers; 		DECLARE query REFERENCE TO
    InputRoot.XMLNSC.FlightQuery; 		-- preenche a mensagem de saída com
    informações sobre o passageiro a partir do banco de dados 		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;
    
  6. Salve o fluxo de mensagens.
Você criou o fluxo de mensagens XML_FlightQueryReply, que é a 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.

Voltar para a amostra Construindo Reservas Aéreas