No, there is no problem with that. I assume you meant "EXECIO 1 DISKR
"ddn1" (STEM foo."
 
The problem happens e.g. if a variable X contains the names of other
variables, which in turn contain the names of yet other variables etc.
etc. which finally - with say names Z1 Z2 Z3 etc. - have values that
need to be accessed. 
 
We can "VPUT X (and all the other variables' names) SHARED" and call an
external exec. It issues "VGET X SHARED" and then "VGET "X" SHARED". But
how does it then VGET the other variables and their values in such way
that they can be processed? The variable names can be VGET as data, but
REXX cannot use data - such as names Z1 Z2 Z3 etc. - as names of
variables (although INTERPRET *might* be able to fix that.)
 
Clist can allocate variable names dynamically, using &'s, and can then
use SYSSCAN to control how many &'s are interpreted. Its problem is it
cannot ADDRESS environments and cannot process binary data, which REXX can.
 
Cheers.
 

On 20/03/2020 04:22, Seymour J Metz wrote:
> I don't see the problem.
>
>    /* REXX */
>    parse arg upper ddn1 ddn2
>    EXECIO DISKR ddn1 1 '(' STEM foo.
>    do i=1 to foo.0
>       say 'Line' i 'is' foo.i
>       end
>
>
> --
> Shmuel (Seymour J.) Metz
> http://mason.gmu.edu/~smetz3
>
> ________________________________________
> From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
> CM Poncelet [ponce...@bcs.org.uk]
> Sent: Friday, March 20, 2020 12:07 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Does anybody remember CLIST?
>
> As mentioned above, EXECIO is part of TSO REXX.
>
> The problem is not EXECIO but with reading the records of a dataset
> assigned to an arbitrary DDNAME passed as a parm to REXX.
>
> Consider the folowing:
>
> //*********************************************************************
> //* NOTE: 'U' => TSO USERID(S); SPECIFY LIST OF USERIDS UNDER DESTIDS *
> //* ¯¯¯¯¯ 'C' -> CONSOLE; SPECIFY MASTER ETC. UNDER CONSIDS           *
> //*                                                                   *
> //* 04/01/95 CMP                                                      *
> //*********************************************************************
> //*
> //CLIST   EXEC PGM=IKJEFT01,
> //             REGION=512K,
> //*           PARM='%TSOSEND DESTIDS SYSIN USERID'  (DESTLIST=DESTIDS)
> //            PARM='%TSOSEND CONSIDS SYSIN CONSOLE' (DESTLIST=CONSIDS)
> //*
> //SYSPROC  DD  DISP=SHR,DSN=<Clist dataset>
> //SYSTSIN  DD  DUMMY
> //SYSTSPRT DD  SYSOUT=*
> //CONSIDS  DD  *
> <master console ID>
> //*
> //SYSIN    DD  *  (all messages below are sent to the console)
> Dear MVS OPS,
>
> Could someone please start DMSAR on LPAR1 and LPAR2 so my job can
> restore datasets from pseudo-volume <whatever>? It's been waiting
> for 2 1/2 hours.
>
> Here's part of the joblog (jobname on LPAR1):
> 14.58.46 JOB15032 ---- <whenever> ----
> 14.58.46 JOB15032  <whatever>
> 14.58.46 JOB15032  <whatever>
> 16.00.08 JOB15032  MSG FROM OPER:  '***********************************
> 16.00.08 JOB15032  MSG FROM OPER:  '* THIS JOB IS BEING AUTOMATICALLY C
> 16.00.08 JOB15032  MSG FROM OPER:  '* BEEN RUNNING IN A CLASS ID INITIA
> 16.00.08 JOB15032  MSG FROM OPER:  '* CLASS ID INITIATORS ARE TO BE USE
> 16.00.09 JOB15032  MSG FROM OPER:  '* JOBS. REFER TO SYSPROG.PRODUCTS($
> 16.00.09 JOB15032  MSG FROM OPER:  '* INITIATOR CLASSES.
> 16.00.09 JOB15032  MSG FROM OPER:  '***********************************
> <etc.....>
> 16.45.05 JOB15032  MSG FROM OPER:  '***********************************
> 16.45.05 JOB15032  MSG FROM OPER:  '* THIS JOB IS BEING AUTOMATICALLY C
> 16.45.05 JOB15032  MSG FROM OPER:  '* BEEN RUNNING IN A CLASS ID INITIA
> 16.45.05 JOB15032  MSG FROM OPER:  '* CLASS ID INITIATORS ARE TO BE USE
> 16.45.05 JOB15032  MSG FROM OPER:  '* JOBS. REFER TO SYSPROG.PRODUCTS($
> 16.45.05 JOB15032  MSG FROM OPER:  '* INITIATOR CLASSES.
>
> Thanks a lot.
>
> Chris
>
> /*
> //*
>
> Which is quicker - manually issuing 'oodles' of TSOSENDs (1 per message
> line) to the console, or sending all messages together via SYSIN?
>
> That's why I used Clist for that <grin>.
>
> Cheers, Chris Poncelet
>
>
>
> On 20/03/2020 00:51, Paul Gilmartin wrote:
>> On Fri, 20 Mar 2020 00:33:40 +0000, CM Poncelet wrote:
>>>      ...
>>> BTW Some things can be done in Clist which cannot (well at least not
>>> easily) be done in REXX, e.g. opening/reading a dataset associated with
>>> a DDNAME passed as a parm to a Clist submitted as a batch TSO job via
>>> JCL    ...
>>>
>> If EXECIO were part of Rexx, couldn't it be done with EXECIO?
>>
>>>    ...
>>> SET MAXCC = 0
>>> OPENFILE &DESTLIST INPUT  /* open DDNAME=&DESTLIST for reading */
>>> GETFILE &DESTLIST         /* read the 1st record in DDNAME=&DESTLIST */
>>> DO I = 0 TO 99 WHILE &MAXCC = 0
>>>   SET USER = &USREC
>>>   SET J = &SYSINDEX(&STR( ),&USER,1)
>>>   SET J = &J - 1
>>>   SET USER = &SUBSTR(1:&J,&USER)
>>>   SET SENDTO = &STR(&SENDTO&USER,)
>>>   GETFILE &DESTLIST
>>>   ENDO
>>> /* etc. etc. */
>>>
>> Grrr.  The over-and-under test for completion is a treacherous
>> construct; a maintenance pitfall.  In Rexx, I prefer LEAVE.
>>
>> -- 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
>
> ----------------------------------------------------------------------
> 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