Laufzeitzustand setzen

EXEC TAA
   SET [AND RAISE] <Severity>
   GROUP { <alphanum. literal> | FROM <Datenname> }
   CODE  { <num . literal> | [FROM] <Datenname > }
   [[ARGUMENTS [=]]
   (<Feldangabe1>|<Literal1> [[,<Feldangabe1>|<Literal1>]...])]
   [[<Association> = <Feldangabe2>|<Literal2>] ... ]
END-EXEC
 
<Feldangabe> = {COBOL-Variable | <objektname>.<feldname>[(indices)]}

Wenn ein Modul die Notwendigkeit für einen Laufzeitzustand erkennt, benutzt es die SET-Anweisung, um ihn in die Liste der aufgetretenen Laufzeitzustände einzutragen. Der neu eingetragene Laufzeitzustand ist danach der aktuelle (CURRENT). Die von der TAA bereitgestellten Datenelemente enthalten anschließend die Informationen zu dem gerade gesetzten Laufzeitzustand.

Das Setzen eines Laufzeitzustands bewirkt noch keine Reaktion des Systems, außer bei Severity SysFatal: In dem Fall wird die gesamte Anwendung sofort abgebrochen. In allen anderen Fällen erfolgt die Reaktion auf den Laufzeitzustand erst, nachdem er aufgeworfen wurde, d.h. an einen Condition Handler übergeben wurde (RAISE).

Die Syntax der SET-Anweisung ermöglicht auch, den neu eingetragenen Laufzeitzustand sofort nach dem Eintragen aufwerfen zu lassen.

Die Angabe <Severity> muss einem der vorgegebenen Severity Codes entsprechen.

GROUP: Der Name der Meldungsgruppe ist in der Regel ein alphanumerisches Literal, welches nicht in Anführungszeichen stehen darf: Der Name der Gruppe kann auch als Variable angegeben werden; dies wird durch die Angabe „FROM <Name>“ kenntlich gemacht. Achtung - Wenn der Name der Gruppe als Variable angegeben ist, ist die Vor-und Nachbearbeitung von Conditions nicht auf allen Laufzeitsystemen möglich.

CODE: Gibt die Nummer der Meldung innerhalb der Meldungsgruppe an. Die Angabe kann als numerisches Literal oder über eine COBOL-Variable erfolgen. Wenn Angabe einer COBOL-Variablen kann mit „FROM“ eingeleitet werden; im Gegensatz zu GROUP ist das Wort FROM bei der CODE-Angabe optional.

Über „Associations“ können Datenbereiche übergeben werden, die nicht Argumenten zugeordnet sind. Der Name einer Association muss ein alphanumerisches Literal sein und darf nicht in Anführungszeichen stehen.

Wenn ein Laufzeitzustand mit der angegebenen Gruppe und dem Code in der TAA-Infrastruktur nicht bekannt ist, wird er mit Default-Angaben in die Liste der aufgetretenen Laufzeitzustände eingetragen.

Alphanumerische Argumente, die als Literal übergeben werden, werden auf max. 59 Zeichen abgeschnitten. Alphanumerische Argumente, die als Variable übergeben werden, werden auf max. 80 Stellen abgeschnitten. Längere Strings können als Datenverbindung übergeben werden.

Beispiel:

sample.cbl
EXEC TAA SET AND RAISE WARNING
    GROUP IOSYS CODE 73
    (OF-NAME, SYS-CODE)
    FILENAME = OF-NAME FILE-OP = "OPEN"
END-EXEC
 
EXEC TAA SET AND RAISE ERROR 
    GROUP FROM WS-CNDGROUP CODE WS-CNDCODE
    (OF-NAME, SYS-CODE)
    FILENAME = OF-NAME FILE-OP = "OPEN"
END-EXEC