Nó Compute

Este tópico contém as seguintes seções:

Finalidade

Utilize o nó Compute para construir uma ou mais novas mensagens de saída. Estas mensagens de saída podem ser criadas modificando as informações fornecidas na mensagem de entrada ou as mensagens de saída podem ser criadas utilizando apenas novas informações que podem (ou não) ser obtidas de um banco de dados. Os elementos da mensagem de entrada (por exemplo, cabeçalhos, campos de cabeçalhos e dados do corpo), seu ambiente associado e sua lista de exceções podem ser utilizados para criar a nova mensagem de saída.

Você especifica como as novas mensagens serão criadas, codificando ESQL no arquivo de recursos ESQL do fluxo de mensagens. Você pode criar e modificar os componentes da mensagem utilizando expressões ESQL e pode consultar elementos da mensagem de entrada e dados de um banco de dados externo. Uma expressão pode utilizar os operadores aritméticos, operadores de texto (por exemplo, concatenação), operadores lógicos e outras funções internas.

Utilize o nó Compute para:

  • Criar uma nova mensagem utilizando um conjunto de instruções de designação
  • Copiar mensagens entre analisadores
  • Converter mensagens de um conjunto de códigos para outro
  • Transformar mensagens de um formato para outro

Você define as instruções ESQL em um módulo associado a esse nó no ESQL (arquivo .esql) associado a esse fluxo de mensagens.Você deve criar esse arquivo para concluir a definição do fluxo de mensagens.

O nó Compute é representado no workbench pelo seguinte ícone:

 Ícone do nó Compute

Utilizando este nó em um fluxo de mensagens

Veja as amostras a seguir para consultar sobre como utilizar este nó:

Considere um fluxo de mensagens no qual você deseja atribuir a cada pedido recebido um identificador exclusivo para finalidades de auditoria. O nó Compute não modifica sua mensagem de entrada; ele cria uma cópia nova e modificada da mensagem como uma mensagem de saída. Você pode utilizar o nó Compute para inserir um identificador exclusivo para seu pedido na mensagem de saída, que pode ser utilizado por nós subseqüentes no fluxo de mensagens.

Configurando o Nó Compute

Quando você tiver colocado uma instância do nó Compute em um fluxo de mensagens, poderá configurá-lo. Clique com o botão direito do mouse na visualização do editor clique em Propriedades. As propriedades básicas do nó são exibidas.

Todas as propriedades obrigatórias, para as quais é necessário inserir um valor (aquelas que não possuem um valor padrão definido) são marcadas com um asterisco no diálogo das propriedades.

Configure o nó Compute por:

  1. Definindo a Interação do Banco de Dados
  2. Especificando o ESQL
  3. Definindo o Modo
  4. Validando Mensagens

Quando tiver concluído sua configuração, clique em Aplicar. Isso faz alterações no nó Compute sem fechar o diálogo de propriedades. Clique em OK para aplicar as alterações e fechar o diálogo de propriedades. Clique em Cancelar para fechar o diálogo e descartar todas as alterações feitas nas propriedades.

Definindo a Interação do Banco de Dados

