Sorry, but I disagree.

Your statement implies that "sometimes" it is legitimate to not use quotes. I would say that "sometimes you can get lucky and get away with not using quotes". :-)

A very basic documentation statement would be:
   Some formats of the EXECIO command may reference a variable
   by the name of the variable. Such references should be
   within quoted text. Such an example is the variable name
   of a stem variable:
   Correct:
     'EXECIO 5 DISKW' ddname '(STEM MYSTEM.'
   Incorrect:
     'EXECIO 5 DISKW' ddname '(STEM' mystem.
   Use without quotes can result in unpredictable results.


I really think this is the root problem, not the fact that someone defined a variable with the same name as a common keyword, such as your example with "STEM". Such an example is just part of the language restriction and not directly related to EXECIO.


Tony Thigpen

Seymour J Metz wrote on 6/5/20 12:56 PM:
My problem with gratuitous documentation is that they invariably get it wrong. 
Describe the actual requirements and direct the reader to the appropriate 
places for details. In this case, something like:

     As with any command issued to an external environment, ensure that the
     expression you use evaluates to the intended EXECIO command. In
     particular, it may be prudent to always quote keywords to avoid
     confusion with variables with the same name.  For example, if you assign
     the variable "stem" to a value other than 'STEM' and then use

         EXECIO 5 DISKW ddname '(' STEM

     instead of

         EXECIO 5 DISKW ddname '( STEM'

     in your code, you will not invoke the correct command.

Would be reasonable if they have to spell it out.



--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Paul Gilmartin [0000000433f07816-dmarc-requ...@listserv.ua.edu]
Sent: Friday, June 5, 2020 11:29 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Gratuitous EXECIO Documentation

In: 
https://www.ibm.com/support/knowledgecenter/SSLTBW_2.3.0/com.ibm.zos.v2r3.ikja300/dup0037.htm

I see the verbiage:
     When you use EXECIO, you must ensure that you use quotation marks
     around any operands, such as DISKW, STEM, FINIS, or LIFO. Using
     quotation marks prevents the possibility of the operands being substituted
     as variables. For example, if you assign the variable stem to a value in
     the exec and then issue EXECIO with the STEM option, if STEM is not
     enclosed in quotation marks, it is substituted with its assigned value.

Sheesh!  A similar caution might be included for any command in the Ref.,
but it doesn't belong.

"must ensure"?  Well, not always.

I infer the etiology: A troublesome user once coded:
     STEM=SKIP  /* perhaps */
     EXECIO ...
... got astonishing results; went to SR; got fully proper "REJ; RTFM";
vindictively submitted RCF.  A feckless tech writer acceded and added
the paragraph.

I strongly suspect the matter is covered properly earlier (citation needed)
in the Ref., which shouldn't be cluttered with such errant rubbish.

(I was reading that Ref. to see whether EXECIO assembles segments
of V[B]S records.  Didn't find it.)

-- 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

Reply via email to