Mapeando um Elemento de Destino das Tabelas de Banco de Dados

Para mapear um elemento de destino a partir de uma tabela de banco de dados, configure o Nó Mapping para:
  • recuperar as linhas relevantes do banco de dados
  • preencher os elementos de destino da mensagem com valores do banco de dados
Há várias maneiras de incluir um banco de dados como uma origem para um mapeamento, conforme descrito em Incluindo um Banco de Dados na Origem. Após ter incluído um banco de dados no mapeamento, a área de janela Planilha contém uma entrada $db:select na coluna Script do Mapa. Por padrão, seu valor é fn:true(), o que significa que todas as linhas são recuperadas da tabela de banco de dados. No SQL do banco de dados, você restringiria o número de linhas incluindo uma cláusula WHERE em uma chamada do banco de dados. No Nó Mapping, o método equivalente de restrição do número de linhas selecionadas é utilizar uma expressão $db:select.

Essas etapas mostram o método equivalente de restringir o número de linhas selecionadas em um Nó Mapping:

  1. Na área de janela Planilha, clique na linha $db:select. Isso faz com que fn:true() seja colocado na área de janela Editar.
  2. Edite a expressão na área de janela Editar para especificar a condição correta para a chamada de banco de dados. Para ajudá-lo a obter isso, você pode:
    1. Selecionar quaisquer colunas de banco de dados que são relevantes para as linhas que são recuperadas e arrastá-las da área de janela Origem para a área de janela Editar. Esses são os nomes das colunas de banco de dados que são utilizados na cláusula SQL WHERE.
    2. Selecione os elementos da mensagem de origem com valores que são relevantes para as linhas que são recuperadas e arraste-os da área de janela Origem para a área de janela Editar. Esses são os valores contra os quais as colunas de banco de dados selecionadas podem ser correspondidas.
    3. Abra o Assistente de Conteúdo clicando em Editar > Assistente de Conteúdo.
    4. No Assistente de Conteúdo, selecione as funções a aplicar nos elementos de mensagens na chamada de banco de dados.
Segue um exemplo de uma entrada $db:select onde uma coluna do banco de dados foi correspondida a uma constante ou um campo de uma mensagem de entrada:
$db:select_1.BROKER50.JDOE.RESOLVEASSESSOR.ASSESSORTYPE = 'WBI' or $db:select_1.BROKER50.JDOE.
RESOLVEASSESSOR.ASSESSORTYPE = $source/tns:msg_tagIA81CONF/AssessorType 

Uma entrada $db:select recupera todas as linhas de qualificação, portanto, é possível que mais de uma linha seja recuperada. Por padrão, a seleção é tratada como de repetição, o que é indicado pela linha 'for' abaixo de $db:select na área de janela Planilha.

Depois de ter configurado $db:select, preencha a mensagem de destino a partir do banco de dados, arrastando a coluna do banco de dados da Área de Janela Origem para o elemento de mensagem na área de janela Destino. O mapeamento é indicado por uma linha entre a coluna do banco de dados na área de janela Origem e o elemento na área de janela Destino. Uma entrada para esse mapa no formato Xpath também aparece na área de janela Planilha. Ícones triangulares aparecem nas áreas de janela Origem e Destino ao lado de objetos que foram mapeados.

Início da mudançaUtilizando Selects de Banco de Dados

Por padrão, uma entrada $db:select é acompanhada por uma linha 'for' que itera sobre o conjunto de resultados select. Assegure que sua linha 'for' esteja na posição correta para seu mapeamento. O comportamento do mapa é determinado pela posição da linha 'for' na área de janela Planilha. Por exemplo, se os resultados da instrução $db:select tiver correspondido a 5 linhas do banco de dados e a linha 'for' estiver localizada sobre a entrada $target na área de janela Planilha, então, 5 mensagens completas são colocadas na saída pelo nó de mapeamento. Se a linha 'for' estiver posicionada no corpo da mensagem, então, uma mensagem é gerada com 5 elementos de repetição no corpo da mensagem.

Um mapeamento pode conter várias linhas 'for' associadas a uma entrada $db:select que executam um único select do banco de dados e iteram sobre os resultados várias vezes. Por exemplo, várias linhas 'for' podem ser utilizadas em mapeamentos condicionais, em que uma linha 'for' individual é utilizada com uma 'condition' ou 'else'.

Uma linha 'for' não é sempre requerida e pode ser excluída nas seguintes circunstâncias:
  • Se select do banco de dados retornar somente uma linha
  • Se você utilizar uma função Xpath agregada nos resultados da seleção

    Por exemplo: fn:sum ou fn:count.

Qualquer expressão $db:select deve estar no escopo da entrada $db:select na área de janela Planilha, o que significa que deve ser descendente da instrução select. Se uma expressão $db:select estiver fora do escopo, o editor de Mapeamento de Mensagens move a entrada $db:select para uma posição onde a expressão $db:select está no escopo. Assegure que a posição da entrada $db:select esteja correta para seu mapeamento de mensagem.

Junção de Tabela de Banco de Dados

A junção de tabela de banco de dados é suportada para tabelas no mesmo banco de dados. Por exemplo, considere as duas tabelas a seguir, onde PRODUCT_ID e PART_NUMBER correspondem:
Table    Column        Row 1    Row 2    Row 3      Row 4
ORDER    PRODUCT_ID    456      456      345        123
         QUANTITY      100      200      300        400

PRODUCT  PART_NUMBER   123      456      789        012
         PART_NAME     pen      pencil   paperclip  glue
         PRICE         0.25     0.15     0.02       0.99
Uma expressão $db:select com a seguinte sintaxe une as tabelas:
$db:select.MY_DB.SCHEMA1.ORDER.PRODUCT_ID=$db:select.MY_DB.SCHEMA2.PRODUCRT.PART_NUMBER
A expressão $db:select do exemplo gera o seguinte conjunto de resultados:
                Row 1    Row 2    Row 3
PRODUCT_ID      456      456      123
QUANTITY        100      200      400
PART_NUMBER     456      456      123
PART_NAME       pencil   pencil   pen
PRICE           0.15     0.15     0.25
Você pode, então, utilizar a linha 'for' para iterar pelo conjunto de resultados da mesma forma que os resultados de uma única tabela.
Fim da mudança
Conceitos relacionados
Editor de Mapeamento de Mensagens
Criando Mapeamentos de Mensagens
Referências relacionadas
Nó Mapping
Área de Janela Origem do Editor de Mapeamento de Mensagens
Área de Janela Destino do Editor de Mapeamento de Mensagens
Área de Janela Editar do Editor de Mapeamento de Mensagens
Área de Janela Planilha do Editor de Mapeamento de Mensagens
Mapeamentos de Mensagens
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ar25267_