PDA

View Full Version : Nachrichtenbehandlung nach QCMDEXC in COBOL/400



Lichtblitz
22-07-05, 10:37
Wenn ich in einem HLL-Programm wie Cobol zum Beispiel den CL-Befehl
CALL PGM(QCMDEXC) PARM('ADDLIBLE TEST' 13)
absetze und es kommt z.B. die Nachricht, dass diese Bibliothek schon vorhanden ist, kann ich diese Nachricht abfangen, ohne dass es zum Programmabruch kommt?
Klaus

P.S.
Pardon im Cobol-Programm heisst es natürlich
CALL 'QCMDEXC' USING PARM-1 PARM-2

P.S.(2)
Eigentlich will ich ja folgenden Befehl abschicken, habe aber schon Probleme mit dem Hochkomma, welches er innerhalb der Value-Hochkommata leider nicht akzeptiert (Siehe Pfeile):

01 CL-COMMANDS.
05 CLCMD-01 PIC X(100).
05 FILLER REDEFINES CLCMD-01.
10 FILLER PIC X(012) VALUE 'SNDMSG MSG(' '. <=
10 FILLER PIC X(056) VALUE 'TEST '.
10 FILLER PIC X(010) VALUE ' ') TOUSR('.
10 USER PIC X(010).
10 FILLER PIC X(002) VALUE ' ')'. <=
05 PACKV-01 PIC 9(10)V9(5) COMP-3
VALUE 100.

Nachrichten-ID . . . . : LSC0007 Bewertung . . . . . . : 10
Nachrichtenart . . . . : Diagnose
Nachricht . . . : Fortsetzung des nichtnumerischen oder hexadezimalen
Literals nicht gefunden. Eingabe nicht akzeptiert.

Ralle
22-07-05, 12:20
Ich mein mich zu erinnern je nach Compiler-Stand gibt es nach dem Parameter noch den Befehl ["ON OVERLOW" imperative-statment]. Mit dem imperative-statment könnte dann man verzweigen oder andere error-Routinen anstoßen.
vielleicht hilfst ...
Gruß

Fuerchau
25-07-05, 12:44
Wird ein Hochkomma als Literal benötigt, so ist es zu verdoppeln:

10 FILLER PIC X(012) VALUE 'SNDMSG MSG('''.

Ralle hat natürlich Recht:

CALL 'QCMDEXC' USING PARM-1 PARM-2
on error mach was
end-call