Criando o Fluxo de Mensagens Principal

O fluxo de mensagens principal da amostra WebSphere Service Registry and Repository (WSRR) Connectivity é fornecido, mas se preferir você mesmo criar o fluxo de mensagens, use as instruções a seguir:

  1. Crie um novo fluxo de mensagens denominado WSRR_Connectivity.msgflow no projeto do Message Broker denominado Meus Fluxos de Mensagens de Conectividade WSRR, o qual você criou juntamente com o fluxo de mensagens de serviços da Web.
    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 WSRR_IN
    Transformação Compute SetVersion
    WebServices EndpointLookup Consulta de Terminal Um
    WebServices SOAPRequest Pedido SOAP
    Transformação Compute InformFailure
    Transformação Compute InformWSResult
    Transformação Compute InformNoMatch
    WebSphere MQ MQOutput WSRR_OUT
  3. Conecte os nós conforme listado 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 os nós foram conectados juntos corretamente, consulte o diagrama em Sobre a Amostra WebSphere Service Registry and Repository Connectivity.
    Nome de Nó Terminal Conectar a esse Nó
    WSRR_IN Out SetVersion
    SetVersion Out Consulta de Terminal Um
    Consulta de Terminal Um Out Pedido SOAP
    Falha InformFailure
    NoMatch InformNoMatch
    Pedido SOAP Out InformWSResult
    FalhaWSRR_OUT
    InformFailure Out WSRR_OUT
    InformWSResult Out WSRR_OUT
    InformNoMatch Out WSRR_OUT
  4. Configure as propriedades do nó conforme listadas na tabela a seguir. Aceite os valores padrão para todas as propriedades, a menos que seja listado 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ó Página Propriedade Valor
    WSRR_IN Básico Nome da fila WSRR_IN
    Análise de Mensagem de Entrada Domínio de mensagem XMLNSC: Para mensagens XML
    SetVersion Básico Modo de computação Ambiente Local e Mensagem
    Consulta de Terminal Um Básico Nome do Tipo da Porta DemoCustomer
    Espaço de Nomes do Tipo da Porta http://demo.sr.eis.ibm.com
    Versão do Tipo da Porta 1.0
    Pedido SOAP Básico Nome do arquivo do WSDL Vá para o arquivo DemoCustomer_v10.wsdl importado anteriormente no Conjunto de Mensagens de Conectividade WSRR.
    Quando selecionado, este arquivo preenche as outras propriedades na página Básica.
    Operação de Ligação Configure esta propriedade para updateCustomer.
    Transporte HTTP URL de Serviço da Web Digite qualquer valor como, por exemplo: http://dummy.
    Essa propriedade é substituída no tempo de execução pela URL do serviço de Web específica do documento WSDL que recuperou do WebSphere Service Registry and Repository.
    WSRR_OUT Básico Nome da fila WSRR_OUT
  5. Clique duas vezes no nó SetVersion para abrir o 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.
    DECLARE soapenv NAMESPACE
    'http://schemas.xmlsoap.org/soap/envelope/';
    
    CREATE COMPUTE MODULE WSRR_Connectivity_SetVersion
      CREATE FUNCTION Main() RETURNS BOOLEAN
        BEGIN
          -- Configure o LE para a sobreposição especificada nos dados de
    entrada
          -- Note que se a mensagem de entrada não contém uma tag
    Version, o LE não será gravado       SET
    OutputLocalEnvironment.ServiceRegistryLookupProperties.Version =
    InputRoot.XMLNSC.soapenv:Envelope.soapenv:Body.Request.Version;
    
          -- Armazena o MQMD para reconstrução após o nó Resposta HTTP
          SET Environment.MQMD = InputRoot.MQMD;		
    
          CALL CopyEntireMessage();
          RETURN TRUE;
        END;
    
      CREATE PROCEDURE CopyEntireMessage() BEGIN
        SET OutputRoot = InputRoot;
      END; END MODULE;
    
    
    CREATE COMPUTE MODULE WSRR_Connectivity_InformWSResult
      CREATE FUNCTION Main() RETURNS BOOLEAN
      BEGIN
        CALL CopyEntireMessage();
        -- The response from the WebService contains a HTTP Header
        -- Remove the HTTP header and create a MQMD header in order to propagate the message to a MQ output node
        SET OutputRoot.HTTPResponseHeader = NULL;
        CREATE NEXTSIBLING OF OutputRoot.Properties DOMAIN 'MQMD';
        -- Retrieve the MQMD that was stored earlier
        SET OutputRoot.MQMD = Environment.MQMD;
        
        RETURN TRUE;
      END;
    
      CREATE PROCEDURE CopyEntireMessage() BEGIN
        SET OutputRoot = InputRoot;
      END;
    
    END MODULE;
    
    
    CREATE COMPUTE MODULE WSRR_Connectivity_InformNoMatch
      CREATE FUNCTION Main() RETURNS BOOLEAN
      BEGIN
        CALL CopyMessageHeaders();
        CREATE LASTCHILD OF OutputRoot DOMAIN 'XMLNSC';
        SET
    OutputRoot.XMLNSC.(XMLNSC.XmlDeclaration)*.(XMLNSC.Attribute)Version
    = '1.0';
        SET
    OutputRoot.XMLNSC.(XMLNSC.XmlDeclaration)*.(XMLNSC.Attribute)Encoding
    = 'UTF-8'; 		
        CREATE LASTCHILD OF OutputRoot.XMLNSC NAME 'LookupResults';
        SET OutputRoot.XMLNSC.LookupResults.WSRR_Request =
    InputRoot.XMLNSC.WSRR_Request;
        SET OutputRoot.XMLNSC.LookupResults.ServiceRegistry = 'Nenhum
    serviço correspondente!';
    
        RETURN TRUE;
      END;
    
      CREATE PROCEDURE CopyMessageHeaders() BEGIN
        DECLARE I INTEGER 1;
        DECLARE J INTEGER;
        SET J = CARDINALITY(InputRoot.*[]);
        WHILE I < J DO
          SET OutputRoot.*[I] = InputRoot.*[I];
          SET I = I + 1;
        END WHILE;
      END;
    
    END MODULE;
    
    
    CREATE COMPUTE MODULE WSRR_Connectivity_InformFailure
      CREATE FUNCTION Main() RETURNS BOOLEAN
      BEGIN
        CALL CopyMessageHeaders();
        CREATE LASTCHILD OF OutputRoot DOMAIN 'XMLNSC';
        SET
    OutputRoot.XMLNSC.(XMLNSC.XmlDeclaration)*.(XMLNSC.Attribute)Version
    = '1.0';
        SET
    OutputRoot.XMLNSC.(XMLNSC.XmlDeclaration)*.(XMLNSC.Attribute)Encoding
    = 'UTF-8'; 		
        CREATE LASTCHILD OF OutputRoot.XMLNSC NAME 'LookupResults';
        SET OutputRoot.XMLNSC.LookupResults.WSRR_Request =
    InputRoot.XMLNSC.WSRR_Request;
        SET OutputRoot.XMLNSC.LookupResults.ServiceRegistry = 'Falha na
    recuperação do serviço do WSRR!';
        SET OutputRoot.XMLNSC.LookupResults.Exception = InputExceptionList;		
    		
        RETURN TRUE;
      END;
    
      CREATE PROCEDURE CopyMessageHeaders() BEGIN
        DECLARE I INTEGER 1;
        DECLARE J INTEGER;
        SET J = CARDINALITY(InputRoot.*[]);
        WHILE I < J DO
          SET OutputRoot.*[I] = InputRoot.*[I];
          SET I = I + 1;
        END WHILE;
      END;
    
    END MODULE;
    
  6. Salve o arquivo ESQL.
  7. Certifique-se de que a propriedade do módulo ESQL no nó SetVersion aponta para o módulo WSRR_Connectivity_SetVersion.
  8. Repita a etapa precedente para os nós a seguir, configurando a propriedade do módulo ESQL para o módulo correspondente no arquivo ESQL:
  9. Salve o fluxo de mensagens.

Agora você pode criar as filas e executar seu fluxo, consulte Criando as filas.

Voltar a Construindo a Amostra WebSphere Service Registry and Repository Connectivity