Do you have any tips for me trying to pass a 16 (16,0) digit numeric value from CL to RPG? Ie. Any way to get around the 15,5 limitation?
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Morgan, Paul
Sent: Thursday, June 30, 2011 11:21 AM
To: Midrange Systems Technical Discussion
Subject: RE: CL calling RPG with Varying Parm
The varying length is a two byte integer value at the start of &PARM1.
To match the variable in the RPG program
DCL VAR(&PARM1) TYPE(*CHAR) LEN(52)
CHGVAR VAR(%SST(&PARM1 1 2)) VALUE(X'0032') CHGVAR VAR(%SST(&PARM1 3 50)) VALUE('508656904670')
CALL PGM(RPGPRogram) PARM(&PARM1)
Principal Programmer Analyst
IT Supply Chain/Replenishment
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Kurt Anderson
Sent: Thursday, June 30, 2011 11:56 AM
To: 'Midrange Systems Technical Discussion' (midrange-l@xxxxxxxxxxxx)
Subject: CL calling RPG with Varying Parm
I'm trying to unit test a program that has a varying parameter and I can't seem to get the call to work successfully. I keep getting a "Length of varying length variable is out of range" error as the RPG program moves the entry parameter into another field.
D RPGProgram PR
D parm1 50a Const Varying
Technically, parm1 is defined like a file's field that has VARLEN specified. I believe RPG treats that as Varying when you do a LIKE.
DCL VAR(&PARM1) TYPE(*CHAR) LEN(53)
/* first two bytes of value is the length */
CHGVAR VAR(&PARM1) VALUE('508656904670')
/* to prevent truncating trailing of blanks */
CHGVAR VAR(%SST(&PARM1 53 1)) VALUE('X')
CALL PGM(RPGProgram) PARM(&PARM1)
I've tried this a variety of ways. With LEN(50), w/o the trailing X, w/o specifying the length in &PARM1.
I'm on 7.1.
Thanks for the help,
CustomCall Data Systems
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/midrange-l