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