Anfang des Inhaltsbereichs

Hintergrunddokumentation Release-abhängige Inkompatibilitäten Dokument im Navigationsbaum lokalisieren

Behandlung von Tabellenparametern

Leere Tabellen

In Release 6.20 wurde allen Tabellenparametern oder Variablen eine initiale erste Zeile zugewiesen. Zum Beispiel:

Diese Grafik wird im zugehörigen Text erklärt 

Der Benutzer konnte auf die erste Zeile zugreifen und Komponenten Werte zuweisen.

In Release 6.40 sind alle tabellenähnlichen Parameter und Variablen leer (es gibt keine erste Zeile), bevor sie angelegt werden. Zum Beispiel:

Diese Grafik wird im zugehörigen Text erklärt 

Zeilen in Tabellen löschen

In Release 6.20 werden Zeilen einer Tabelle gelöscht, indem einfach die Komponenten der Zeilen ohne eine Neuordnung des Index gelöscht werden.

In Release 6.40 werden nach dem Löschvorgang die Zeilen der nachfolgenden vorhandenen Zeilen nachgeschoben. Dadurch wird der Index geändert.

Indizierten Zugriff verwenden

Die Zuweisung eines Wertes zu einer Tabelle mit einem festgelegten Index verursacht keine Änderung (auch wenn der Index 1 ist). Die Destination-Zeile und alle fehlenden Zeilen werden während der Zuordnung angelegt. Der Zugriff auf eine initiale Tabelle mit dem Index 1 wird nun eine Fehlermeldung auslösen.

FUN-Treiber

Wenn leere Werte in einer ersten Zeile eines Tabellenparameters existieren, werden sie bei der Ausführung in einem 6.40-System, nicht aber in einem 6.20-System, an den Funktionsbaustein übergeben.

TCD-Kommandoschnittstelle

Siehe Dynamisches Setzen von DYNPRO-Felder und -Werten innerhalb einer Schleife. 

Zusätzliche Informationen

Exportparameter können keine Standardwerte haben

Nur Importparameter und lokale Variablen können mit Standarwerten belegt werden. Wenn ein Skript mit REF aufgerufen und für einen Exportparameter keine explizite Zuordnung innerhalb der Skriptausführung vorgenommen wird, ist sein Rückgabewert am Ende von REF leer. In Release 6.20 wurde ein möglicher Standardwert zurückgegeben.

Wenn der Exportparameter eine Tabellenstruktur enthält, fehlen in Release 6.40 die Einträge, wohingegen in Release 6.20 jede Tabelle mindestens einen Eintrag hatte und alle Felder leer sein konnten. Wenn ein derartiger Tabellenparameter dem aufrufenden Skript zurückgegeben wird, können die gleichen Probleme auftreten, die unter Behandlung von Tabellenparametern beschrieben sind.

Sie sollten eine direkte Zuweisung der Werte von Exportparametern vornehmen oder Ergebnisse von eCATT-Befehlen verwenden. Beachten Sie auch die erweiterte Behandlung von Tabellenparametern mit Initialwerten.

Initialwerte von Parametern vergleichen

Initialwerte von Parametern und lokalen Variablen sind abhängig vom Datentyp des Parameters. In der Regel gibt es zwei unterschiedliche Typen:

·        Zeichentypen mit dem Initialwert SPACE (Leerstelle) oder leere Zeichenketten.

·        Numerische Typen mit dem Initialwert 0 (Null)

Die eCATT-Befehle IF, ELSEIF, EXIT und CHEVAR haben Bedingungen, mit denen sich die Werte von Parametern vergleichen lassen. Die Vergleiche mit Initialwerten zeigt die Unterschiede zwischen den Releases 6.20 und 6.40 auf.

Diese Grafik wird im zugehörigen Text erklärt

 

Diese Grafik wird im zugehörigen Text erklärt

 

 

In Release 6.20 wurde zwischen 0 (Null) und einer Leerstelle nicht unterschieden. Initialwerte beider Typen wurden identisch behandelt. Als Beispiel soll C ein initialer Parameter des Typs Char (Zeichenkette) und N ein initialer Parameter des Typs Num (numerisch) sein. Alle der folgenden Bedingungen waren wahr (true) in Release 6.20:

In Release 6.40 ist ein Parameterwert 0 (Null) mit einem beliebigen Typ nicht dasselbe wie ein Parameterwert SPACE (Leerstelle) oder ein Parameter mit leerer Zeichenketten. Deswegen unterscheiden sich einige der obigen Bedingungen gegenüber denen aus Release 6.20.

Bedingungen, mit denen Initialwerte von Parametern verglichen werden, müssen Sie ändern, um die neuen im obigen Beispiel genannten Vergleichswerte zu reflektieren. Die letzten beiden Zeilen des hier verwendeten Beispiels zeigen jedoch, dass es immer noch möglich ist, direkte Vergleiche zwischen Initialwerten unabhängig vom Typ vorzunehmen.

 

Ende des Inhaltsbereichs