× 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.



Rob,

this is a difficult question and I don't know a good method. You cannot
presage on which level the "basic" error message appears. Let me know if you
figure out a practial solution.

Regards,
Werner Noll 

-----Ursprüngliche Nachricht-----
Von: rob@xxxxxxxxx [mailto:rob@xxxxxxxxx]
Gesendet: Mittwoch, 23. Februar 2005 19:56
An: RPG programming on the AS400 / iSeries
Betreff: Re: AW: Exception handling with QCMDEXC


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.


-- 
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 ...


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.