PDA

View Full Version : CPF4131 im CL beim Aufruf abfangen



Seiten : [1] 2

karela66
11-08-15, 10:41
Hallo Zusammen,

ich rufe in einem CL ein RPG-Programm auf und es kommt der Fehler CPF4131 , da ich (mal wieder) vergessen hatte das Programm nach einer Dateiänderung zu wandeln.
Das Problem lässt sich dann ja durch wandeln leicht beheben.

Würde dennoch gerne den Fehler so abfangen, dass z.B. bei Aufruf im Batch oder per Jobplanung keine Fehlernachricht beantwortet werden muss…

mein Versuch im CL

CALL PGM(MY_READ1)
MONMSG MSGID(CPF4131) EXEC(GOTO CMDLBL(ENDE))

funktioniert leider nicht:
Antwort auf Nachricht in Nachrichtenwarteschlange QSYSOPR erwartet.

Kann man diesen Fehler gar nicht abfangen?

andreaspr@aon.at
11-08-15, 11:19
Schau mal ins Joblog.
Eventuell ist das nur ein Folgefehler und du musst den vorherigen Fehler abfangen.

lg Andreas

Fuerchau
11-08-15, 11:21
Hierfür musst du einen CHGJOB INQMSGRPY() durchführen.
Der Default ist *RQD was eine Meldung in QSYSOPR erwartet.
*DFT erfasst die Defaultantwort, *SYSRPYL holt die Antwort aus der Systemliste.
Beim Abbruch gibt's dann eine RPGxxxx oder CPFxxxx Meldung.

Fuerchau
11-08-15, 11:23
Die CPF4131 wird von der RPG-Runtime abgefangen und kann deshalb nicht überwacht werden.

hgdieterle
11-08-15, 11:23
Hallo
eine Option wäre:
Im CL -Programm
CHGJOB INQMSGRPY(*SYSRPYL)
Dann mit dem Command WRKRPYLE

SEQNBR > 20
MSGID CPF4131
CMPDTA
*NONE

*SAME
RPY 'D'


Additonal Parameters

DUMP *YES
CCSID *SAME

eintragen. Das Programm wird dann automatisch gedumpt

karela66
11-08-15, 11:37
Vielen Dank an alle für die ausführlichen Antworten.

karela66
12-08-15, 10:50
Hallo,
die Lösung mit der automatischen Antwort wäre für mich passend.
Der Fehler CPF4131 ist laut Joblog auch tatsächlich der erste Fehler.
Aber irgendetwas klemmt da noch. Im Job und in der benutzten Jobbeschreibung wird
INQMSGRPY(*SYSRPYL) genutzt und der Antwortlisteneintrag sieht so aus:

Folgenummer . . . . . . . . . . > 20 1-9999
Nachrichten-ID . . . . . . . . . CPF4131 Zeichenwert, *SAME, *ANY
Vergleichsdaten:
Vergleichsdaten . . . . . . . *NONE
Startposition Nachrichtendaten *SAME 1-999, *SAME, *NONE
Nachrichtenantwort . . . . . . . 'D'

Ich hätte gedacht, dass dann im SYSOPR keine Nachricht mehr zu beantworten wäre, da ja automatisch geantwortet würde.

Hat noch jemand einen Hinweis für mich, was ich ändern müsste?

Fuerchau
12-08-15, 19:07
Schau mal ins Joblog.
Wenn ein RPG-Programm mit Meldung abgebrochen wird, gibt's eine weitere RPGxxxx-Meldung die wohl auch wieder einer Antwort bedarf bis es dann zu einer CPF-Meldung kommt.
Ich denke mal, die CPF4131 wurde beantwortet.

hel400
12-08-15, 19:09
1) Kommt im RPG Pgm laut Joblog noch ein weiterer Fehler?
Falls ja, dann müsste der auch in die RPYL.

2) Den CALL im CL Pgm musst Du (zB) mit CPF0000 abfangen, weil das RPG Pgm meldet natürlich einen Fehler an das aufrufende Pgm zurück.

EDIT: Hoppla, da war schon jemand schneller :-)

karela66
13-08-15, 08:43
Hallo,

erst mal vielen Dank für die Unterstützung.

Konnte das Problem mit Hilfe des Forums lösen und die automatischen Antworten funktionieren jetzt.

Die Zustellung steht bei uns beim QSYSOPR auf *HOLD und dadurch funktionierte die automatischen Antworten nicht, was ich nicht wusste.

Nähere Infos dazu stehen hier:

http://www-01.ibm.com/support/docview.wss?uid=nas8N1018052


Habe dazu im CL temporär auf *DFT geändert

CHGMSGQ MSGQ(QSYSOPR) DLVRY(*DFT)

und schon funktioniert es.