Laufzeitzustände (Conditions) setzen

SET [AND RAISE] <Severity> GROUP <expr-1> CODE <expr-2>
    [ARGUMENTS (<expr-3>[,..., <expr-n>] )]
     <name-1> = <expr-4> [, ..., <name-m> = <expr-m>]  
END SET

Sie können einen Laufzeitzustand (TAA-Condition) entweder setzen, oder setzen und aufwerfen (SET AND RAISE). Das Aufwerfen von Laufzeitzuständen zu einem späteren Zeitpunkt, oder das Aufwerfen/Auswerten von durch andere Module gesetzten Laufzeitzuständen, ist in CTV-Pseudocode nicht möglich. Es ist auch nicht möglich, in CTV-Pseudocode Condition-Hander zu installieren.

Als <Severity> sind nur die Werte zulässig, die als Severity von TAA-Conditions definiert sind. Zur Zeit sind dies:

Severity Bedeutung
QuestionFrage
LogProtokolleintrag
Infonur zur Information
WarningWarnung
ErrorFehler
Severeschwerer Fehler
SysFatalzum Systemabbruch führender Fehler

Als Werte für GROUP und CODE und als Argumente sowie als Werte von Associatons können alle gültigen Ausdrücke angegeben werden, also z.B. Konstante, Variablen, Inhalten von TAA-Objektfeldern. Der Wert für Code muss nummerisch sein (Nummer der Meldung in der Meldungsgruppe).

ARGUMENTS: Die Angabe von Argumenten ist optional. Argumente werden zum Ersetzen von Platzhalten in den Meldungstexten benutzt. Die Liste der Argumente steht in Klammern; die Argumente sind durch Kommas getrennt.

Associations (optional) stehen am Ende der SET-Anweisung. Der Inhalt einer Association wird unter dem angegebenen Namen an den Laufzeitzustand als Zusatzinformation angehängt. Dabei wird für jede Association ein <name> angegeben, sowie nach dem Gleichheitszeichen ein Wert. Mehrere Associations werden durch Kommas getrennt.

Die Anweisung „Set“ erzeugt den Laufzeitzustand, er wird aber nicht aufgeworfen.

Wenn die Anweisung „Set and Raise“ ausgeführt wird, wird der gesetzte Laufzeitzustand auch aufgeworfen, und das Ergebnis des Condition-Handlers ausgewertet. Im Falle eines EXIT-MODL oder EXIT-ARBG wird die Ausführung des Moduls abgebrochen, im Falle eines EXIT-ARBG auch die aufrufenden Module.

Beispiele:

// Setzen mit Argumenten und Associations:
set Info Group "LERR1" Code 5
   Arguments ("Neuanlage", Fehlercode)
   Schlüssel = lpvgesr.PARTNER-KEY,
   Aktion = "Neuanlage",
   Fehlerzeitpunkt = _Now()
end set


//Setzen und Aufwerfen, ohne Argumente aber mit Associations:
set and raise Severe Group errgrp Code 7
    Assoc1 = Fehlercode,
    Datum = ZUSAGEDATUM
end set

// Setzen und Aufwerfen, nur 1 Argument, keine Associations
set and raise Severe Group "ALLGERR" Code 1
    Arguments (Fehlercode)
end set