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
