On Tue, 1 Apr 2014 15:24:50 -0500, Dale R. Smith wrote:
>
>>> execio * DISKW outds (finis stem outvar.
>
>Just a word of caution, you should never use "*" for the number of records to 
>write with DISKW when using the STEM option.
>By REXX definition/usage a stem of the form "stemname." should have a count of 
>the entries in the stem in variable "stemname.0".  So in your example, 
>outvar.0 should contain the number of entries in the outvar. stem.  If you are 
>creating outvar. yourself, then you must keep count of the number of entries 
>you are creating and set outvar.0 to that number when you are done.  Your 
>EXECIO command should then look like this:
>
>'EXECIO' outvar.0 'DISKW OUTDS (FINIS STEM OUTVAR.'
>
>So why not use "*"?  It will work most of the time and some of you are 
>probably using it now with no problems.  From the "TSO REXX Reference" on 
>EXECIO:
>    ... When * is specified as the number of lines to write, the EXECIO
>command stops writing information to the data set when it finds a null
>line  ...
>
Dammit!  That is CMS/EXEC2 crap that should never have been permitted
in MVS because:

o EXECIO was created to support EXEC2, and EXEC2 does not distinguish
  between uninitialized variables and null lines.  Rexx can tell the difference;
  EXEC2 never intruded into TSO, and I don't believe CLIST supports EXECIO.

o The traditional CMS filesystems (MDFS and SFS) do not permit empty
  records; MVS does, so empty records should not operate as terminators.
  (Don't know about BFS.)

> ...or an uninitialized compound variable. In this case, if the list
>contained 10 compound variables, the EXECIO command stops at
>MYVAR.11.
>
(unless an earlier compound variable was initialized but had a null value.)
An uninitialized variable should be the only recognized terminator.

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to