[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    May 2004
    Beiträge
    44

    MONMSG: Inhalt abfragen

    Hallo,

    wir haben in zahlreichen CL-Programmen MONMSG-Abfragen, unter anderem fragen wir CPF3773 ab (&1 Objekte zurückgespeichert. &2 nicht in &4 zurückgespeichert).
    Gibt es eine Möglichkeit, hier (und in diversen ähnlichen CPF-MONMSG-Konstrukten) eine inhaltliche Prüfung durchzuführen - z.B. um zu prüfen, ob es tatsächlich Objekte gibt, die nicht zurückgespeichert wurden?
    Momentan laufen die Programme auch in die Fehlerroutine MONMSG MSGID(CPF3773), wenn die Meldung lautet:
    "14 Objekte zurückgespeichert, 0 nicht in Biblitohek zurückgespeichert".

    Vielen Dank im Voraus,
    Jörg Hamacher

  2. #2
    Registriert seit
    Oct 2013
    Beiträge
    171
    Natürlich; man kann mit RCVMSG die Nachricht empfangen und somit auch die Nachrichtendaten. Bei CPF3773 interessiert Dich &2, das ist eine 4 Byte lange Zahl, ab Stelle 5 in den Nachrichtendaten. Wenn Dich die Zahl selber nicht interessiert, kann man die 4 Bytes auch mit der Zeichenfolge x'00000000' vergleichen.
    Code:
                 DCL        VAR(&MSGDTA) TYPE(*CHAR) LEN(512)    
                 DCL        VAR(&HEX004) TYPE(*CHAR) LEN(4) VALUE(X'00000000') 
    ...
                 MONMSG     MSGID(CPF3773) EXEC(DO)                          
                 RCVMSG     MSGQ(*PGMQ) MSGTYPE(*LAST) RMV(*NO) +            
                              MSGDTA(&MSGDTA)                                
                 IF         COND(%SST(&MSGDTA 5 4) *NE &HEX004) THEN(DO)     
    /* Hier ist klar, dass mind. 1 Objekt nicht zurückgespeichert wurde. */
                 ENDDO                                                       
                 ENDDO

  3. #3
    Registriert seit
    Nov 2003
    Beiträge
    2.304
    Mit DSPMSGD CPF3773 sieht man die Nachrichtendetails und unter "Felddaten anzeigen" sieht man weitere Informationen zu den einzelnen Feldern der Nachricht.

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Statt Hex kann man auch %bin(%sst(&msgdta 5 4)) verwenden.
    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
    Aug 2001
    Beiträge
    2.869
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Statt Hex kann man auch %bin(%sst(&msgdta 5 4)) verwenden.
    ... Und mit %INT() oder %UINT() kann man gleich den Integer-Wert ermitteln.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

Similar Threads

  1. Mehrere MONMSG hintereinander ? Wie ?
    By c.b. in forum NEWSboard Programmierung
    Antworten: 23
    Letzter Beitrag: 06-01-16, 14:29
  2. CPYTOIMPF Blank beim Export aber Inhalt von Feld = leer
    By TheDevil in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 05-06-14, 22:47
  3. Frage zu MONMSG
    By hs in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 14-08-02, 08:09
  4. Antworten: 10
    Letzter Beitrag: 23-01-02, 15:02
  5. Inhalt von erstellten Spoolfiles manipulieren
    By Schnichels in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 14-11-01, 20:28

Tags for this Thread

Berechtigungen

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