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 <
0000000433f07816-dmarc-requ...@listserv.ua.edu> 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 lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to