[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    May 2004
    Beiträge
    473
    Ich hatte am Anfang das so gemacht wie es ob als Beispiel steht. Da es nicht funktioniert hat, habe ich versucht den MONMSG hinter das RPG zu machen, da ja dort die Systemanfrage 2 ausgeführt wird. Er macht das noch nicht mal mit CPF0000 sowohl hinter dem CALL als auch ganz am Anfang. Ich würde die Quelle gerne etwas öfter posten aber das ist sehr viel arbeit, weil er mir das nicht richtig ausrichtet auch wenn ich ein PHP /PHP drum rum schnalle.
    Momentan habe ich zu Beginn der Quelle nochmal den CPF1907 probiert. Macht er nicht. Dann habe ich jetzt am Anfang statt CPF1907 den CPF0000. Das macht er. Allerdings habe ich gesagt dass er nochmal das gleiche RPG im Fehlerfall aufrufen soll. Das macht er nicht mehr.

  2. #2
    Registriert seit
    May 2004
    Beiträge
    473
    Hallo nochmal an alle

    Vielen Dank für die Hilfe.
    Also ich hab das jetzt so geändert wie Herr Fuerchau beschrieben hat. Will aber nicht die Hand dafür ins Feuer legen, dass es vorher nicht auch schon ging. Die CPF1907 bekomme ich nach wie vor nicht abgefangen aber die CPF0000.

    Viele Grüße Harkne

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.748
    Mach den MONMSG(CPF1907) am Anfang, korrigiere den SND/RCVPGMMSG auf PGMQ(*SAME).
    Prüfe während des RPG-Aufrufes den Callstack ob die Aufrufebene eine Nummer bekommen hat.
    Bei mir läuft das schon so seit V2R1.
    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

  4. #4
    Registriert seit
    Nov 2003
    Beiträge
    2.422
    Hier ein Beispiel, das bei mir funktioniert, wenn man den WRKACTJOB mit "Vorherige Anfrage beenden" abbricht:

    PHP-Code:
                 PGM                                                      
                 DCL        
    VAR(&KEYTYPE(*CHARLEN(4)                  
                                                                          
                 
    MONMSG     MSGID(CPF1907EXEC(GOTO CMDLBL(ENDRQS))      
                                                                          
                 
    SNDPGMMSG  MSG('-')   TOPGMQ(*EXTMSGTYPE(*RQS)         
                 
    RCVMSG     KEYVAR(&KEYPGMQ(*EXTMSGTYPE(*RQSRMV(*NO)
                                                                          
                 
    WRKACTJOB                                                
     ENDRQS
    :     SNDPGMMSG  MSGID(CPF9897MSGF(QCPFMSG) +                
                              
    MSGDTA('Anforderungsebene beendet') +       
                              
    TOUSR(*REQUESTER)                           
                                                                          
                 
    RMVMSG     MSGKEY(&KEY)                                  
                 
    ENDPGM 

  5. #5
    Registriert seit
    Dec 2014
    Beiträge
    310
    Zitat Zitat von Pikachu Beitrag anzeigen
    Hier ein Beispiel, das bei mir funktioniert, wenn man den WRKACTJOB mit "Vorherige Anfrage beenden" abbricht:

    PHP-Code:
                 PGM                                                      
                 DCL        
    VAR(&KEYTYPE(*CHARLEN(4)                  
                                                                          
                 
    MONMSG     MSGID(CPF1907EXEC(GOTO CMDLBL(ENDRQS))      
                                                                          
                 
    SNDPGMMSG  MSG('-')   TOPGMQ(*EXTMSGTYPE(*RQS)         
                 
    RCVMSG     KEYVAR(&KEYPGMQ(*EXTMSGTYPE(*RQSRMV(*NO)
                                                                          
                 
    WRKACTJOB                                                
     ENDRQS
    :     SNDPGMMSG  MSGID(CPF9897MSGF(QCPFMSG) +                
                              
    MSGDTA('Anforderungsebene beendet') +       
                              
    TOUSR(*REQUESTER)                           
                                                                          
                 
    RMVMSG     MSGKEY(&KEY)                                  
                 
    ENDPGM 
    ... ich denke aber, dass direkt nach dem WRKACTJOB noch ein "GOTO ENDPGM" hingehört,
    sonst kommt die Meldung ja auch bei normaler Beendigung :-)

    Aber ansonsten richtig - so geht's tatsächlich, die Sysabf-2 abzufangen.

  6. #6
    Registriert seit
    Nov 2003
    Beiträge
    2.422
    Der RMVMSG muß aber erreicht werden, damit die Anforderungsebene tatsächlich beendet wird.

    Zitat Zitat von hel400 Beitrag anzeigen
    ... ich denke aber, dass direkt nach dem WRKACTJOB noch ein "GOTO ENDPGM" hingehört, sonst kommt die Meldung ja auch bei normaler Beendigung :-)

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.748
    Die Anforderungsebene wird mit verlassen des Callstacks aufgehoben.
    Unschön ist halt nur der Verbleib der Anforderungnachricht, die man dann immer noch per F9 abholen kann (außer bei "/* */").
    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
    Nov 2003
    Beiträge
    2.422
    Wird die nicht durch den RMVMSG entfernt?

    Zitat Zitat von Fuerchau Beitrag anzeigen
    Unschön ist halt nur der Verbleib der Anforderungnachricht, die man dann immer noch per F9 abholen kann (außer bei "/* */").

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.748
    Ja, für die aktuelle Ebene.
    Da du aber mit Return verlässt ist die Aufrufebene ja auch beendet und wird nicht dem nächsten der selben Ebene zugeordnet.
    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. programm beenden
    By E305GL in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 24-09-15, 12:43
  2. CPF4131 im CL beim Aufruf abfangen
    By karela66 in forum NEWSboard Programmierung
    Antworten: 11
    Letzter Beitrag: 13-08-15, 10:26
  3. Menü Systemanfrage
    By RB in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 18-07-02, 13:59
  4. CL zeitgesteuert beenden
    By hs in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 10-06-02, 09:54
  5. Job in SBS beenden
    By hs in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 12-12-01, 10:43

Berechtigungen

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