I want to have a COBOL/IMS subprogram called from either CICS or batch environments. Is it possible to exclude CICS commands from the subprogram?
The CICS program uses addressability and the batch uses BATCH PSB. Would
this be possible to do? Any idea where I can get more info on this?
You cannot do this as COBOL does not have a macro facility. The best you can do is to split up ALL (and I mean everything) into distinct blocks and then have two programs that COPY in the pieces you want. One compiles with different JCL for batch and CICS and as the included items are placed in different libraries, you get what you want by using differing libraries in the JCL.
All in all, too much bother to get right -- best to have distinct programs
and put up with a bit of duplication.
This was first published in December 2002