Se desejar acessar um banco de dados a partir deste nó:

  • Especifique em Origem de Dados o nome através do qual o banco de dados apropriado será é conhecido no sistema no qual o fluxo de mensagens será executado. O intermediário conecta-se às informações de ID de usuário e senha especificadas no comandomqsicreatebroker, mqsichangebroker oumqsisetdbparms.

    Em sistemas z/OS, o intermediário utiliza o ID da tarefa iniciada ou o ID do usuário e a senha que foram especificados no comando JCL mqsisetdbparms de BIPSDBP, no conjunto de dados de customização <hlq>.SBIPPROC.

  • Selecione a definição Transação no menu drop down. Os valores são:
    • Automático (o padrão).O fluxo de mensagens, do qual o nó Compute faz parte, será consolidado se for bem-sucedido. Ou seja, as ações definidas no módulo ESQL são executadas na mensagem e ela continua no fluxo de mensagens. Se o fluxo de mensagens falhar, ele será revertido. Se você escolher Automático, a capacidade de consolidar ou reverter a ação do nó Compute no banco de dados dependerá do sucesso ou da falha do fluxo de mensagens inteiro.
    • Consolidar.Se desejar consolidar a ação do nó Compute no banco de dados, independentemente do êxito ou defeito do fluxo de mensagens como um todo, selecione Consolidar.A atualização do banco de dados será consolidada mesmo que o próprio fluxo de mensagens falhar.

    O valor escolhido é implementado para uma ou mais tabelas do banco de dados que você incluiu: você não pode selecionar um valor diferente para cada tabela.

  • Selecione Básico no navegador do diálogo de propriedades e selecione ou limpe as duas caixas de opções:
    • Se desejar que mensagens de aviso do banco de dados sejam tratadas como erros e desejar que o nó propague a mensagem de saída para o terminal com falha, selecione a caixa de opções Tratar Avisos como Erros. A caixa é inicialmente limpa.

      Quando selecionar a caixa, o nó tratará todos os códigos de retorno positivos no banco de dados como erros e gerará exceções da mesma forma que faria para os erros negativos ou mais sérios.

      Se você não selecionar a caixa, o nó tratará avisos como códigos de retorno normais e não gerará nenhuma exceção. O aviso mais significativo gerado é não-localizado, que pode ser tratado como um código de retorno normal de forma segura na maioria das circunstâncias.

    • Se você desejar que o intermediário gere uma exceção quando for detectado um erro do banco de dados, selecione a caixa de opções Emitir Exceção em Erro do Banco de Dados. A caixa é inicialmente selecionada.

      Se você limpar a caixa, deverá incluir o ESQL para verificar erros do banco de dados que podem ser retornados após cada chamada do banco de dados feita (pode utilizar SQLCODE e SQLSTATE para fazer isso). Se ocorrer um erro, será necessário tratá-lo no fluxo de mensagens para assegurar a integridade do intermediário e do banco de dados: o erro será ignorado se você não tratá-lo pelo seu próprio processamento, porque você escolheu não chamar o tratamento de erros padrão pelo intermediário. Por exemplo, você pode incluir a instrução ESQL THROW para emitir uma exceção neste nó, ou pode utilizar o nó Throw para gerar sua própria exceção posteriormente no fluxo de mensagens.

Especificando o ESQL

Codifique as instruções ESQL para personalizar o comportamento do nó Compute. Por exemplo, você pode personalizá-lo para criar uma nova mensagem ou mensagens de saída, utilizando a mensagem de entrada ou o conteúdo do banco de dados (inalterado ou modificado), ou novos dados. Por exemplo, talvez você queira modificar um valor na mensagem de entrada, incluindo um valor de um banco de dados e armazenar o resultado em um campo na mensagem de saída.

Codifique as instruções ESQL que você deseja em um arquivo ESQL associado ao fluxo de mensagens no qual você incluiu essa instância no nó Compute. O arquivo ESQL, que, por padrão, tem o nome <nome_fluxo_mensagem>.esql, contém ESQL para cada nó no fluxo de mensagens necessário. Cada parte do código que está relacionada a um nó específico é conhecida como um módulo.

Se um arquivo ESQL ainda não existir para esse fluxo de mensagens, clique com o botão direito do mouse no nó Compute e clique em Abrir ESQL.Isso cria e abre um novo arquivo ESQL na visualização do editor ESQL.

Se o arquivo já existir, clique no botão Procurar ao lado da propriedade Módulo ESQL. Isso exibe o diálogo Seleção de Módulo, que lista os módulos de nó Compute disponíveis definidos nos arquivos ESQL que podem ser acessados por este fluxo de mensagens (os arquivos ESQL podem ser definidos em outros projetos dependentes). Selecione o módulo apropriado e clique em OK.Se não houver módulos adequados disponíveis, a lista estará vazia.

