Sugestões, Dicas e Restrições de Mapeamento

Estas dicas e sugestões assumem que você já tenha criado um nó de mapeamento no fluxo de mensagens, aberto o Editor de Mapeamento de Mensagens e selecionado uma mensagem de origem e de destino:

Configurar um Campo de Destino sem Repetição Igual a um Campo de Origem sem Repetição

  1. Na área de janela de origem do Editor de Mapeamento de Mensagens, arraste o campo de origem e solte-o no campo de destino.

Configurar um Campo de Destino de Repetição Igual a um Campo de Origem de Repetição (For)

  1. Na área de janela de origem do Editor de Mapeamento de Mensagens, arraste o campo de origem de repetição e solte-o no campo de repetição de destino.
  2. Na planilha, clique com o botão direito do mouse no campo de destino de repetição e selecione For no menu pop-up. Uma entrada For aparece na planilha.
  3. Clique na entrada For, arraste o campo de repetição de origem e solte-o na área de janela de edição imediatamente acima da planilha.

Configurar uma Condição para Mover um Campo (If)

  1. Na área de janela de origem do Editor de Mapeamento de Mensagens, arraste a origem e solte-a no destino.
  2. Na planilha, clique com o botão direito do mouse no campo de destino e selecione IF no menu pop-up. Uma entrada If aparece na planilha.
  3. Expanda a entrada If. Uma condição aparece abaixo, com fn:true() como seu valor padrão.
  4. Clique na condição fn:true(). A condição aparece na área de janela de edição imediatamente acima da planilha.
  5. Exclua o valor de fn:true().
  6. Arraste os campos de origem para a área de janela de edição imediatamente acima da planilha.
  7. Edite os campos de origem para incluir as condições requeridas, por exemplo: $source/Parent/SaleList/Invoice/Initial = 'K' é o equivalent da operação ESQL IF InputRoot.Parent.SaleList.Invoice.Initial = 'K' THEN.

Configurar uma Condição Diferente

Se desejar que a condição corresponda a diferente de =:
Não igual: !=
Maior que >
Maior que ou igual a >=
Menor que <
Menor que ou igual a <=

Exemplo: $source/Parent/SaleList/Invoice/Surname != 'Shop'

Configurar uma Condição Alternativa para Mover um Campo (Else)

  1. No Editor de Mapeamento de Mensagens, conclua as etapas listadas em Configurar uma Condição para Mover um Campo (If).
  2. Clique com o botão direito do mouse na entrada de condição e selecione Else no menu pop-up. Uma entrada Else aparece sob a linha Else. Este deve ser o mesmo campo de destino que o If > Condition original contém.
  3. Configure os campos de destino para os valores requeridos.

Configurar um Campo de Destino como um Valor Fixo

Se o campo de destino estiver visível na planilha:
  1. Na planilha do Editor de Mapeamento de Mensagens, clique na linha que contém o campo de destino e digite o valor, na segunda coluna da planilha ou na área de janela de edição imediatamente acima da planilha (como você clicou no campo de destino na planilha, a área de janela de edição imediatamente acima da planilha tem o foco nesse campo de destino).
  2. Clique em Enter depois de digitar o valor de destino (campos de cadeia devem ser aninhados entre aspas simples).
Se o campo de destino não estiver visível na planilha:
  1. Na planilha do Editor de Mapeamento de Mensagens, clique no ascendente mais próximo do destino e selecione Expandir. O último ascendente é $target, que SEMPRE deverá estar presente. Essa ação deverá preencher a planilha com os filhos desse ascendente.
  2. Repita Expandir até que a planilha seja preenchida com o campo de destino que você deseja configurar. Siga as etapas acima para um campo de destino que esteja visível na planilha.

Aplicar uma Função ESQL a um Campo de Destino

  1. Na área de janela de origem do Editor de Mapeamento de Mensagens, arraste a origem e solte-a no destino.
  2. Na planilha, clique no campo de destino. O valor do campo de destino aparece na área de janela de edição imediatamente acima da planilha.
  3. Edite o valor do campo de destino para incluir o ESQL requerido (todas as instruções ESQL devem ser prefixadas com o atributo esql).

Exemplo: esql:upper($source/Parent/SaleList/Invoice/Surname)

