Criando o Fluxo de Mensagens XML_PassengerQuery

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:

  1. Crie um novo fluxo de mensagens denominado XML_PassengerQuery.
    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_PASSENGERQUERY_IN
    WebSphere MQ MQOutput XML_PASSENGERQUERY_OUT
    WebSphere MQ MQOutput XML_PASSENGERQUERY_FAIL_1
    WebSphere MQ MQOutput XML_PASSENGERQUERY_FAIL_2
    Transformação Compute DecideOnQuery
    Transformação Compute GetPassengerInformation
    Transformação Compute GetReservationsInformation
    Roteamento Rótulo SinglePassenger
    Roteamento Rótulo AllReservations
    Roteamento RouteToLabel RouteToLabel

    O nó RouteToLabel roteia a mensagem dinamicamente de acordo com o conteúdo do ambiente local associado à mensagem. O ambiente local contém a identidade de um ou mais nós de destino Label, que são identificados pela propriedade Nome do Rótulo (não pelo nome do nó).

  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_PassengerQuery.
    Nome de Nó Terminal Conectar a
    XML_PASSENGERQUERY_IN Falha 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
  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_PASSENGERQUERY_IN Básico Nome da fila XML_PASSENGERQUERY_IN
    (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_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
    (Esse valor é 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
    (Esse valor é a fila local na qual o fluxo de mensagens coloca a mensagem se o processamento falhar.)
    DecideOnQuery Básico Módulo ESQL DecideOnQuery
    (Esse valor é 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 Mensagem
    (Esse valor faz com que LocalEnvironment e a mensagem sejam transmitidos ao nó RouteToLabel depois de serem modificados).
    RouteToLabel Básico Modo Rota para Primeiro
    (Esse valor 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
    (Esse valor é o nome do nó Rótulo para o qual o fluxo de mensagens transmite a mensagem. O nome deve corresponder ao nome do rótulo configurado no nó Decide On The Query. Consulte o ESQL no módulo Decide_on_query.)
    AllReservations Básico Nome do rótulo AllReservations
    (Esse valor é o nome do nó Rótulo para o qual o fluxo de mensagens transmite a mensagem. O nome deve corresponder ao nome do rótulo configurado no nó Decide On The Query. Consulte o ESQL no módulo Decide_on_query.)
    GetPassengerInformation Básico Origem de dados RESERVDB
    (Esse valor é o banco de dados utilizado por esse nó.)
    Básico Módulo ESQL GetPassengerInformation
    (Esse valor é 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 Mensagem
    (Esse valor faz com que LocalEnvironment e a mensagem sejam transmitidos ao nó XML_PASSENGERQUERY_OUT depois de serem modificados).
    GetReservationsInformation Básico Origem de dados RESERVDB
    (Esse valor é o banco de dados utilizado por esse nó.)
    Básico Módulo ESQL GetReservationsInformation
    (Esse valor é 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 Mensagem
    (Esse valor 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
    (Esse valor é a fila local na qual o fluxo de mensagens coloca a 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 o fluxo de mensagens 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; 		-- preenche o ambiente com
    informações obre o passageiro a partir do banco de dados 		SET
    Environment.Variables = 			THE (SELECT T.* FROM
    Database.XMLPASSENGERTB AS T 				WHERE T.RESERVATIONNO =
    InputRoot.XMLNSC.PassengerQuery.ReservationNumber);
    
    		-- preenche a
    mensagem de saída com informações a partir da consulta de banco de
    dados 		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; 		-- preenche o ambiente com
    informações de reserva a partir do banco de dados 		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);
    
    		-- preenche a mensagem
    de saída com informações a partir da consulta de banco de dados
    		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;
  6. Salve o fluxo de mensagens.
Você criou o fluxo de mensagens XML_PassengerQuery, que recupera informações sobre passageiros específicos que reservaram assentos em um vôo.

Voltar para a amostra Construindo Reservas Aéreas