WebSphere Message Broker, Versão 8.0.0.5 Sistemas operacionais: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte as informações sobre a versão mais recente do produto em IBM Integration Bus, Versão 9.0

Criando ESQL para um Nó

Crie o código ESQL para customizar o comportamento de um nó Compute, Banco de Dados, DatabaseInput ou Filter em um arquivo ESQL.

Antes de começar:

Este tópico supõe que você tenha criado um arquivo ESQL. Para obter mais informações, consulte Criando um Arquivo ESQL.

No arquivo ESQL, crie um módulo associado a um nó em seu fluxo de mensagens. Um módulo pode ser associado a apenas um nó de um determinado tipo (Compute, Banco de Dados, DatabaseInput ou Filter). No módulo, é possível criar e utilizar funções e procedimentos, além das instruções e funções fornecidas. Você também pode criar constantes e variáveis locais.

Se você tiver criado constantes, funções ou procedimentos no nível do esquema do broker, poderá referir-se a eles no módulo. Você pode definir rotinas em um nível no qual muitos módulos diferentes podem utilizá-las, o que pode economizar tempo de desenvolvimento e esforço de manutenção.

Para criar ESQL para um nó, conclua as etapas a seguir.

  1. Abra o fluxo de mensagens que inclui o nó para o qual você deseja criar ESQL. Na Visualização Desenvolvimento do Broker, expanda o aplicativo, a biblioteca ou o Projeto do Message Broker apropriado, expanda a pasta Fluxos e, em seguida, dê um clique duplo no fluxo de mensagens.

    O fluxo de mensagens se abre no editor de Fluxo de Mensagens.

  2. Clique com o botão direito do mouse em um nó Compute, Banco de Dados, DatabaseInput ou Filter e, em seguida, clique em Abrir ESQL. O arquivo ESQL padrão desse fluxo de mensagens, message_flow_name.esql, é aberto na visualização do editor. Se o arquivo ainda não existir, ele será criado, contendo um módulo estrutural para esse nó no final. O conteúdo exato depende do tipo de nó.

    Se já tiver criado o arquivo, ele é aberto na visualização do editor e um novo módulo é criado e realçado.

    O módulo a seguir é criado para um nó Compute:

    CREATE COMPUTE MODULE module_name
           CREATE FUNCTION Main() RETURNS BOOLEAN
           BEGIN
                  -- CALL CopyMessageHeaders();
                  -- CALL CopyEntireMessage();
                  RETURN TRUE;
           END;
    
           CREATE PROCEDURE CopyMessageHeaders() BEGIN
                  DECLARE I INTEGER 1;
                  DECLARE J INTEGER CARDINALITY(InputRoot.*[]);
                  WHILE I < J DO
                         SET OutputRoot.*[I] = InputRoot.*[I];
                         SET I = I + 1;
                  END WHILE;
           END;
    
           CREATE PROCEDURE CopyEntireMessage() BEGIN
                  SET OutputRoot = InputRoot;
           END;
    END MODULE;

    O nome do módulo é determinado pelo valor definido para a propriedade do nó correspondente. O nome padrão é message_flow_name_node_type. A função principal contém chamadas para dois procedimentos (descritos na lista a seguir) que são declarados no módulo do nó Compute após a função Principal. Essas chamadas são comentadas. Para incluir a função que eles fornecem, remova o comentário das linhas e coloque-as no ponto apropriado no ESQL criado para Principal.

    CopyMessageHeaders
    Esse procedimento executa loops através dos cabeçalhos contidos na mensagem de entrada e copia cada um para a mensagem de saída.
    CopyEntireMessage
    Esse procedimento copia todo o conteúdo da mensagem de entrada, incluindo os cabeçalhos, para a mensagem de saída.

    Se você criar um módulo ESQL para um nó Banco de Dados, o seguinte módulo será criado:

    CREATE DATABASE MODULE module_name
           CREATE FUNCTION Main() RETURNS BOOLEAN
           BEGIN
                   RETURN TRUE; 
           END;
    END MODULE;

    Para um nó DatabaseInput, o módulo que é criado contém três procedimentos, ReadEvents, BuildMessage e EndEvent. Cada um desses procedimentos contém um texto clichê, que descreve como o procedimento trabalha. Para obter mais informações sobre como configurar nós DatabaseInput, consulte Configurando um Nó DatabaseInput. Para um nó DatabaseInput, a primeira linha do módulo a seguir será criada:

    CREATE DATABASEEVENT MODULE nome_do_módulo

    Para um nó Filter, o módulo é idêntico ao módulo criado para o nó Banco de Dados, exceto pela primeira linha, em que se lê:

    CREATE FILTER MODULE nome_do_módulo
  3. Inclua ESQL neste arquivo para personalizar o comportamento do nó.

    Para os nós Compute, Banco de Dados ou Filter, inicie incluindo instruções ESQL na função Principal, (após a instrução BEGIN e antes de RETURN TRUE). Para os nós DatabaseInput, inclua instruções ESQL nos procedimentos ReadEvents, BuildMessage e EndEvent. É possível incluir instruções DECLARE no módulo que não esteja dentro da função Principal. Para incluir uma nova linha ao arquivo, pressione Enter.

    Para ajudá-lo a codificar ESQL válida, o editor mostra uma lista de instruções e funções válidas no ponto do cursor. Para iniciar a assistência, clique em Editar > Assistente de Conteúdo. Em alguns sistemas, é possível utilizar a combinação de teclas Ctrl+Space. Role pela lista para localizar e realçar a instrução ou função desejada e pressione Enter. O código apropriado é inserido em seu módulo.

    A assistência de conteúdo é fornecida nas seguintes áreas:
    • Palavras-chave aplicáveis, baseadas na sintaxe de linguagem.
    • Blocos de código que vão juntos, como BEGIN END;.
    • As constantes definidas, identificadores, rótulos, funções e procedimentos que podem ser utilizados, em que as rotinas podem estar em qualquer projeto, mesmo se o projeto atual não fizer referência a eles.
    • Nomes de tabelas e esquemas do banco de dados após o nome de correlação do banco de dados, nomes de colunas de tabelas em instruções INSERT, UPDATE, DELETE e SELECT e, na maioria dos casos, cláusulas WHERE dessas instruções.
    • Elementos de referência de campo de mensagem: nomes de domínios de tempo de execução (analisador), formato de expressão de tipo, identificadores de espaços de nomes, nomes de elementos qualificados por espaços de nomes e formato de expressão de índice.
    • Conteúdo da pasta Propriedades na mensagem de saída.
    • Para a instrução DECLARE NAMESPACE, destine espaços de nomes de conjuntos de mensagens e nomes de esquema.

    A assistência de conteúdo funcionará apenas se o ESQL puder ser analisado corretamente. Erros tais como END faltando após BEGIN e outras instruções de bloco não-terminadas provocam falhas no analisador e nenhuma assistência de conteúdo é fornecida. Tente a assistência de conteúdo em outras áreas em torno da instrução, quando ela não funcionar, para estreitar o ponto de erro. Alternativamente, salve o arquivo ESQL; salvar o arquivo causa a validação e todos os erros de sintaxe são gravados na visualização Problemas. Consulte os erros relatados para compreender e corrigir a sintaxe de ESQL. Se você utilizar a assistência de conteúdo para gerar a maioria das instruções (como instruções em bloco), essas instruções serão inseridas corretamente e haverá menos chances de erros.

  4. Quando concluir o trabalho com esse módulo, salve e feche o arquivo ESQL.

Também é possível abrir o arquivo ESQL diretamente e criar o módulo nesse arquivo usando o editor:

  1. Abra o arquivo ESQL no qual deseja criar o módulo.
  2. Na visualização do editor, posicione o cursor em uma nova linha e utilize a assistência de conteúdo para selecionar a estrutura de módulo apropriada para esse tipo de nó, por exemplo CREATE COMPUTE MODULE END MODULE;. Também é possível digitar esse texto, mas você deve se certificar de que o que digitar seja consistente com a estrutura necessária, mostrada anteriormente. Utilize assistência de conteúdo para obter ajuda adicional inserindo apenas ESQL válida e inserindo instruções end correspondentes (por exemplo, END MODULE;) onde elas são necessárias.
  3. Conclua a codificação do módulo conforme apropriado.

Seja qual for o método utilizado para abrir o arquivo ESQL, lembre-se de que o editor fornece funções para ajudar a codificar ESQL. Esta seção refere-se à assistência de conteúdo; outras funções estão disponíveis. Para obter informações sobre essas funções, consulte Editor ESQL.

Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última atualização:
        
        Última atualização: 2015-02-28 18:29:59


Tópico de TarefaTópico de Tarefa | Versão 8.0.0.5 | ak09033_