|
If you want to forget the length parameter, you could encapsulate QCMDEXEC in a
service program. In the procedure, you can use the CEEDOD API to compute the
length of the command to run. Here is the source of such a service program:
h nomain
d cmdExec pr opdesc
d 3000a options(*varsize) const
*====================================================================
p cmdexec b export
d pi opdesc
d @cmd 3000a options(*varsize) const
*-----------------------------------------------------------------*
* Prototype for CEEDOD (Retrieve operational descriptor)
*-----------------------------------------------------------------*
d CEEDOD pr
d ParmNum 10i 0 const
d 10i 0
d 10i 0
d 10i 0
d 10i 0
d 10i 0
d 12a options(*omit)
d
* Parameters passed to CEEDOD
d DescType s 10I 0
d DataType s 10I 0
d DescInfo1 s 10I 0
d DescInfo2 s 10I 0
d InLen s 10I 0
d @lon s 15p 5
d @cmdExc s 3000a
*-----------------------------------------------------------------*
* Use the operational descriptors to determine the lengths of *
* the parameters that were passed. *
*-----------------------------------------------------------------*
c callp CEEDOD(1 : DescType : DataType :
c DescInfo1 : DescInfo2: Inlen :
c *OMIT)
c call 'QCMDEXC'
c parm @cmd @cmdExc
c parm InLen @lon
c return
p cmdexec e
Denis Robitaille
Directeur services technique TI
819 363 6130
SUPPORT
Jour (EST) Daytime : 819-363-6134
En-dehors des heures (EST) After hour : 819-363-6158
Network Status : 819-363-6157
>>> Satheeshkumar_selvaraj@xxxxxxxxxx 2005-10-03 11:18:09 >>>
The Prototype for QCMDEXC is defied as
first parameter with Variable length character (Command) and
second parameter as 15P5 numeric (Length of the Command).
So your call should match with the prototype of the API.
This rule applies for any API or program you call.
Satheesh
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of murali dhar
Sent: Monday, October 03, 2005 8:22 PM
To: RPG programming on the AS400 / iSeries
Subject: Qcmdexc
D CMD S 9A INZ('WRKOBJPDM')
D CMD1 S 7A INZ('DSPLIBL')
D LENGTH S 15 5 INZ(9)
D LENGTH1 S 15 5 INZ(7)
C CALL 'QCMDEXC'
C PARM CMD1
C PARM LENGTH1
C CALL 'QCMDEXC'
C PARM CMD
C PARM LENGTH
C SETON LR
When I tried to change decimal positions from 5 to other number ( tried
diff combinations,like 16 6 etc..)for the fields LENGTH&LENGTH1, the
program is not working and throwing exception which says command length
not valid..
Can some one let me know whats wrong?
---------------------------------
Yahoo! for Good
Click here to donate to the Hurricane Katrina relief effort.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.