Se o módulo que você especificou não existir, ele será criado para você e o editor posicionará o arquivo para exibi-lo. Se o arquivo e o módulo já existirem, o editor posicionará o arquivo e exibirá e realçará o módulo correto.

Se preferir, você pode abrir o arquivo ESQL apropriado no Navegador de Recursos e selecionar este nó na visualização Contorno.

Se for criada uma estrutura de módulo para esse nó em um arquivo novo ou existente, ela consistirá no seguinte ESQL. O nome do módulo padrão será mostrado neste exemplo:

CREATE COMPUTE MODULE <flow_name>_Compute
       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;
Nota: Se desejar implementar o fluxo de mensagens que contém esse nó Compute em um intermediário cuja versão é anterior à versão 5.0, você deve fazer as seguintes alterações no ESQL na estrutura do módulo mostrada a seguir:
  • Substitua
    DECLARE I INTEGER 1;
    por
    DECLARE I INTEGER; SET I=1;
  • Substitua
    DECLARE J INTEGER CARDINALITY(InputRoot.*[]);
    por
    DECLARE J INTEGER; SET J=CARDINALITY(InputRoot.*[]);

Se você criar seu próprio módulo ESQL, deverá criar essa estrutura exatamente como mostrado, exceto para as chamadas e definições de procedimentos (descritas a seguir). Você pode alterar o nome padrão, mas assegure-se de que o nome que você especifica corresponde ao nome da propriedade de nó correspondente Módulo ESQL. Para que o nome do módulo inclua um ou mais espaços, coloque o nome entre aspas na propriedade Módulo ESQL.

Adicione seu próprio ESQL para personalizar esse nó após a instrução BEGIN, que segue CREATE FUNCTION e antes de RETURN TRUE. Você pode utilizar duas chamadas incluídas na estrutura, para os procedimentos CopyEntireMessage e CopyMessageHeaders.

Esses procedimentos, definidos depois da função Principal, fornecem funções comuns que podem ser necessárias na manipulação de mensagens. As chamadas na estrutura são colocadas como comentário; remova as marcas de comentário para utilizar o procedimento. Se não desejar utilizar um procedimento, remova a chamada e a definição do procedimento do módulo.

Nos releases anteriores, as funções executadas por esses procedimentos eram fornecidas pelos dois botões de opções equivalentes ao nó Compute no diálogo de propriedades.

Também é possível criar um arquivo ESQL utilizando o Arquivo > Novo > Arquivo ESQL do Fluxo de Mensagens.

Definindo o Modo

Quando selecionar o Modo Calcular, especifique se os componentes Mensagem, Ambiente Local (anteriormente especificado como Lista de Destino) e Lista de Exceções, que são gerados no nó ou estão contidos na mensagem que chega, serão utilizados por padrão na mensagem de saída.

Este padrão é utilizado quando a mensagem transformada é roteada para o terminal de Saída, na conclusão do processamento do nó. O padrão também será utilizado sempre que uma instrução PROPAGATE não especificar a composição de sua mensagem de saída.

Os componentes que não estão incluídos em sua seleção serão transmitidos inalterados; mesmo que você modifique estes componentes, as atualizações serão locais para este nó.

O componente Ambiente da árvore de mensagens não é afetado pela configuração do modo. Seu conteúdo, se houver, será transmitido deste nó na mensagem de saída.

Você deve definir essa propriedade para refletir corretamente o formato da mensagem de saída requerido. Se você selecionar uma opção (ou aceitar o valor padrão) que não inclui uma parte da mensagem específica, essa parte da mensagem não será incluída em nenhuma mensagem de saída construída.

As opções são explicadas na tabela a seguir.

