[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    May 2006
    Beiträge
    195

    Nachricht in QSYSOPR löschen, nicht ausgeben

    Hallo *all,
    Problem:
    ich möchte das Fehler CPC1125 nicht in der QSYSOPR-Warteschlange erscheint.
    Meine Lösungsansätze:
    - Nachricht ausgeben und anschliessend löschen (keine ahnung wie)
    - Bewertungscode der Fehler von 50 auf 10 setzen (gemacht, erscheint trotzdem)

    Habt ihr ev. eine weitere möglichkeit?

    signoff.

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Die Warteschlange kann mittels RCVMSG per CLP gelesen werden.
    Auf CPC1125 filtern und per RMVMSG dann löschen (Achtung: nicht schon beim RCVMSG).
    Dem Programm verbieten, diese Nachricht zu senden, geht ja nicht.
    Der Bewertungscode ist nur eine Info.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    May 2006
    Beiträge
    195
    Meinst du so

    ENDJOB JOB(&JOB) OPTION(*IMMED) +
    SPLFILE(*NO) LOGLMT(0)
    MONMSG MSGID(CPF0000)

    RCVMSG MSGQ(QSYSOPR) MSGTYPE(*FIRST) WAIT(1) +
    RMV(*NO) KEYVAR(&MSGKEY) MSGID(&MSGID)
    MONMSG MSGID(CPF0000)

    RMVMSG MSGQ(QSYSOPR) MSGKEY(&MSGKEY)
    MONMSG MSGID(CPF0000)

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Ja, das hast du korrekt erkannt.
    Nur musst du mit MSGTYPE(*NEXT) zum Key weiterlesen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    May 2006
    Beiträge
    195
    Habe geändert,
    aber RCVMSG leifert kein MSGkey zurück.

    ENDJOB JOB(&JOB) OPTION(*IMMED) +
    SPLFILE(*NO) LOGLMT(0)
    MONMSG MSGID(CPF0000)

    RCVMSG MSGQ(QSYS/QSYSOPR) MSGTYPE(*NEXT) +
    MSGKEY(&MSGKEY) RMV(*NO)
    MONMSG MSGID(CPF0000)

    RMVMSG MSGQ(QSYSOPR) MSGKEY(&MSGKEY)
    MONMSG MSGID(CPF0000)

  6. #6
    Registriert seit
    May 2006
    Beiträge
    195
    Was ist ein MSGKEY ?
    CPC1125

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Nun, &MSGKEY liefert eine 4-Byte-ID.
    Beim 1. RCVMSG musst du *FIRST wählen, dann wird ein MSGKEY geliefert.
    Bei allen weiteren mit *NEXT weiterlesen.
    Wenn du allerdings den RMVMSG gemacht hast, kannst du mit diesem MSGKEY keinen *NEXT mehr machen. Dies müsstest du vorher tun.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  8. #8
    Registriert seit
    May 2006
    Beiträge
    195
    Kann ich nicht einfach,
    die Meldung von dem letzten Befehl empfangen?

    (ich habe im Programm ENDJOB... , dieses ENDjob gibt die Meldung CPC1125, und die möchte ich abfangen und löschen.)

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Leider nein.
    ENDJOB beendet deinen Job, dies ist dann die letzte Anweisung deines Programmes.
    Wenn du einen MONMSG danach machst, wird dieser nur ausgeführt, wenn der ENDJOB aus irgendwelchen Gründen scheitert (habe ich aber noch nie erlebt).
    Das Löschen aus der QSYSOPR muss also ein anderer Job machen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  10. #10
    Registriert seit
    May 2006
    Beiträge
    195
    habe mich falsch ausgedruckt.
    ich habe ein Programm , dieses programm macht ENDJOB auf ein anderen Job.
    D.h. Das Programm läuft ganz normal weiter.

  11. #11
    Registriert seit
    May 2006
    Beiträge
    195
    habe erst mal so gelösst:

    ENDJOB JOB(&JOB) OPTION(*IMMED) SPLFILE(*NO) LOGLMT(0)
    MONMSG MSGID(CPF0000)

    RCVMSG MSGQ(QSYS/QSYSOPR) MSGTYPE(*LAST) RMV(*NO) +
    KEYVAR(&MSGKEY) +
    MSGID(&MSGID)
    MONMSG MSGID(CPF0000)

    IF COND(&MSGID *NE 'CPC1125') THEN(GOTO +
    CMDLBL(ENDE1))

    RMVMSG MSGQ(QSYSOPR) MSGKEY(&MSGKEY)
    MONMSG MSGID(CPF0000)
    ENDE1:

Similar Threads

  1. API QMHRCVM Prüfen ob Nachricht bereits beantwortet ist
    By oulbrich in forum NEWSboard Programmierung
    Antworten: 0
    Letzter Beitrag: 18-11-13, 08:52
  2. Nachricht wenn beendet (QRYPROD)
    By heynem in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 27-03-03, 12:14
  3. Nicht funktionierenden View löschen
    By Burgy Zapp in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 06-03-02, 14:38
  4. QSYSOPR msg an meine MSGQ??
    By Dana in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 14-12-01, 09:35
  5. QSYSOPR darf nicht mit OpNav
    By Gattringer in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 30-11-01, 09:55

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •