I've done this buy using the 'OPTIONAL" phrase on the file select in Cobol, and then using TSO Allocate and Free commands from inside the program itself.
The Program needs to Allocate, then OPEN, Read or Write, then Close, then Free the file. This can be repeated in a single run of the program as many times as needed. 01 WS-DYNAMIC-ALLOCATIONS. 05 WS-ALLOCATE. 10 FILLER PIC X(28) VALUE 'ALLOCATE F(JOBPROC) DSNAME('''. 10 FILLER PIC X(20) VALUE 'SDEV.PROD.P.PROCLIB('. 10 MEMBER-NAME PIC X(8) . 10 FILLER PIC X(7) VALUE ')'') SHR'. 05 WS-DEALLOCATE PIC X(15) VALUE 'FREE F(JOBPROC)'. * WORK AREA'S FOR TSO INTERFACING 01 TSO-LINK PIC X(8) VALUE 'TSOLNK'. 01 TSO-FLAGS PIC S9(9) COMP VALUE 257. 01 TSO-LENGTH PIC S9(9) COMP VALUE 0. 01 TSO-RC PIC S9(9) COMP VALUE 0. 01 TSO-REASON PIC S9(9) COMP VALUE 0. 01 TSO-ABEND PIC S9(9) COMP VALUE 0. /**************************************************************** * DYNAMICALY ALLOCATE FILE THROUGH TSO SERVICES ***************************************************************** 8000-TSO-ALLOCATE. MOVE LENGTH OF WS-ALLOCATE TO TSO-LENGTH. CALL TSO-LINK USING TSO-FLAGS WS-ALLOCATE TSO-LENGTH TSO-RC TSO-REASON TSO-ABEND. 8000-EXIT. EXIT. /**************************************************************** * DYNAMICALY DEALLOCATE FILE THROUGH TSO SERVICES ***************************************************************** 8100-TSO-DEALLOCATE. MOVE LENGTH OF WS-DEALLOCATE TO TSO-LENGTH. CALL TSO-LINK USING TSO-FLAGS WS-DEALLOCATE TSO-LENGTH TSO-RC TSO-REASON TSO-ABEND. 8100-EXIT. EXIT. The Program needs to run under batch TSO services similar to a DB2 program //STEP010 EXEC PGM=IKJEFT01 //SYSTSPRT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSTSIN DD * CALL *(MYPROG) Hope this helps, Darren ---------------------------------------------------------------------- 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