Modo Descrição
Mensagem (o padrão) A mensagem é gerada ou passada pelo nó Compute conforme é modificada no nó.
Ambiente Local A estrutura em árvore Ambiente Local é gerada ou passada pelo nó Compute conforme é modificada no nó.
Ambiente Local e Mensagem A estrutura em árvore Ambiente Local e a mensagem são geradas ou passadas pelo nó Compute conforme são modificadas pelo nó.
Exceção A Lista de Exceções é gerada ou passada pelo nó Compute conforme é modificada pelo nó.
Exceção e Mensagem A Lista de Exceções e a mensagem são geradas ou passadas pelo nó Compute conforme são modificadas pelo nó.
Exceção e Ambiente Local A Lista de Exceções e estrutura em árvore Ambiente Local são geradas ou passadas pelo nó Compute conforme são modificadas pelo nó.
Todos A mensagem, Lista de Exceções e Ambiente Local são geradas ou passadas pelo nó Compute conforme são especificadas pelo nó.

Como o nó Compute possui a mensagem de entrada e de saída, você poderá utilizar ESQL para se referir aos campos em qualquer uma delas. Você também pode trabalhar com InputLocalEnvironment e OutputLocalEnvironment e InputExceptionList e OutputExceptionList, e também com os corpos das mensagens de entrada e de saída.

Validando Mensagens

Configure as propriedades de validação para definir como a mensagem produzida pelo nó Compute será validada. Observe que estas propriedades não causam a validação da mensagem de entrada. É esperado que, se tal validação for requerida, ela já tenha sido executada pelo nó input ou por um nó de validação anterior.

Para obter mais detalhes, consulte Validando Mensagens e Propriedades de Validação para Mensagens no Domínio MRM.

Terminais e Propriedades

Os terminais do nó Compute são descritos na tabela a seguir.

Terminal Descrição
Entrada O terminal de entrada que aceita a mensagem para processamento pelo nó.
Defeito O terminal de saída para o qual a mensagem de entrada será roteada, se ocorrer uma exceção não tratada durante a computação.
Saída O terminal de saída para o qual a mensagem transformada será roteada quando o processamento no nó estiver concluído. A mensagem transformada também pode ser roteada para este terminal por uma instrução PROPAGATE.
Out1 O primeiro terminal de saída alternativo para o qual a mensagem transformada pode ser roteada por uma instrução PROPAGATE.
Out2 O segundo terminal de saída alternativo para o qual a mensagem transformada pode ser roteada por uma instrução PROPAGATE.
Out3 O terceiro terminal de saída alternativo para o qual a mensagem transformada pode ser roteada por uma instrução PROPAGATE.
Out4 O quarto terminal de saída alternativo para o qual a mensagem transformada pode ser roteada por uma instrução PROPAGATE.
Nota: Consulte Instrução PROPAGATE para obter a sintaxe da instrução PROPAGATE.

As tabelas a seguir descrevem as propriedades do nó; a coluna com cabeçalho M indica se a propriedade é obrigatória (marcado com um asterisco no diálogo de propriedades caso seja necessário digitar um valor quando nenhum padrão for definido), a coluna com cabeçalho C indica se a propriedade é configurável (você poderá alterar o valor quando incluir o fluxo de mensagens no arquivo bar para implementá-lo).

As propriedades Básicas do nó Compute são descritas na tabela a seguir.

Propriedade M C Padrão Descrição
Fonte de Dados Não Sim   O nome da origem de dados ODBC para o banco de dados no qual residem as tabelas as quais foram referidas no arquivo ESQL associado a esse fluxo de mensagens (identificado na propriedade Módulo ESQL). Você pode especificar apenas uma origem de dados para o nó.
Transação Sim Não Automático O modo de transação para o nó. Ele pode ser Automático ou Consolidação. Isso é válido apenas se você tiver selecionado uma tabela de banco de dados para a entrada.
Módulo ESQL Sim Não Compute O nome do módulo no arquivo ESQL que contém as instruções a serem executadas no banco de dados e nas mensagens de entrada e de saída.
Modo de Computação Sim Não Mensagem Escolher entre:
  • Mensagem
  • LocalEnvironment
  • LocalEnvironment e Mensagem
  • Exceção
  • Exceção e Mensagem
  • Exceção e Ambiente Local
  • Todos
