View Full Version : CPF4131 im CL beim Aufruf abfangen
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
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.
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
Vielen Dank an alle für die ausführlichen Antworten.
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?
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.
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 :-)
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.