Show TOC Anfang des Inhaltsbereichs

Funktionsdokumentation Zugriff auf mehrzeilige Containerelemente  Dokument im Navigationsbaum lokalisieren

Verwendung

Im Datenflusseditor können Sie mittels Ausdrücken auf mehrzeilige Containerelemente (interne Tabellen) zugreifen. Sie haben folgende Zugriffsmöglichkeiten:

 

Element der int. Tabelle

Zugriff per

Syntax

Zeile

Indexausdruck (Zeilenprojektion)

&tab[idx_exp ]&

Spalte

Spaltenprojektion

&tab.col_name&

Feld

Kombination aus Indexausdruck und Spaltenprojektion

&tab[idx_exp].col_name&

Feld, das selbst eine interne Tabelle ist (multidimensionales Array)

 

Iterativer Indexausdruck

&tab[idx_exp].col_name[idx_exp]&

 

Indexausdruck und Spaltenprojektion

Der Indexausdruck idx_exp gibt die gewünschte Zeile an. Der Indexausdruck kann ein beliebiger Ausdruck sein, der einen positiven Wert vom Typ INTEGER liefert, wie z. B. eine Zählervariable.

Liefert der Ausdruck einen Wert kleiner 1 oder verweist er auf eine Zeile, die in der internen Tabelle nicht existiert, kann der Ausdruck nicht ausgewertet werden. Ein solcher Fehler bei der Auswertung wird in das Workflow-Protokoll geschrieben.

Bei der Spaltenprojektion gibt col_name die gewünschte Spalte an. Da die Spalte nicht dynamisch angegeben werden kann, wird eine fehlerhafte Angabe bereits von der Syntaxprüfung entdeckt.

Beispiel

Zugriff auf eine Zeile

Ein Containerelement mit dem Namen Names ist als interne Tabelle vom Typ SY-UNAME definiert. Die folgende Tabelle zeigt mögliche Zugriffe auf Zeilen der internen Tabelle:

 

Indexzugriff

Beschreibung

&Names[1]&

Liefert die erste Zeile der Tabelle.

&Names[&Counter&]&

Liefert die Zeile der Tabelle, die durch die Zählervariable &Counter& bestimmt wird.

&Names[&my_obj.get_current_idx()&]&

Liefert die Zeile der Tabelle, die durch die funktionale Methode get_current_idx des Objektes my_obj bestimmt wird.

 

Zugriff auf eine Zeile, eine Spalte, ein Feld

Die interne Tabelle users ist wie folgt definiert:

 

Name

ID

Street

Thomas

4711

Hauptstraße

Eva

0815

Bahnhofstraße

Paul

4712

Lindenstraße

 

Zeile

&users[2]& liefert die zweite Zeile der Tabelle users:

Eva

0815

Bahnhofstraße

Spalte

&users.id& liefert die Inhalte der Spalte ID der Tabelle users:

4711

0815

4712

Feld

&users[2].id& liefert das Feld ID der zweiten Zeile der Tabelle users:

0815

Iterativer Indexausdruck

Sie haben ein interne Tabelle users definiert. Die Spalte phone_numbers kann für jede Person mehrere Telefonnummern enthalten:

 

name

phone_numbers

street

Thomas

4711

4712

4713

Hauptstraße

Eva

0815

0816

Bahnhofstraße

 

&users[2].phone_numbers[1]& liefert in der zweiten Zeile der Tabelle users den ersten Eintrag im Feld phone_numbers:

0815

 

Tabelle aus Tabellen

Sie haben eine interne Tabelle phone_numbers definiert. Die Tabelle besteht pro Zeile aus nur einem Feld. Dieses Feld ist selbst eine interne Tabelle:

phone_numbers

4711

4712

4713

0815

0816

 

&phone_numbers[1][3]& liefert aus der ersten Zeile den dritten Eintrag:

4713

 

 

 

 

 

Ende des Inhaltsbereichs