Prozedurintern und beim Aufruf von Hintergrund-Prozeduren kann angegeben werden, ob die aktuelle Angabe sich auf Kommandos oder auf Daten (oder beide) beziehen soll. Die Operanden LOGGING-ALLOWED bzw. LOGGING haben bei allen entsprechenden Kommandos die gleiche Form:
Soll sich die Angabe sowohl auf Kommandos als auch auf Daten beziehen, muss der Operand in der Form LOGGING[-ALLOWED] = *YES bzw. *NO angegeben werden.
Soll sich die Angabe nur auf Kommandos beziehen, muss der Operandenwert in der Form LOGGING[-ALLOWED] = *PARAMETERS(CMD = *YES) bzw. (CMD = *NO) angegeben werden.
Entsprechend gilt, wenn sich die Angabe nur auf das Protokollieren von Daten beziehen soll, der Operandenwert *PARAMETERS(DATA = *YES) bzw. (DATA = *NO).
Die nachfolgende Tabelle zeigt die Wechselwirkungen der Einstellungen in den Kommandos SET-PROCEDURE-OPTIONS, MODIFY-PROCEDURE-OPTIONS, CALL-PROCEDU-RE / INCLUDE-PROCEDURE.
Ob Kommandos oder Daten aktuell protokolliert werden, kann mit der vordefinierten Funktion LOGGING-MODE( ) abgefragt werden, und zwar mit dem Operanden STREAM = *CMD/*DATA.
SET-PROC-OPTION / Operand | CALL-PROCEDURE bzw. INCLUDE-PROCEDURE | |||||
*YES | *NO | *PARAM | *PARAM | *PARAM | *PARAM | |
*YES | K/D | -/- | K/* | -/* | */D | */- |
*NO | -/- | -/- | -/- | -/- | -/- | -/- |
*PAR(CMD= *Y) | K/D | -/- | K/* | -/* | */D | */- |
*PAR(CMD = *N) | -/D | -/- | -/* | -/* | */D | -/- |
*PAR(DATA = *Y) | K/D | -/- | K/* | -/* | */D | */- |
*PAR(DATA = *N) | K/- | -/- | K/* | -/- | */- | */- |
K/D | Kommandos und Daten werden protokolliert |
-/- | weder Kommandos noch Daten werden protokolliert |
K/- | nur Kommandos werden protokolliert |
-/D | nur Daten werden protokolliert |
* | ob Kommandos/Daten protokolliert werden, hängt von der Einstellung im Kommando MODIFY-PROCEDURE-TEST-OPTIONS ab. |
Hinweise
Wenn S-Prozeduren protokolliert werden, weist das Protokoll immer Zeilennummer und Prozedurebene aus, so dass im Fehlerfall der Fehler leicht lokalisiert werden kann.
Wenn Schleifen protokolliert werden, wird das Kommando, das die Schleife einleitet, nur einmal protokolliert. Das Kommando, das die Schleife abschließt, wird bei jedem Schleifendurchlauf protokolliert.
Wenn vor dem Aufruf eines Kommandos eine S-Marke steht (marke:), werden Kommando und Marke getrennt protokolliert.
Kommentar-Kommandos werden nicht protokolliert. (Kommentar-Kommandos sind Kommandozeilen, die nur aus einem Kommentar bestehen.)