Utilizar um Operador Aritmético

Somar +
Subtrair _
Multiplicar *
Dividir div

Exemplo: $source/Parent/SaleList/Invoice/Item/Price div 1.6

Origem é uma lista e destino é uma lista 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 mouse neste elemento e selecione If. Aparece uma linha da condição imediatamente abaixo.
  3. Clique com o botão direito do mouse no elemento e selecione Copiar. Vá para a linha da condição e selecione Colar. Agora você deve ter duas entradas na planilha para seu elemento.
  4. Configure a primeira destas entradas como valores de sua opção. Esta é a primeira instância. Clique com o botão direito no mouse na segunda entrada e selecione For. Aparece uma linha for na planilha.
  5. Configure a segunda entrada como o valor ou valores mapeados da origem.
  6. Configure a entrada for como a condição de looping.
  7. Clique em for, em seguida, arraste o campo de origem que representa a condição de loop para o editor de expressão imediatamente acima da planilha.

Alterar Analisador de Tempo de Execução de Destino

Você denomina um conjunto de mensagens para a mensagem de destino quando cria o mapeamento pela primeira vez. O analisador associado à mensagem de saída é o analisador de tempo de execução associado ao conjunto de mensagens. Por exemplo, quando um conjunto de mensagens é criado pela primeira vez, o analisador de tempo de execução padrão é MRM. Isto significa que o nó Mapping gera ESQL com o seguinte formato:
SET OutputRoot.MRM.Fielda...
Se você alterar o analisador de tempo de execução para XML ou XMLNSC por exemplo, o nó de mapeamento gerará ESQL com o seguinte formato:
SET OutputRoot.XMLNSC...
O analisador da mensagem de origem (entrada) é determinado pelo cabeçalho MQRFH2 ou pelo nó de entrada. O nó Mapping pode manipular todos os analisadores na entrada. O nó Mapping gera uma mensagem de destino (saída) com o analisador que corresponde ao analisador de tempo de execução do conjunto de mensagens.
  1. Abra o arquivo messageset.mset do conjunto de mensagens
  2. Altere o analisador de tempo de execução para um valor de sua opção e salve Limpar o Projeto ou Projetos do Fluxo de Mensagens, referindo-se a este conjunto de mensagens para fins de mapeamento.
  3. Implemente o conjunto de mensagens se tiver alterado o analisador para MRM.
  4. Implemente o fluxo de mensagens que contém os Mapeamentos. Se você fizer isso, deverá testar seu ESQL no nó Compute e em outros nós para assegurar que eles ainda funcionam conforme o esperado.

Assegurar que um Elemento de Opção Seja Processado Incondicionalmente

Se você arrastar um elemento de opção, uma linha If será gerada na planilha de mapeamento e uma linha da condição para cada opção possível. Cada condição possui fn:false() associado a ela por padrão (isto significa que esta opção não será processada). Se desejar que o elemento de opção seja processado incondicionalmente, certifique-se de que a condição esteja configurada como fn:true().

Substituir o Nome do Esquema do Banco de Dados

Você pode alterar o nome do esquema do banco de dados gerado no ESQL. Faça isso no assistente Substituir Esquema RDB no diálogo Especificar Esquema de Tempo de Execução. O padrão é o nome do esquema das definições do banco de dados importadas para o toolkit. Utilize este diálogo para alterar o valor.

Restrições de Mapeamento

A menos que seja explicitamente indicado aqui, você pode obter a funcionalidade requerida chamando uma função ou procedimento ESQL.
  • Os campos de conteúdo misto não podem ser mapeados.
  • As exceções não podem ser emitidas diretamente em nós de mapeamento.
  • Os elementos autodefinidos não podem ser manipulados em nós de mapeamento (existe suporte limitado para curingas quando o curinga representa mensagens incorporadas).
  • A árvore Ambiente não pode ser manipulada no nó de mapeamento.
  • As variáveis do usuário não podem ser definidas e configuradas.
  • As expressões CASE não podem ser emuladas, é necessário 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'; É necessário configurar cada campo na estrutura individualmente se você pretende modificar um ou mais campos irmãos.
Conceitos relacionados
Visão Geral do Mapeamento de Mensagens
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2005 Última Atualização: 04/11/2005
ar25245_