My REXX looks like this.
Previously, I passed one long string to my COBOL program as PARM5SS.
Now I am trying to create a PLIST to pass to my COBOL Program.
I do not really know what I am doing with this. I am just trying to figure
it out.
I could do it one way. I wanted to see if I could do it another way.
TRACE 'A'
COMMAREA = SUBSTR('UIF2087A 2012001 ',1,126)
COMMAREA_LEN = LENGTH(COMMAREA)
DATALENGTH = LENGTH(COMMAREA)
USER_ID = 'IF2087A '
APPLID = 'DHIPO158'
PROGRAM_NAME = 'Z7XG5SS '
OPERATION = 'A'
SMSF_ID = SUBSTR('FREDRICK',1,20)
RETURN_SWITCH = 'N'
RETURN_MESSAGE = SUBSTR('MESSAGE SENT TO REXXEXCI',1,80)
PARM5SS = SUBSTR('IF2087A DHIPO158Z7XG5SS AFREDDAY',1,126)
PARM = 'USERID('USER_ID') APPLID('APPLID') PROGRAM('PROGRAM_NAME')' ,
'OPERATION('OPERATION') SMSFID('SMSF_ID')' ,
'RETURNSWITCH('RETURN_SWITCH') RETURNMESSAGE('RETURN_MESSAGE')'
SAY 'COMMAREA CONTENTS BEFORE LINK ARE:' COMMAREA
CALL REXXEXCI PARM
SAY 'MAIN EXEC - RESULT VARIABLE CONTENTS:' RESULT
SAY
SAY 'TRACE_LOC IS:' TRACE_LOC
On Mon, Mar 22, 2021 at 1:11 PM Paul Gilmartin <
[email protected]> wrote:
> On Mon, 22 Mar 2021 16:48:29 +0000, Seymour J Metz wrote:
>
> >What environment did you use in your ADDRESS statement? Please post the
> relevant REXX code.
> >
> For example, here's an excerpt of my Rexx code. I could have used LINKMVS.
> Values could be returned in the PARMs.
>
> PARM1 = ''
> Nulls = left('', 8, '00'x)
> PARM2 = Nulls || , /* 1 */
> Nulls || , /* 2 */
> Nulls || , /* 3 */
> Nulls || , /* 4 */
> G.9CTRL || , /* SYSIN */
> G.9IEBOUT || , /* SYSPRINT */
> Nulls || , /* 7 */
> IDD || , /* SYSUT1 */
> JobOut /* SYSUT2 */
> /* ... */
> address 'ATTCHMVS' 'IEBGENER PARM1 PARM2'
> IEBRC = RC
>
> >________________________________________
> >From: Cameron Conacher
> >Sent: Monday, March 22, 2021 12:44 PM
> >
> >I am not sure I understand now.
> >I created a simple COBOL Program and added a number of 01 level items to
> >the Linkage section and then I added PROCEDURE DIVISION USING... a list of
> >the data items I expected to see passed from my little REXX EXEC.
> >LINKAGE SECTION.
> >01 parameter-1 PIC X(08)
> >01 parameter-2 PIC X(08)
> >01 parameter-3 PIC X(20)
> >
> >PROCEDURE DIVISION USING parameter-1, parameter-2, parameter-3.
> >
> >I create a PLIST in REXX and called my dumb program passing the PLIST PARM
> >and then dumped the Linkage parameters.
> >
> >From what I can see when I look at the items in HEX, I get a two byte
> >binary length followed by something that looks like a pointer.
> >len= x'000A' and pointer is x'0000000130E10000'
> >But none of the PARMs are actually ten bytes long, and the address seems
> >wrong to me.
>
> -- gil
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to [email protected] with the message: INFO IBM-MAIN
>
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN