Resumo

Diferentes Estratégias para Diferentes Ambientes

  • As seguintes ações compartilham a mesma estratégia na manipulação de repetição: Mapear a partir da Origem, Criar Novo Submapa, Chamar Submapa, Chamar Rotina ESQL.
  • A ação Acumular manipula repetições de sua própria maneira.
  • A ação Digitar Expressão é independente de capacidade de repetição.

Manipular Repetição para o Mapeamento Um para Um nas Ações Mapear a partir da Origem, Criar Novo Submapa, Chamar Submapa, Chamar Rotina ESQL

  • Ao determinar a repetição, um elemento (ou atributo), juntamente com um ou mais elementos xsd sequence/choice/all/group que o contêm (ou um contêiner sequence/choice/all/group), formam um nível.
  • A criação de um mapeamento consiste em um processo de três etapas: expandir, configurar a expressão MapFrom e incluir ForEach/If/Condition. O que se segue é o algoritmo detalhado para a última etapa: inserir ForEach e outros.
  • Iniciando a partir da origem e do destino do mapeamento selecionado, avance de dentro para fora, corresponda um nível de origem de repetição com um nível de destino de repetição.
  • Para cada nível de repetição correspondido na origem e no destino:
    • Se esse nível de destino não tiver nenhum elemento de repetição sequence/choice/all/group, crie um ForEachStatement que contenha o nível de estrutura de destino.
    • A expressão do ForEach é a referência mapeável para o nível de origem de repetição.
    • Se esse nível de destino estiver contido em um sequence/choice/all/group de repetição, crie um ForEachStatement que contenha todas as estruturas no sequence/choice/all/group.
    • A expressão do ForEach é a referência mapeável para o nível de origem de repetição.
    • Se já houver um ForEach com uma expressão esperada contendo os membros sequence/choice/all/group esperados, não crie um outro.
    • Se já houver um ForEach com uma expressão diferente, mas contiver os membros sequence/choice/all/group esperados, crie o ForEach requerido como um filho do ForEach existente. O ForEach interno contém um bloco If-Condition que possui todo o conteúdo do elemento sequence/choice/all/group.
    • A expressão para a Condition acima é que a ocorrência da expressão no ForEach externo iguale à ocorrência da expressão no ForEach interno.
  • Ignore níveis não correspondidos de repetição no destino.
  • Para cada nível não correspondido de repetição na origem:
    • Crie um ForEachStatement que contenha um IfStatement, que contenha um ConditionStatement, que contenha o nível de estrutura de destino.
    • A expressão do ForEach é a referência mapeável para o nível de origem de repetição.
    • Se já houver um ForEach para o nível de origem de repetição, não crie um outro.
    • A expressão para a Condition é occurrence(this_level_of_repeating_source)=1.
    • Se já houver uma Condition para a primeira ocorrência do nível de origem de repetição, não crie uma outra Condition.
    • Se já houver um Qualify mas nenhuma condição esperada, crie uma outra Condition no Qualify.
  • Instruções de destino do banco de dados relacional devem ser colocadas nos elementos ForEach.
    • Quando uma origem única envolve os níveis de repetição aninhados, o ForEach para é aninhado para cada nível.
  • O conjunto de resultados de seleção de origem do banco de dados relacional é conceitualmente uma repetição. Entretanto, um mapeamento de uma origem do banco de dados pode requerer a expansão do escopo da instrução select. Para simplificar as coisas, a ferramenta não insere nenhum ForEach como resultado do mapeamento da origem do banco de dados.
    • Ao inserir um SelectStatement no modelo de instrução, as ferramentas de mapeamento sempre criam um Select contendo um ForEach para efetuar loop através do conjunto de resultados.

Manipular Repetição para Mapeamento de Um para Muitos na Ação Mapear a partir da Origem

  • Utilize a estratégia de um para um diversas vezes, uma para cada destino.
  • Não tente nenhuma otimização entre os diversos mapeamentos.

Manipular Repetição para o Mapeamento Muitos para Um nas Ações Mapear a partir da Origem, Criar Novo Submapa, Chamar Submapa, Chamar Rotina ESQL

  • Aplique a estratégia de um para um entre a origem e o destino individuais.
  • Para cada nível de repetição de origem, aninhe os elementos ForEach chamados de cada origem. Qualifique por instância para que os elementos ForEach aninhados apenas coletem instância no mesmo índice.
Tarefas relacionadas
Desenvolvendo Mapeamentos de Mensagens
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2005 Última Atualização: 04/11/2005
ar25235_1_