• Subject: Re: RE: QCMDEXC from RPG program
  • From: David Morris <dmorris@xxxxxxxxxxxxx>
  • Date: Fri, 23 Jan 1998 09:46:54 -0700


Have you ever had this happen?  QCMDEXC should not change the call level.  
Commands are run at the level of the caller.  There should be no problem if you 
place the procedure in a program or service program that specifies 
ACTGRP(*CALLER).  The default value for ovrscope is *ACTGRPDFN.  For 
example your ILE program which runs in a named activation group QILE calls 
your new subprocedure ExecuteCmd which is in a service program that specifies 
caller.  If an override command is passed that specifies the default value for 
OVRSCOPE(*ACTGRPDFN) .  Your override will affect all file opens done 
by any program running in the activation group QILE.

The problem you describe should only happen for programs running in the default 
activation group.  This is because *ACTGRPDFN is converted to *CALLLVL in 
this case.

I have not used our procedure to execute override commands, but if overrides
use *CALLLVL because QCMDEXC is an OPM program I would say that is a bug,  
or IBM should provide an CEE4 equivalent.  QCMDEXC is supposed to be 
transparent to the command that is executed.  Let me know if you have 
otherwise.  If I get a few minutes I will test with an override and let you 
know what I 


David Morris

>>> "Leland, David" <dleland@harter.com> 01/22 2:15 PM >>>
Of course you realize that this doesn't work when the command you want
to execute is an override (OVRDBF, OVRPRTF, etc.) unless you use
OVRSCOPE(*JOB), which can be risky.


>From:  David Morris[SMTP:dmorris@plumcreek.com] 
>Sent:  Thursday, January 22, 1998 9:37 AM
>To:  RPG400-L@midrange.com 
>Subject:  Re: QCMDEXC from RPG program
>It looks like you need to define the command string length as 15P 5. 
>You might 
>also consider prototyping the call to make it easier to work with.  I
>think there is an 
>example in the manual.  Here is what ours looks like:
>     DQCmdExc          PR                  EXTPGM('QCMDEXC')           
>        Execute a command.
>     D PR_CmdStr                   4096A   CONST OPTIONS(*VARSIZE)
>     D PR_CmdStrLen                  15P 5 CONST
>     C                   CALLP     QCmdExc(CmdStr:
>     C                                     %LEN(%TRIMR(CmdStr)))
>We built a this into a subprocedure so we can do something like:
>EVAL ErrFlg = ExcCmd('SndMsg Msg(''Bla Bla Bla'')': RtnMsgID:
>The return message is set from the program status data structure.
>David Morris
>>>> maena <maena@correo.com> 01/21 11:59 AM >>>
>I'm trying to use the QCMDEXC utility from an ILE RPG program, but I
>receive a runtime error which says that the syntax command passed to
>QCMDEXC is incorrect. The same sentence used from the command line is
>successful, so I suppose that the problem is related with the
>Here you have an example:
>*D specs:
>VCmd S 255
>VLen S 15S 2
>*C specs
>CmdParms PLIST
>  PARM   VCmd
>  PARM  VLen
>  EVAL VLen=29
>  CALL 'QCMDEXC' CmdParms
>Could anyone point me to the error in my RPG code?
>M Elena Vzquez

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* This is the RPG/400 Discussion Mailing List!  To submit a new         *
* message, send your mail to "RPG400-L@midrange.com".  To unsubscribe   *
* from this list send email to MAJORDOMO@midrange.com and specify       *
* 'unsubscribe RPG400-L' in the body of your message.  Questions should *
* be directed to the list owner / operator: david@midrange.com          *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

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