[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Mar 2019
    Beiträge
    5

    Question Kommando SNDRPY funktioniert nicht

    Ich bin relativ neu in der IBM i Welt unterwegs und bin dabei ein CL Programm zu erstellen
    welches im Batch laufen soll.
    Problem habe ich mit dem Kommando SNDRPY.

    Ich möchte Journale löschen. Falls diese noch nie gesichert wurden soll die Meldung
    mit "C" automatisch beantwortet werden falls CPA7025 erscheint.

    DLTJRNRCV JRNRCV(SAPSJ1RNL/QSQJRN*) DLTOPT(*NONE)
    MONMSG MSGID(CPA7025) EXEC(SNDRPY MSGKEY(7025) +
    MSGQ(QSYS/QSYSOPR) RPY('C'))

    Beim Start im Batch wird die Fehlermeldung in die Message-Queue QSYSOPR/QSYS geschrieben.
    Der MONMSG bzw. SNDPRY Befehl scheint nicht zu funktionieren.

    Mache ich hier etwas falsch , z.B. bzgl. Message-Key ( 7025 ???? )


    ---> F1


  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    18.031
    Das ist auch kein Wunder.
    Der DLTJRNRCV sendet die Nachricht an QSYSOPR und wartet auf die Antwort.
    Dadurch kann dein MONMSG auch nicht wirken.
    Ein SNDRPY geht nur, wenn man per RCVMSG vorher den MSGKEY einer Nachricht besorgt hat.

    Um Nachrichten beantworten zu lassen, selber geht das nämlich nicht, muss man einen CHGJOB INQMSQRPY durchführen.
    Hier gibt es 3 EInstellungen:
    *RQD geht an den Requestor (Dialog oder QSYSOPR).
    *DFT beantwortet mit dem Default der Nachricht
    *SYSRPYL mit einer definierten Antwort.

    *RQD hast du ja schon kennengelernt.
    *DFT wird nicht helfen, da der Default wohl eher "C" für Cancel ist (siehe DSPMSGD)
    Die einzige Chance ist *SYSRPYL.
    Dies ist die Systemantwortliste, die per WRKRPYLE bearbeitet werden kann.
    Hier kann man dann die von Default abweichende Antwort hinterlegen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: http://www.fuerchau.de/software/upload400.htm
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Mar 2002
    Beiträge
    4.810
    DLTJRNRCV DLTOPT(*IGNINQMSG) ist Dein freund.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  4. #4
    Registriert seit
    Mar 2019
    Beiträge
    5
    DLTJRNRCV DLTOPT(*IGNINQMSG) löscht alle Jounale, auch die noch nicht gesicherten.

    Ich möchte nur die Funktion im BATCH nachstellen die ich im DIALOG bekomme.
    Also: Automatisches "C" setzen falls CPA7025 hochkommt damit der Job abgebrochen wird.

    Reinhard Doeker

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    4.810
    ... dann zieht Baldurs CHGJOB (oder passende JOBD verwenden).

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  6. #6
    Registriert seit
    Mar 2019
    Beiträge
    5
    Also mit der Systemantwortliste funktioniert es.
    Nur muss man dafür sorgen wenn zur Laufzeit CHGJOB INQMSQRPY abgesetzt wird die älteren Jobs
    gelöscht sind ansonsten erhält man Meldung "doppelte Jobs....).


    Bei SNDRPLY im CL habe ich folgendes probiert:

    1) Message CPA7025 manuell erzeugt:
    SNDPGMMSG MSGID(CPA7025) MSGF(QSYS/QCPFMSG) TOMSGQ(QSYS/QSYSOPR) MSGTYPE(*INQ)
    DLYJOB DLY(5)
    RCVMSG MSGQ(QSYS/QSYSOPR) MSGTYPE(*LAST) RMV(*NO) KEYVAR(&MSGKEY) MSGID(&MSGID)
    IF COND(&MSGID *EQ 'CPA7025') THEN(DO)
    SNDRPY MSGKEY(&MSGKEY) MSGQ(QSYS/QSYSOPR) RPY('C')

    Hier funktioniert das Beantworten der Nachricht !


    2) Lösch-Befehl ausgeführt der CPA7025 erzeugt:
    DLTJRNRCV JRNRCV(SAPSJ1JRN/QSQJRN*) DLTOPT(*NONE)
    DLYJOB DLY(5)
    RCVMSG MSGQ(QSYS/QSYSOPR) MSGTYPE(*LAST) RMV(*NO) KEYVAR(&MSGKEY) MSGID(&MSGID)
    IF COND(&MSGID *EQ 'CPA7025') THEN(DO)
    SNDRPY MSGKEY(&MSGKEY) MSGQ(QSYS/QSYSOPR) RPY('C')

    Hier klappt es nicht obwohl CAP7025 ebenfalls in der QSYSOPR steht.

    Reinhard Doeker

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    18.031
    Der CHGJOB sollte im eigenen Job durchgeführt werden, da (*) keine Duplikate bringt.
    Was deinen DLT angeht, so stimmt das Muster in der Antwortliste nicht überein.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: http://www.fuerchau.de/software/upload400.htm
    BI? Da war doch noch was: http://www.ftsolutions.de

  8. #8
    Registriert seit
    Mar 2019
    Beiträge
    5
    Sorry, verstehe ich nicht.
    Im CL-Programm setze ich folgende Befehl ab: CHGJOB JOB(SAVE_JRN) INQMSGRPY(*SYSRPYL)
    SAV_JRN ist ein gegeplanter Job.
    Lasse ich den Job im Batch laufen ist alles soweit ok.
    Bei einem zweiten Start erhalte ich Fehler:
    Nachricht . . . : (C D I R) CPF1332 von SAVE_JRN_Y bei 200
    Fehler bei Anweisung 2000 festgestellt. Der Nachrichtentex
    Ende der doppelten Jobnamen..
    In der Spool stehen Einträge vom ersten Job:
    Datei Benutzer Warteschl. Ben.-Daten
    QPDSPJOB DOEKREIN BETRX
    QPPGMDMP DOEKREIN QEZDEBUG
    QPJOBLOG DOEKREIN QEZJOBLOG SAVE_JRN

    Dewegen lösche ich im CL als erstes mit DLTSPLF FILE(*SELECT) SELECT(DOEKREIN) die Dateien.
    Der löscht dann aber auch alles, was eigentlich auch nicht sein soll.

    Wie wären denn die richtigen Parameter beim CHGJOb Befehl ?

  9. #9
    Registriert seit
    Nov 2003
    Beiträge
    2.267
    CHGJOB INQMSGRPY(*SYSRPYL)

  10. #10
    Registriert seit
    Mar 2019
    Beiträge
    5
    Danke an beide, funktioniert nun.

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    18.031
    Wie ich sagte, JOB(*) => Default, ist immer der eigene!
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: http://www.fuerchau.de/software/upload400.htm
    BI? Da war doch noch was: http://www.ftsolutions.de

Ähnliche Themen

  1. AS/400 520 mit Twinax für Console VGA funktioniert nicht
    Von HELROHA im Forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 21-08-17, 08:07
  2. SET_COLUMN_ATTRIBUTE funktioniert nicht ?
    Von a.wojcik im Forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 09-06-16, 16:14
  3. SQL IS nOT NULL funktioniert nicht auf V7.1
    Von hs im Forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 31-01-14, 11:49
  4. Antwortlisteneintrag funktioniert nicht
    Von JonnyRico im Forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 03-03-03, 08:59

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •