Este tópico contém as seguintes seções:
Utilize o nó Compute para construir uma ou mais mensagens novas de saída criando mensagens novas e ocupando-as com novas informações, com informações modificadas da mensagem de entrada ou com informações obtidas de um banco de dados. Você pode modificar elementos (cabeçalhos, campos de cabeçalhos e dados do corpo) da mensagem de entrada, seu ambiente associado e sua lista de exceções 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:
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 pelo seguinte ícone:
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.
Quando você tiver colocado uma instância do nó Compute em um fluxo de mensagens, poderá configurá-lo. Clique com o botão direito na visualização do editor clique em Propriedades. As propriedades básicas do nó são exibidas.
Todas as propriedades mandató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:
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.
Se você deseja utilizar os dados de um banco de dados nesse nó (consultando as tabelas de banco de dados no módulo ESQL associado):
No sistema z/OS, o intermediário utiliza o ID da tarefa iniciada do intermediário.
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.
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ê 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.
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, adicionando 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 possui o nome <message_flow_name>.esql, contém ESQL para cada nó no fluxo de mensagens que o requer. 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 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;
DECLARE I INTEGER 1;por
DECLARE I INTEGER; SET I=1;
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
.Ao selecionar o modo Compute, você especifica a combinação dos componentes Message, LocalEnvironment (anteriormente especificados como DestinationList), e Exception são gerados e modificados na mensagem de saída. Esses componentes não incluídos em sua seleção são transmitidos inalterados: mesmo se você modificar esses componentes, as atualizações serão locais para esse nó.
(O componente Environment da árvore de mensagens não é afetado pela definição do modo. Seu conteúdo, se houver, é transmitido desse nó na mensagem de saída.)
Você deve definir essa propriedade para refletir corretamente o formato da mensagem de saída requerido. Se selecionar uma opção (ou aceitar o valor padrão) que não inclua um determinado conteúdo da mensagem, essa parte da mensagem não será incluída em nenhuma mensagem de saída que seja 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.
Selecione Validação no navegador do diálogo de propriedades se desejar que o analisador MRM valide o corpo de mensagens no dicionário gerado a partir do conjunto de mensagens. As opções de validação que você define em um nó Compute se aplicam apenas a algumas mensagens de saída que são criadas. A validação não ocorre no próprio nó, mas apenas quando a mensagem é subseqüentemente convertida em um fluxo de bits.
As duas primeiras opções são úteis, principalmente quando a validação é chamada pela primeira vez, porque você vê todos os defeitos de validação, não apenas o primeiro erro encontrado. Quando tiver analisado os defeitos, geralmente você poderá selecionar Exceção para utilização futura.
Os destinos de defeitos se comportam como os do nó de saída Trace. Assim, por exemplo, se você selecionar Rastreio do Usuário, as entradas de rastreio serão gravadas independentemente da definição do sinalizador de rastreio do usuário para o fluxo de mensagens.
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 for detectado um defeito durante o cálculo. (Mesmo que a propriedade Validar for definida, as mensagens propagadas para o terminal failure do nó não serão validadas). |
Saída | O terminal de saída para o qual a mensagem transformada será roteada. |
As tabelas a seguir descrevem as propriedades do nó; a coluna com cabeçalho M indica se a propriedade é mandató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 propriedades é 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:
|
Tratar Avisos como Erros | Sim | Não | Limpo | 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 | Não | Nenhum | Determina se a validação ocorrerá. Os valores válidos são Nenhum e Conteúdo e Valor. |
Ação de Defeito | Sim | Não | Exception | O que acontece se ocorrer um defeito de validação. Você pode definir essa propriedade apenas se Validar for definido para Conteúdo e Valor. Os valores válidos são Rastreio do Usuário, Log de Erro Local e Exceção. |
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. |
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. |
Conceitos relacionados
Fluxos de Mensagem
Fluxos de Mensagens, Mapeamentos e ESQL
Nomes de Correlação
Tarefas relacionadas
Configurando o DB2
Decidindo Quais Nós Utilizar
Validando Mensagens
Criando Listas de Destino
Tratando Erros em Fluxos de Mensagens
Configurando Fluxos de Mensagens Coordenados
Criando ESQL para um Nó
Configurando ESQL Dentro de Nós
Editando Propriedades Configuráveis
Referências relacionadas
ESQL
Restrições de Valores Lógicos de Tipo Simples
Comando mqsichangebroker
Comando mqsicreatebroker
Comando mqsisetdbparms
Avisos |
Marcas |
Downloads |
Biblioteca |
Suporte |
Feedback
![]() ![]() |
ac04660_ |