Sich wiederholende Strukturen und Felder

Eine sich wiederholende Struktur oder ein sich wiederholendes Feld tritt in derselben Nachricht mehrmals auf und wird definiert, wenn die Nachricht selbst definiert wird. Beispielsweise kann eine Quellennachricht die Struktur Kunde enthalten, die die zwei Felder Stadt und Land enthält. Außerdem enthält sie zwei identische Strukturen, Name, die jeweils zwei identische Felder enthalten, Vorname und Nachname. Wenn solch eine sich wiederholende Struktur einer anderen sich wiederholenden Struktur zugeordnet wird (wie im Zielfeld gezeigt), erfolgt die Mehrfachzuordnung zwischen Quellen- und Zielfeldern automatisch.
Quelle (Nachricht) Ziel (Nachricht)
Kunde
  • Stadt
  • Land
Name[1]
  • Vorname
  • Nachname
Name[2]
  • Vorname
  • Nachname
Kunde
  • Ort

Kundenname[1]

  • Vorname
  • Nachname

Kundenname[2]

  • Vorname
  • Nachname

Die Quellen und Ziele werden mit Hilfe von Baumknoten zugeordnet, die für einen Schematyp einschließlich Nachrichtentyp oder eine Datenbanktabelle bzw. -spalte stehen. Ein Baumknoten ist somit ein Container für den spezifischen Nachrichtentyp.

Bei einem wiederholbaren Knoten sind folgende Kombinationen von minimalem und maximalem Vorkommen möglich: Das Zeichen * bedeutet, dass das Maximum unbegrenzt ist (wobei ... für den Bereich steht). Das Ziel übernimmt die Anzahl der Instanzen von der Quellenseite als tatsächliche Grenze, statt eine künstliche Begrenzung vorzunehmen.

Sie können einen Wiederholungsknoten füllen, um alle Instanzen anzuzeigen. Diese Aktion können Sie über den Befehl Populate (Füllen) ausführen. Eine Instanz (oder genauer, ein Instanzelementknoten) ist ein einzelnes Vorkommen eines sich wiederholenden Elements. Wenn ein Feld beispielsweise zehnmal vorkommt, kann jedes davon als ein Instanzelementknoten betrachtet werden. Dies entspricht nicht der Laufzeitinstanz, die in einer realen Nachricht empfangen wird. Es handelt sich vielmehr um einen Platzhalter, der verwendet wird, falls diese Elementinstanz in der Nachricht auftritt (der Begriff Instanz bezeichnet in diesem Kontext eine Entwicklungszeitinstanz, keine Laufzeitinstanz).

Instanzen werden auf derselben Ebene wie ein wiederholbarer Knoten erstellt und sind dem wiederholbaren Knoten gleichgeordnete (untergeordnete) Elemente. Sie stellen die Struktur des Knotens dar und stellen Entitäten bereit, die ausschließlich der erforderlichen Instanz zugeordnet werden können. Jedes neue, gleichgeordnete Element erhält die Indexnummer der aktuellen Instanz als Suffix.

Der Index basiert auf 1 für ESQL statt auf 0 wie in Java.

Betrachten Sie beispielsweise die folgende Struktur:

Nachricht1
   |_ Anfang
      |_ Mitte
         |_Ende

Dabei sind Mitte und Ende wiederholbar; Mitte kann n1..m1 mal und Ende n2..m2 mal wiederholt werden.

Jeder erweiterte Instanzknoten kann in einer Zuordnung wie jedes andere nicht wiederholbare Element verwendet werden (weil dieser Knoten nicht wiederholbar ist). Er kann jedoch untergeordnete Elemente enthalten, die wiederholbar sind, falls es sich um verschachtelte Wiederholungsebenen handelt. Die oberste Ebene einer verschachtelten Struktur (wie im vorherigen Beispiel dargestellt) kann nicht sinnvoll erweitert werden, wenn die inneren Ebenen nicht erweitert werden. Das heißt, die untergeordneten Elemente werden auf die minimale Anzahl an Instanzen erweitert, die für diese verschachtelten wiederholbaren Knoten erforderlich sind. Für das Beispiel bedeutet dies, dass eine minimal erforderliche Erweiterung für Mitte dazu führt, dass n1 Instanzen erstellt werden, wobei die untergeordneten Elemente von Mitte aber keine Einzelgruppe mit nur einem Ende bilden. Das minimale 'Vorkommen' für diese Instanz bestimmt die Anzahl der Wiederholungen.

Das folgende Beispiel zeigt einen vollständigen Baumknoten, der teilweise erweitert ist.

Nachricht1
   |_ Anfang
      |_ Mitte[]
         |_Ende[]
      |_ Mitte[1]
         |_Ende[]
         |_Ende[All]
         |_Ende[1]

In diesem Beispiel wird ein Eintrag gefolgt von [] als ein wiederholbarer Knoten, ein Eintrag gefolgt von [All] als ein [All]-Knoten und ein Eintrag gefolgt von [1] als ein Instanzelementknoten bezeichnet.

Zugehörige Tasks
Zuordnungsanzeiger
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2005 Letzte Aktualisierung: Nov 17, 2005
ar00970_