Auswählen oder Löschen aus Listenobjekten anhand Bedingung

Diese Funktionalität wird ab V9.09 nicht mehr unterstützt.

Diese Diese Funktionalität ist nicht auf allen Plattformen unterstützt.

EXEC TAA
   COPYLIST <Objektname-1> TO <Objektname-2>
   WHERE <bedingung>
END-EXEC

EXEC TAA
   DELETELIST <Objektname>
   WHERE <bedingung>
END-EXEC

Mit den beschriebenen Anweisungen beauftragen Sie die Infrastruktur, ein Listenobjekt zu bearbeiten, indem für alle Einträge, auf die die angegebene Bedingung zutrifft, eine Aktion ausgeführt wird.

Zur Zeit implementiert sind die Aktionen „Copylist“ und „DeleteList“:

Die <Bedingung> entspricht von der Syntax her den Bedingungen, wie sie in CTV-Pseudocode (also in KnowlEdge) verwendet werden.

Allerdings sind nicht alle dort vorhandenen Möglichkeiten zulässig, da nicht alle Abfragen von der für COBOL verfügbaren Infrastruktur (auch unter MVS) verfügbar sind:

Außerdem sind folgende Punkte unbedingt zu beachten:

  <objektname>.<feldname>

An dieser Syntax erkennt die Syntaxprüfung, dass es sich um ein Feld in einem TAA-Objekt handelt, im Gegensatz zu einer selbst definierten COBOL-Variablen.

Wenn ein Feld aus einem TAA-Objekt zu einem Vergleich verwendet wird, so wird der Feldinhalt verwendet, der zum Zeitpunkt des Vergleichs in der Infrastruktur vorliegt, also beim letzten PUT übergeben wurde. Änderungen am Objektinhalt, die nicht durch einen PUT übergeben wurden, haben folglich keine Wirkung.

Auch wenn Felder aus dem zu bearbeitenden Objekt selbst referenziert werden, ist der komplette Feldname - einschließlich Objektnamen - anzugeben, sonst wird der angegebene Name als Nicht-TAA-COBOL-Variable behandelt.

01 mynumcomp pic x(9).
01 mynumcomp-n pic s9(9) comp.

.....

.....
move 55555555 to mynumcomp-n
move mynumcomp-n to mynumcomp
exec taa copylist mysrc to mytgt
     where mysrc.000-zahl > mynumcomp
end-exec

Der Inhalt der COBOL-Variablen wird der Infrastruktur unmittelbar vor Ausführung des Vergleichs übergeben.

Bitte achten Sie genau auf das Format der in den Bedingungen angegebenen Variablen. Felder in TAA-Objekten werden nur mit Punkt erkannt, nicht mit Bindestrich! Die Nutzung von „_“ statt „.“ führt zu unterschiedlichen Ergebnissen.