Okay, I think I picture this thing. Your customers write programs. The programs invoke, by calling your API, some function that is a part of your product. The users who run those programs have the ability to change the behavior of that function, let's call it making the function left-handed or right-handed. You can't have them set the handedness by coding //S1 EXEC PGM=USERPROG,PARM=LEFT because the customer application thinks it "owns" the PARM=string, and in any event has no logic to parse the parm and pass it to you on the API. So the way the user makes it left-handed is to code //PHILLEFT DD DUMMY and your function finds that in the TIOT and operates left-handed.
(I'm remembering Abend-Aid and parametizing it with //ABNLIGN DD DUMMY.) The question on the table is "some of these customer programs now get run from the USS shell. How do they define the PHILLEFT DD?" Right? If I'm right, then aren't UNIX environment variables the answer? I am not much of a UNIX guy but can't the shell user set the environment variable PHIL_HAND=LEFT without upsetting any other applecart, and then your function could find that environment variable and operate left-handed? Or do you want to solve this problem without actually enhancing your function, or at least without forcing customers to upgrade your product and re-link their programs? You want some magic little thing they could do in the shell that would run their application program with whatever arguments it expects but first define PHILLEFT? You want some little "meta-program" wrapper that would (a.) first define some specified DD as DUMMY and (b.) then run some other named program with whatever arguments it expects and are specified? I'm not enough of a UNIX guy to solve that problem, but I suspect others here are. Or am I miles off-base? Charles -----Original Message----- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Phil Smith III Sent: Wednesday, December 07, 2016 6:01 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: DDs in USS? Paul Gilmartin wrote: >It's the UNIX way: lotsa little things that connect, or perhaps nest, nicely. >Can we take this out of the hypothetical arena? May I infer that today >the "application" is being happily called from JCL or TSO, and a user >who >wishes to enable the option adds a DD statement to JCL or an ALLOCATE >to TSO? >Is the application in LINKLIST? STEPLIB? Elsewhere (specify) >LINKLIST >is the only easy case. It's always pretty hard to change STEPLIB. I >might be able to suggest a way; another doll I haven't played with. >But >not if it's a STEPLIB involving uncatalogued data sets. >And you want to make this application available under UNIX with as >little cognitive dissonance to the user as possible? It's not a specific application: we have an API that any random application can use. So yes, today there are applications that are being happily called from wherever. They want to add calls to our API, so they do so. Sometimes they need to enable things via the DD DUMMY. And yes, cognitive dissonance is what we'd like to avoid! Not sure what LINKLIST and STEPLIB have to do with anything here-those aren't the DD involved. ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN