[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Dec 2002
    Beiträge
    4

    Post CPF-Fehlermeldung aus API in MSGSFL

    Hallo!

    Ich habe ein Problem bei einem Dialogprogramm.

    Innerhalb des Dialogprogramms (ILE-RPG IV) wird eine Subdatei gefüllt, unter anderem mit Programmnamen und den dazugehörigen Objektbeschreibungen.

    Die Beschreibungen werden direkt von der AS/400 geholt. Dies geschieht mit dem API QUSROBJD.
    Das funktioniert auch, aber wenn die Objektbeschreibung für ein Programm geholt werden soll, welches nicht mehr existent ist, wird die CPF-Fehlermeldung unten in der MSGSFL ausgegeben.

    Dies würde ich gerne vermeiden, da eine eigene Fehlermeldung ausgegeben werden soll bzw. in der Subfileanzeige garkeine Fehlermeldung.

    Innerhalb des RPGs habe ich den Fehler in einem Monitor-Block "aufgefangen", aber die Meldung kommt trotzdem.
    Auch das ersetzen von QUSROBJD durch QCMDEXC mit CHKOBJ hat nichts gebracht, die Meldung kommt immer noch (zusätzlich zu der manuell von mir eingestellten).

    Ich hoffe, jemand kann mir dabei weiterhelfen...
    Ich bin über jede Antwort sehr dankbar...

    Viele Grüße
    Andy

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695

    Post

    Die Nachrichten der API's werden ins Joblog geschrieben. Die MSGSFL liest selbständig diese Nachrichten aus. Mit dem Schlüsselwort SFLMSGKEY (Feld mit char 4) kannst du den 1. Nachrichten-Key festlegen ab dem die Nachrichten ausgegeben werden sollen.
    Wenn die Nachrichten NICHT gebraucht werden, dann entferne sie mit RCVMSG ... RMV(*YES) bzw. dem entsprechenden API.
    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
    Dec 2000
    Beiträge
    79

    Post

    Hallo,
    wenn du beim API Aufruf die optionale Fehlerstruktur übergibst, werden die *ESC oder *DIAG Messages nicht mehr gesendet.

    Thomas

  4. #4
    Registriert seit
    Dec 2002
    Beiträge
    4

    Post

    Danke für Eure schnellen Antworten!

    Zu Fehler-DS bei API: Genau so kannte ich auch die Fehlerbehandlung bei APIs. Innerhalb der Fehlerdatenstruktur war dann auch der entsprechende CPF-Code angegeben.

    Bei dem Aufruf von QUSROBJD ist das nicht so.
    Bei angegebener Fehler-DS "hängt" sich das Programm auf, wenn CPF9811 erfüllt ist (Programm nicht gefunden). Die Fehler-DS ist nicht gefüllt.

    Zwar waren meine bisherigen API-Programme nicht Dialog, aber die DS wurde bei API Fehlern immer gefüllt.

    Hat jemand eine Idee was der Haken sein könnte?

    Vielen Dank im Vorraus!

  5. #5
    Registriert seit
    Dec 2000
    Beiträge
    79

    Angry

    Hm,
    ich hab mir mal meine (produktiv) laufenden C-Programme angesehen, du hast recht, da ist was oberfaul.

    Das Feld Bytes_Available der Fehler DS wird zwar auf > 8 gesetzt, aber die MSGID der Exception fehlt in der DS.

    Sieht nach einem PMR aus

    Thomas

  6. #6
    Registriert seit
    Dec 2002
    Beiträge
    4

    Post

    Hallo!

    Danke für die schnelle Antwort.

    Aber was ist denn ein PMR?

    Außerdem hätte ich noch eine Frage wegen der Fehler-DS:
    Wie kann ich denn die Behandlung von Nachrichten vom RPG fernhalten, wenn ich QCMDEXC verwende?
    Dort "darf" ich ja keine Fehler-DS angegeben.
    Und bei QCMDEXC wird auch in die MSGSFL geschrieben...

    Viele Grüße

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.695

    Post

    1. den CALL 'QCMDEXC' mit Bezugszahl abfangen
    2. Wenn Bezugszahl an ist, mmit API QMHRCVMSG (oder so ähnlich) die Fehlermeldungen aus dem Joblog entfernen.

    Andere Variante direkt in CLP:

    chkobj .....
    monmsg cpf9800 exec(do)
    rcvmsg .... type(*last) rmv(*yes)
    enddo

    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

Similar Threads

  1. Probleme API QUSLJOB aufzurufen
    By TMusolf in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 25-01-07, 12:42
  2. javamail api
    By jogisarge in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 22-11-06, 16:02
  3. Eingabe sperren bei Fehlermeldung über API
    By ExAzubi in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 17-10-06, 16:48
  4. Fehlermeldung sichtbar machen
    By steven_r in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 14-08-06, 16:29
  5. MCH0601 - Fehlermeldung
    By A_Mroos in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 26-06-06, 12:12

Berechtigungen

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