Each of your *CHAR parameters need to be enclosed in single apostrophes.

'user@xxxxxxxx<mailto:user@xxxxxxxx>' +
'-r' +
'user@xxxxxxxx<mailto:user@xxxxxxxx>' +
'TEST' +
'-m' +
'This is a test')

Gary Monnier

-----Original Message-----
From: java400-l-bounces@xxxxxxxxxxxx [mailto:java400-l-bounces@xxxxxxxxxxxx] On Behalf Of Debra Petta
Sent: Monday, February 13, 2012 9:17 AM
To: 'JAVA400-L@xxxxxxxxxxxx'
Subject: Passing parameters to a CL program

I have been trying to pass a list of parameters to a CL program which Will eventually run a Java class and pass these parameters to it.
I thought I was following the documentation for doing this correctly but I still cannot get it to work.

Here's my declaration:

LEXMAILC: PGM PARM(&P1 &P2 &P3 &P4 &P5 &P6 &P7 &P8)
DCL &P1 *CHAR 2 /* LexMailc parameter #1 */
DCL &P2 *CHAR 20 /* LexMailc parameter #2 */
DCL &P3 *CHAR 2 /* LexMailc parameter #3 */
DCL &P4 *CHAR 20 /* LexMailc parameter #4 */
DCL &P5 *CHAR 2 /* LexMailc parameter #5 */
DCL &P6 *CHAR 20 /* LexMailc parameter #6 */
DCL &P7 *CHAR 2 /* LexMailc parameter #7 */
DCL &P8 *CHAR 20 /* LexMailc parameter #8 */

I am invoking this program from the command line as follows:

CALL LEXMAILC PARM('-a' user@xxxxxxxx<mailto:user@xxxxxxxx> '-r' user@xxxxxxxx<mailto:user@xxxxxxxx> '-s' TEST '-m' 'This is a test')

however it fails with this message in the job log and it's not clear what I am doing wrong:

Message . . . . : -CALL PGM(LEXMAILC)
CPD0172 Diagnostic 30 02/13/12 11:10:04.309861 QCACALL QSYS 0342 QCMD QSYS 01C8
Message . . . . : Parameters passed on CALL do not match those required.
Cause . . . . . : The parameters passed on the CALL command do not match the
parameters required by program LEXMAILC in library *LIBL. Correct program
not found or correct parameters not passed. The number of parameters or the
type of parameters passed on the CALL command must match those expected by
the program called. Recovery . . . : If correct program not found, change
or specify the library name on the command or in a library list. Change the
CALL command and then try the command again.

Note that the correct program is being invoked because it works when I run it without parameters (and hard code those parameters in the Java class)
This is the Java Programming on and around the IBM i (JAVA400-L) mailing list To post a message email: JAVA400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
or email: JAVA400-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at

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