John/OP: You might have overlooked an interesting gem of a feature of z/OS JCL: FREE=CLOSE.
If you need to provide several alternative tables, you might be able to do so strictly in the enveloping JCL by doing something like this: //SYSLIB DD DISP=SHR,FREE=CLOSE,DSN=USERS.INPUT(TABLEX) //SYSLIB DD DISP=SHR,FREE=CLOSE,DSN=USERS.INPUT(TABLEY) //SYSLIB DD DISP=SHR,FREE=CLOSE,DSN=USERT.MUMBLE(TABLEZ) Note that the DDNAME is replicated three (3) times above, for example. For the cost of a full OPEN/GET/CLOSE you get to read the record from the first member and be positioned to the second member on your next OPEN/GET/CLOSE. Not high performance but pretty high function and very easy to maintain (just change the JCL). z/OS does not limit DDNAMES to a single appearance in a step (although you'd be surprised how many think otherwise). By crafty use of multiple DDs with identical names that resolve to different datasets (even to completely different data set names). Since any DD can use traditional data sets or PATH= it is also quite general. Nearly every high level language supports file opens and closes so nearly every high level language can perform this "trick". All you need to do is stop looping through the open/close once the open fails. (You ought to provide for error recovery if the open fails anyway so that might not be asking too much.) -- Tom Schmidt Madison, WI ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html