× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Do we have to customize it depending on the message?  For example, on the 
CHKOBJ you use will the second retrieve be sufficient, but on my example
CPD0032-Not authorized to command KICKBOOTY in library *LIBL.
CPF0001-Error found on KICKBOOTY command. 
CPF0006-Errors occurred in command. 
Will I have to run it 3 times?  If so, I might wrap it in my own recursive 
subprocedure and have it dig deeper if the message is either CPF0006 or 
CPF0001.

Rob Berendt
-- 
Group Dekko Services, LLC
Dept 01.073
PO Box 2000
Dock 108
6928N 400E
Kendallville, IN 46755
http://www.dekko.com





Werner Noll <werner.noll@xxxxxxxxx> 
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
02/23/2005 12:06 PM
Please respond to
RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>


To
"'RPG programming on the AS400 / iSeries'" <rpg400-l@xxxxxxxxxxxx>
cc

Subject
AW: Exception handling with QCMDEXC






Rob,

some time ago I did some "research" on this problem. I created a procedure
called YRCVPRVMSG (Receive previous message). An example for the usage:

D yRcvPrvMsg      PR                   Like($GEMDS)
D $GEMDS        E DS                  ExtName(YGEMDS) Qualified

   p$CmdStg = 'CHKOBJ OBJ(''HUGO'') OBJTYPE(*PGM)'; 
   CallP(E) QCMDEXC(p$CmdStg:%len(p$CmdStg)); 
   If %error; 
      // Call Procedure 
      $GEMDS = yRcvPrvMsg(); 
      // Display Error Message
      If $GEMDS <> *blanks; 
          r$RtnVal = yDspMsgWdw($GEMDS.MsgId:$GEMDS.MsgF:$GEMDS.MsgFLib: 
                     $GEMDS.MsgDta); 
      EndIf; 
   EndIf; 


The code of the procedure yRcvPrvMsg is:

 yRcvPrvMsg      B                   Export 
 
 yRcvPrvMsg      PI                  Like($GEMDS) 
 
 r$GEMDS         S                   Like($GEMDS) 
 #MsgKey         S              4A 
 #StackCnt       S             10I 0 
 
/free 
 $GEMDS    = *blanks; 
 r$GEMDS   = *blanks; 
 #MsgKey   = *ALLx'00'; 
 #StackCnt = 1; 
 
 QMHRCVPM($RCVM0200:%size($RCVM0200):'RCVM0200':'*':#StackCnt:'*PRV': 
          #MsgKey:0:'*SAME':$APIErrDS); 
 If $GEMDS.MsgId    = 'CPF0006'; 
    #MsgKey = $RCVM0200.MsgKey; 
    QMHRCVPM($RCVM0200:%size($RCVM0200):'RCVM0200':'*':#StackCnt:'*PRV':
             #MsgKey:0:'*SAME':$APIErrDS); 
 EndIf; 
 
 If $APIErrDS.ByteRtn = *zeros; 
    $GEMDS.MsgId    = $RCVM0200.MsgID; 
    $GEMDS.MsgF     = $RCVM0200.MsgF; 
    $GEMDS.MsgFLib  = $RCVM0200.MsgFLibU; 
    $GEMDS.MsgDta   = %subst($RCVM0200.MsgText:1:$RCVM0200.LenRtn); 
 EndIf; 
 
 r$GEMDS = $GEMDS; 
 Return r$GEMDS; 
 /end-free 
 
P yRcvPrvMsg      E 
 
There are some company individual specials inside it (e.g. $GEMDS). But 
the
usage of the QMHRCVPM can be reproduced by my code.
The procedure works, but I didn't implement it yet in applications.
Hope it can be proposal for you.

Regards,
Werner Noll


-----Ursprüngliche Nachricht-----
Von: rob@xxxxxxxxx [mailto:rob@xxxxxxxxx]
Gesendet: Mittwoch, 23. Februar 2005 17:13
An: rpg400-l@xxxxxxxxxxxx
Betreff: Exception handling with QCMDEXC


I have a routine that executes a command using QCMDEXC.  I want to check 
the results of the command.  I use the PSDS to find the results.  However 
from the joblog I get:
CALL TSTEH01 
CPD0032-Not authorized to command KICKBOOTY in library *LIBL.
CPF0001-Error found on KICKBOOTY command. 
CPF0006-Errors occurred in command. 
And what appears in the Exception message field from the PSDS?  Just 
CPF0006.  I was hoping for the CPD0032.

Tried using system(), but that just showed the CPF0006 message also.

Suggestions?

End goal is to ENDSBS and I want to see the plethora of messages displayed 

on the help for ENDSBS.  I'll process it differently depending on whether 
or not the subsystem is running, etc.

Rob Berendt
-- 
Group Dekko Services, LLC
Dept 01.073
PO Box 2000
Dock 108
6928N 400E
Kendallville, IN 46755
http://www.dekko.com

-- 
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.

-- 
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.