In this section: |
You can allocate the file names required by FOCUS:
A common practice is to allocate all commonly used files in the logon procedure, and the remainder from a TSO CLIST.
You can process FOCUS jobs in z/OS batch mode. The z/OS operator can initiate the jobs directly, or you can enter them in z/OS using the TSO SUBMIT or DYNAM SUBMIT command (see DYNAM Command for DYNAM commands).
Note: When you design FOCUS applications for execution both online and in batch, it is important to remember that in z/OS batch mode, FOCUS ignores embedded TSO commands in FOCUS procedures. You must, therefore, supply DD statements to replace any TSO ALLOCATE commands or use the DYNAM ALLOCATE command.
The following is a sample job stream of z/OS batch JCL:
//FOCUS EXEC PGM=FOCUS //STEPLIB DD DSN=FOCUS.FOCLIB.LOAD,DISP=SHR //ERRORS DD DSN=FOCUS.ERRORS.DATA,DISP=SHR //SYSPRINT DD SYSOUT=A //OFFLINE DD SYSOUT=A //MASTER DD DSN=MASTER.DATA,DISP=SHR //FOCEXEC DD DSN=FOCEXEC.DATA,DISP=SHR //* FOCUS FILE CAR //CAR DD DSN=CAR.FOCUS,DISP=SHR //SYSIN DD * . . FOCUS commands . FIN //*
Each time you enter FOCUS, it automatically opens and executes the procedure PROFILE if it is present before opening SYSIN. If you operate FOCUS in batch mode, you should include a FIN statement in the PROFILE or in the SYSIN jobstream. Otherwise, FOCUS will terminate with completion code 8.
Note that outside of a request or FOCEXEC, you can insert a comment line in SYSIN by starting the line with an asterisk (*).
To use an alternative PROFILE member in place of the usual one, specify the following values for the PARM parameter:
//FOCUS EXEC PGM=FOCUS,PARM='NOPROF'
or
//FOCUS EXEC PGM=FOCUS,PARM='PROFILE member'
where:
Is an optional parameter. Enables you to bypass or ignore your usual PROFILE member of the FOCEXEC data set when you enter your FOCUS session.
Is an optional parameter. Names an alternative PROFILE to execute instead of the usual PROFILE member.
The FOCUS load module that controls the FOCUS environment resides in the partitioned data set FOCLIB.LOAD, member name FOCUS. The data set name may vary due to local data set naming conventions.
You can enter FOCUS either by having a logon procedure in which the load library is allocated to the ddname STEPLIB, by issuing the CALL command directly, or through a CLIST.
A logon procedure is a convenient way of allocating frequently used data sets.
The following is a sample TSO logon procedure:
//TSOLOGON EXEC PGM=IKJEFT01,DYNAMNBR=50 //* //STEPLIB DD DSN=FOCUS.FOCLIB.LOAD,DISP=SHR //ERRORS DD DSN=FOCUS.ERRORS.DATA,DISP=SHR //OFFLINE DD SYSOUT=A //* USUAL TSO LOGON DATASETS FOLLOW
If you have a logon procedure with FOCLIB.LOAD allocated to ddname STEPLIB, to invoke FOCUS, simply issue:
FOCUS
This places you in the FOCUS environment.
To use an alternative PROFILE member in place of the usual one, specify:
FOCUS {NOPROF|'PROFILE member'}
where:
Is an optional parameter. Enables you to bypass or ignore your usual PROFILE member of the FOCEXEC data set when you enter your FOCUS session.
Is an optional parameter. Names an alternative PROFILE to execute instead of the usual PROFILE member.
You can also enter the CALL command directly:
CALL 'FOCUS.FOCLIB.LOAD(FOCUS)'
The following is a typical FOCUS CLIST procedure that allocates files:
ALLOC F(MASTER) DA(MASTER.DATA) ALLOC F(FOCEXEC) DA(FOCEXEC.DATA) ALLOC F(WINFORMS) DA(WINFORMS.DATA) ALLOC F(CAR) DA(CAR.FOCUS) SHR ALLOC F(HOLD1) SP(5,5) TRACKS
CALL 'FOCUS.FOCLIB.LOAD(FOCUS)'
Note: SYSIN and SYSPRINT do not have to be allocated and will default to the terminal.
The following is an example of a more comprehensive CLIST used in a typical FOCUS production environment:
PROC 0 /* */ CONTROL NOMSG FREE F(MASTER CCARS CAR FOCEXEC ERRORS USERLIB FMU) FREE F(SYSIN SYSPRINT OFFLINE WINFORMS) FREE F(ISHFALOC PROFILE) FREE F(HOLD HOLDMAST SAVE REBUILD FOCSML FOCUS FOCSTACK) FREE F(FOCSORT FOCCOMP HOLDACC TRF) /* */ CONTROL MSG /* */ ALLOC F(PROFILE) DA('user.FOCEXEC.DATA(PROFILE)') SHR REUS ALLOC F(FOCEXEC) DA('user.FOCEXEC.DATA' - 'prefix.FOCEXEC.DATA') SHR REUS ALLOC F(MASTER) DA('user.MASTER.DATA' - 'prefix.MASTER.DATA') SHR REUS ALLOC F(WINFORMS) DA('user.WINFORMS.DATA' - 'prefix.WINFORMS.DATA') SHR REUS /* */ ALLOC F(FMU) DA('prefix.FMU.DATA') SHR REUS ALLOC F(TRF) DA('user.TRF.DATA') SHR REUS /* */ ALLOC F(CCARS) DA('prefix.MASTER.DATA(CCARS)') SHR REUS ALLOC F(CAR) DA('user.CAR.FOCUS') SHR REUS /* */ ALLOC F(ERRORS) DA('prefix.ERRORS.DATA') SHR REUS ALLOC F(USERLIB) DA('prefix.FUSELIB.LOAD') SHR REUS /* */ ALLOC F(OFFLINE) SYSOUT(A) ALLOC F(SYSIN) DA(*) ALLOC F(SYSPRINT) DA(*) /* */ CALL 'prefix.FOCLIB.LOAD(FOCUS)' /* */
CONTROL NOMSG FREE F(MASTER CCARS CAR FOCEXEC ERRORS USERLIB FMU) FREE F(SYSIN SYSPRINT OFFLINE WINFORMS) FREE F(ISHFALOC PROFILE) FREE F(HOLD HOLDMAST SAVE REBUILD FOCSML FOCUS FOCSTACK) FREE F(FOCSORT FOCCOMP HOLDACC TRF)
where:
Is the high-level qualifier for a user's version of a data set.
Is the high-level qualifier for the FOCUS production data sets.
Note: The allocation for DDNAME CCARS is needed for running the CARTEST FOCEXEC.
|
Information Builders |