Dicas e Restrições de Mapeamento de Mensagens

Informações para ajudá-lo a utilizar o mapeamento de mensagem.

Estas dicas supõem que você tenha criado um nó de Mapeamento dentro do fluxo de mensagens, aberto o Editor de Mapeamento de Mensagens eselecionado uma mensagem de origem e de destino:

Mapeando uma mensagem quando a origem é uma lista e o destino é uma lista a partir da origem, mas com uma nova entrada na parte superior da lista

  1. Expanda o destino para exibir o elemento para o qual você deseja criar uma nova primeira instância. Isto pode ser uma estrutura ou um elemento simples.
  2. Clique com o botão direito do mouse no elemento e clique em If. Uma linha de condição aparece imediatamente abaixo.
  3. Clique com o botão direito do mouse no elemento e clique em Copiar. Vá para a linha de condição e clique em Colar. Agora há duas entradas na planilha para seu elemento.
  4. Configure a primeira destas entradas como valores de sua opção.
  5. Clique com o botão direito do mouse na segunda entrada e clique em For. Uma linha for aparece na planilha.
  6. Configure a segunda entrada como o valor ou valores mapeados da origem.
  7. Configure a entrada for para a condição de loop.
  8. Clique em Para (For), em seguida, arraste o campo de origem que representa a condição de loop para o editor de Expressão.

Alterando o domínio de mensagem de destino

Ao criar um mapeamento pela primeira vez, você nomeia um conjunto de mensagens para a mensagem de destino. O analisador associado à mensagem de saída é determinado pela propriedade Domínio de Mensagem (Message Domain) do conjunto de mensagens. Por exemplo, quando um conjunto de mensagens é criado pela primeira vez, o domínio de mensagem padrão é MRM. Portanto, o Nó Mapping gera ESQL com o seguinte formato:
SET OutputRoot.MRM.Fielda...
Se você alterar o analisador de tempo de execução para XMLNSC, por exemplo, o nó Mapeamento gerará ESQL com o seguinte formato:
SET OutputRoot.XMLNSC.MessageA.FieldA...
O analisador da mensagem de origem é determinado pelo conteúdo do cabeçalho MQRFH2 ou pelas propriedades do nó de entrada. O Nó Mapping gera uma mensagem de destino com um analisador que corresponde ao domínio de mensagem do conjunto de mensagens. O Nó Mapping suporta os seguintes domínios de mensagem:
  • MRM
  • XMLNSC
  • XMLNS
  • MIME
  • JMSMap
  • JMSStream
  • XML
Para alterar a propriedade de domínio de mensagem de seu conjunto de mensagens:
  1. Abra o arquivo do conjunto de mensagens messageset.mset.
  2. Altere a propriedade Domínio de Mensagem para um domínio suportado.
  3. Salve seu conjunto de mensagens e quaisquer fluxos de mensagens e mapas de mensagens que o referenciem, se eles ainda não tiverem sido salvos. O salvamento desses arquivos gera ESQL atualizado para mapear o conjunto de mensagens alterado.
    Se você não tiver feito atualizações nos fluxos ou mapas de mensagens depois de alterar o domínio de mensagem de seu conjunto de mensagens, será necessário limpar os projetos de fluxo de mensagens relacionados para que o código ESQL atualizado possa ser gerado:
    1. Selecione um projeto e clique em Projeto (Project) > Limpar Projeto (Clean Project).
    2. Selecione Limpar Todos os Projetos ou Limpar Projetos Selecionados.
    3. Clique em OK.
  4. Implemente o conjunto de mensagens alterado.
  5. Implemente o fluxo de mensagens que contém os mapeamentos e teste seu ESQL em um nó Calcular e em outros nós para assegurar que o fluxo de mensagens ainda funcione conforme o esperado.

Substituindo o Nome do Esquema do Banco de Dados

Para alterar o nome do esquema do banco de dados gerado em ESQL, utilize o assistente Substituir Esquema do Banco de Dados na caixa de diálogo Especificar Esquema de Tempo de Execução. O padrão é o nome do esquema das definições de banco de dados importadas para o ambiente de trabalho. Utilize a caixa de diálogo Especificar Esquema de Tempo de Execução para alterar o valor.

Mapear Mensagens em Lote

Você pode configurar um mapeamento de mensagens que classifique, ordene e divida os componentes de uma mensagem multipartes em uma série de mensagens em lote. Esses componentes podem ser mensagens ou objetos e podem ter formatos diferentes; neste caso, cada componente é convertido e a mensagem é remontada antes de ser redirecionada.
  1. Utilize um Nó RouteToLabel no fluxo de mensagens para receber mensagens multipartes como entrada.

    O nó RouteToLabel é o próximo nó da seqüência após o Nó Mapeamento e faz com que o fluxo salte automaticamente para o rótulo especificado. Você pode especificar um único valor de RouteToLabel em um mapa de divisão para todos os mapas que geram saída de uma montagem de mensagem. Também pode utilizar condições para configurar o valor de RouteToLabel, dependendo dos valores da mensagem de origem.

  2. Utilize o Editor de Mapeamento de Mensagens para construir mapas que transformam e propagam mensagens em lote utilizando um único nó, sem precisar definir uma estrutura de dados intermediários.

As mensagens multipartes também podem conter mensagens incorporadas de repetição, em que cada instância repetida de uma mensagem é propagada separadamente. Mensagens incorporadas devem ser do mesmo conjunto de mensagens que a mensagem pai.

Restrições de Mapeamento

A menos que informado explicitamente, você pode alcançar a funcionalidade necessária chamando uma função ou procedimento ESQL. As seguintes restrições aplicam-se:
  • Os campos de conteúdo misto não podem ser mapeados.
  • As exceções não podem ser emitidas diretamente aos nós Mapeamento.
  • Elementos autodefinidos não podem ser manipulado nos nós Mapeamento (o suporte para os símbolos de curinga é limitado se os símbolos de curinga representarem mensagens integradas).
  • A árvore Ambiente não pode ser manipulada no nó Mapeamento.
  • As variáveis do usuário não podem ser definidas ou configuradas.
  • Expressões CASE não podem ser emuladas; você deve utilizar IF ... ELSE.
  • As árvores não podem ser copiadas da entrada para a saída para modificar elementos na árvore copiada. Por exemplo, o ESQL a seguir não pode ser modelado em um Nó Mapping:
    SET OutputRoot.MQMD = InputRoot.MQMD; SET OutputRoot.MQMD.ReplyToQ = 'NEW.QUEUE';
    Você deve configurar cada campo da estrutura de forma individual se você tiver a intenção de modificar um ou mais campos irmãos.
Conceitos relacionados
Editor de Mapeamento de Mensagens
Domínio e Analisador MRM
Analisadores e Domínios XML
Tarefas relacionadas
Desenvolvendo ESQL
Referências relacionadas
Nó Mapeamento
Nó Compute
Nó RouteToLabel
Mapeamentos de Mensagens
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:13:03

ar25245_