Eles são explicados em Definindo o Modo.
Tratar Avisos como Erros Sim Não Não selecionada Trata aviso SQL do banco de dados como erros. Se você selecionar a caixa de opções, esta ação é executada.
Exceção emitida em erro do banco de dados Sim Não Selecionada Erros de banco de dados fazem com que o intermediário lance uma exceção. Se você selecionar a caixa de opções, esta ação é executada.

As propriedades de Validação do nó Compute são descritas na tabela a seguir.

Propriedade M C Padrão Descrição
Validar Sim Sim Nenhum Determina se a validação ocorrerá. Os valores válidos são Nenhum, Conteúdo e Valor, Conteúdo e Herdar.
Ação de Defeito Sim Não Exceção O que acontece se ocorrer um defeito de validação. Você poderá configurar esta propriedade apenas se Validar estiver configurado como Conteúdo ou Conteúdo e Valor. Os valores válidos são Rastreio do Usuário, Registro de Erros Local, Exceção e Lista de Exceções.
Incluir Todas as Limitações do Valor Sim Não Selecionada Essa propriedade não pode ser editada. A ação padrão, indicada pela caixa de opções que está sendo selecionada, é que todas as restrições de valores estão incluídas na validação.
Corrigir Sim Não Nenhum Essa propriedade não pode ser editada. É fornecida uma correção mínima. Os valores válidos são Nenhum e Total.

As propriedades das Opções de Mensagens Gerais do nó MQGet são descritas na tabela a seguir.

Propriedade M C Padrão Descrição
Sincronização de Análise Sim Não On Demand Esta propriedade controla quando uma mensagem de entrada é analisada. Os valores válidos são On Demand, Imediato e Completo.

Consulte Analisando On Demand para obter uma descrição completa dessa propriedade.

Utilizar o Analisador Compacto MQRFH2C para o Domínio MQRFH2 Não Não Falso Esta propriedade controla se o MQRFH2C Compact Parser, no lugar do analisador MQRFH2, é utilizado para cabeçalhos MQRFH2.

As propriedades do analisador XMLNSC para o nó Compute são descritas na tabela a seguir.

Propriedade M C Padrão Descrição
Utilizar Analisador Compacto XMLNSC para o Domínio XMLNS Sim Não selecionada Não Início da mudançaA configuração dessa propriedade faz com que a MQRFH2 de saída especifique XMLNS em vez de o analisador XMLNSC, permitindo que um aplicativo externo permaneça inalterado. Se as mensagens de saída não contiverem cabeçalhos MQRFH2, essa propriedade não tem nenhum efeito.Fim da mudança
Modo de Retenção de Conteúdo Misto Sim Não Nenhum Esta propriedade controla se o analisador XMLNSC cria elementos na árvore de mensagens ao encontrar texto misto em uma mensagem de entrada. Os valores válidos são Nenhum e Todos. A seleção de Todos significa que os elementos são criados para o texto misto. A seleção de Nenhum significa que o texto misto é ignorado e nenhum elemento é criado.
Modo de Retenção de Comentários Sim Não Nenhum Esta propriedade controla se o analisador XMLNSC cria elementos na árvore de mensagens ao encontrar comentários em uma mensagem de entrada. Os valores válidos são Nenhum e Todos. Selecionar Tudo significa que são criados elementos para comentários. A seleção de Nenhum significa que os comentários são ignorados e nenhum elemento é criado.
Modo de Retenção de Instruções de Processamento Sim Não Nenhum Esta propriedade controla se o analisador XMLNSC cria elementos na árvore de mensagens ao encontrar instruções de processamento na mensagem de entrada. Os valores válidos são Nenhum e Todos. Selecionar Tudo significa que são criados elementos para instruções de processamento. A seleção de Nenhum significa que as instruções de processamento são ignoradas e nenhum elemento é criado.

As propriedades de Descrição do nó Compute são descritas na tabela a seguir.

Propriedade M C Padrão Descrição
Descrição Breve Não Não   Uma breve descrição do nó.
Descrição Longa Não Não   Texto que descreve a finalidade do nó no fluxo de mensagens.
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ac04660_