Estruturas e Campos de Repetição

Um campo ou estrutura de repetição é aquele que ocorre várias vezes dentro da mesma mensagem e é definido no momento em que a própria mensagem é definida. Por exemplo, uma mensagem de origem pode conter uma estrutura cliente que contenha dois campos cidade e país. Duas estruturas nome idênticas, cada uma contendo dois campos idênticos prenome e sobrenome. Se uma estrutura de repetição como essa for mapeada para uma outra estrutura de repetição (conforme mostrado no campo de destino), as diversas associações entre os campos de origem e destino serão manipuladas automaticamente.
Origem (Mensagem) Destino (Mensagem)
cliente
  • cidade
  • país
nome[1]
  • prenome
  • sobrenome
nome[2]
  • prenome
  • sobrenome
cliente
  • local

customername[1]

  • prenome
  • sobrenome

customername[2]

  • prenome
  • sobrenome

As origens e os destinos são mapeados utilizando nós de árvore que são representações de um tipo de esquema, incluindo o tipo de mensagem ou uma tabela ou coluna de banco de dados. Um nó de árvore é, portanto, um contêiner para o tipo específico de mensagem.

Um nó repetível possui a seguinte combinação de ocorrências mínima e máxima: Os casos * implicam que ocorre um máximo ilimitado (em que ... representa o intervalo). O destino utiliza o número de instâncias no lado de origem como seu limite real em vez de restringi-lo artificialmente.

É possível ocupar um nó de repetição para mostrar todas as instâncias. Um comando de menu Ocupar permite fazer isso. Uma instância (na realidade, um nó de elemento de instância), é uma ocorrência única de um elemento de repetição. Por exemplo, se um campo tiver 10 ocorrências, cada uma delas poderá ser considerada como um nó de elemento de instância. Isso não é equivalente à instância de tempo de execução recebida em uma mensagem real. Em vez disso, consiste em um sinalizador de substituição no caso de ocorrência dessa instância de elemento na mensagem (o termo instância, neste contexto, refere-se a uma instância de tempo de desenvolvimento, não uma instância de tempo de execução).

As instâncias são produzidas no mesmo nível que um nó repetível e são irmãs (filhas) deste. Elas representam a estrutura do nó e recebem entidades que podem ser mapeadas exclusivamente para a instância requerida. Cada novo irmão recebe um sufixo com o número do índice da instância atual.

O índice tem base 1 para ESQL ao invés de base 0 como em Java.

Como um exemplo, considere a seguinte estrutura:

mensagem1
      |_ top
            |_ middle
                  |_bottom

em que middle e bottom são repetíveis; e middle se repete n1..m1 vezes e bottom se repete n2..m2 vezes

Cada nó de instância expandido pode ser utilizado em um mapa exatamente como qualquer outro elemento não-repetível (pois esse nó não é repetível). Contudo, ele pode conter filhos que são repetíveis no caso de níveis de repetições aninhados. Não é possível expandir significativamente o primeiro nível de uma estrutura aninhada (conforme mostrado no exemplo anterior), quando os níveis internos não estão expandidos. Isso significa que os filhos sob ela são expandidos para o número mínimo de instâncias que aqueles nós repetíveis aninhados requerem. No exemplo, isso significa que uma expansão mínima requerida para middle resulta na criação da instância n1, mas os filhos de middle não são um único conjunto com apenas um bottom. O número mínimo de 'ocorrências' dessa instância determina o número de repetições.

O exemplo a seguir mostra um nó de árvore completo expandido parcialmente.

message1
   |_ top
      |_ middle[]
         |_bottom[]
      |_ middle[1]
         |_bottom[]
         |_bottom[All]
         |_bottom[1]

Nesse exemplo, uma entrada seguida por [] é um nó repetível, uma entrada seguida por [All] é um nó all e uma entrada seguida por [1] é um nó de elemento de instância.

Tarefas relacionadas
Indicadores de Mapeamento
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2005 Última Atualização: 04/11/2005
ar00970_