JCL/PROC STANDARD

JCL/PROC Standard -- Version 1.2
5/1/00


Table of Contents JCL/PROC Guideline
PURPOSE

To establish uniform job control language coding.


SCOPE

These coding standards apply to all JCL and PROCs that will be unloaded to the production libraries at University Management Systems (UMS).


The following are implemented as standards, to be applied via the Quality Control process:


GENERAL CONSIDERATIONS
  1. Except for run control parameters, overrides to the procedure JCL will not be stored in the production job definition library (UMS.PROD.JCL).
  2. Omit the TIME parameter from production job definitions and JCL procedures.
  3. REGION=0K or REGION=0M are not permitted in the production job definition and jcl procedure libraries.
  4. All production job definitions must be recorded in the on-line documentation (JCLDOC).
  5. Formatting:

PRODUCTION JOB DEFINITION (JCL)
  1. All jobs will execute at least one PROC unless an exception is approved by the quality coordinator.
  2. Instream PROCS are not acceptable unless approved by the quality coordinator.
  3. Do not use a JOBLIB Statement (use STEPLIB instead).
  4. A comment is required following all symbolic parameters, all input data, and all control records.
  5. JOB NAMING:

  6.  

     
     
     

    All production jobs and procedures will have a basic four-character identification name. Refer to the Batch Job Naming standard for the basic construct.
     
     

  7. JOB STATEMENT:

  8.  

     
     
     

     Line 1:

    Note: Lines 2 and 3 are continuations of the JOB STATEMENT and should begin in Column 16.

    Line 2:

    Note: If the developer knows that the job will require more than the default region size, that value may be included on this line.

    Line 3:

  9. EXEC STATEMENT:
  10. Note: Symbolic parameters are continuations of the EXEC statement and should begin in column 16.
  11. End the production job definition (JCL) with a //.

JCL PROCEDURE DEFINITION (PROC)
  1. A PROC will be used in all cases unless an exception is approved by the quality coordinator. 
  2. Use standard Symbolic Parameter names. 
  3. Provide a valid Print Destination when specifying printed output parameters. 
  4. Arrange the PROC steps so that jobs may be rerun with no changes, even if the catalog is lost. 
  5. Jobs that continue to run when a program has issued a fatal condition code should be followed by a forced abend step to terminate the job. 
  6. The 'PROC' statement will be the first line of the procedure. 
  7. PROC NAMING:

  8. All production jobs and procedures will have a basic four-character identification name. Refer to the Batch Job Naming standard for the basic construct. 
  9. The step name will be the PROC name (without suffixes) followed by a pound sign (#) and a sequential number. It is acceptable to add an alpha suffix to the sequential number when a step is being added to an existing PROC.
  10. Example:
    
          Job   WXYZ$ Stepname   WXYZ#1
                                 WXYZ#1A
                                 WXYZ#2
          Job   QRST#T Stepname  QRST#1
  11. EXEC STATEMENT:
  12. STEPLIB DD:
  13. Additional DDs for IDMS Jobs:
  14. DD Statements:
  15. Input from Data Libraries:
  16. Sortworks Will Be Specified in Multiples of 3:
  17. Example:
    
            //SORTWK01 DD SPACE=(CYL,5),UNIT=SYSDA
            //SORTWK02 DD SPACE=(CYL,5),UNIT=SYSDA
            //SORTWK03 DD SPACE=(CYL,5),UNIT=SYSDA
  18. Creating Output Files:
  19. Printed Output:
  20. Forced Job Termination:


SASJCL
  1. The SAS procedure will be called from within a jcl procedure for a production batch job.
  2. The SAS source code DD statement (SYSIN) will be specified as the symbolic parameter &SASPGM.
  3. The symbolic parameter SASPGM will contain the source library and member name of the SAS source code as a default on the PROC statement of the production batch job. If multiple SAS programs need to be specified, a numeric suffix on the SASPGM parameter may be used.
  4. The EXEC SAS statement will include a PARM statement that provides the SASPGM parameter value to SAS via the SAS SYSPARM option and restricts the program line length to 72 characters.
  5. Example:
    
                     PARM=('SYSPARM="&SYSPGM" S=72')
  6. Production jcl procedures will NOT contain references to the SAS version.
     Example:

//EWSA          PROC SYSTEM=PBF,
//                EDBDSN=PBF.ALL.EDB.RESTORE,
//                CTLDSN=PBF.ALL.CTL.BACKUP,
//                TAPEIN=,
//                SASPGM=UMS.PROD.DATA(EWSA2),
//                CYCLE=,
//                PAYDATE=,
//                UNIT=PRODISK,
//                WORKCYL='300,30',
//                PRTM1='(A,,941S),FCB=941S,DEST=CENTRAL,COPIES=1'
//EWSA#1        EXEC PGM=IEFBR14********* FILL HOLES IN CATALOG *********
//SASLIB        DD DSN=&SYSTEM..ALL.EDB.CTL.&CYCLE&PAYDATE..SASLIB,
//                DISP=(MOD,DELETE),
//                UNIT=&UNIT,SPACE=(TRK,0)
//EWSA#2        EXEC SAS,**************** CREATE SAS DATASETS ***********
//                PARM=('SYSPARM="&SASPGM " WORK=EWSAWORK S=72')
//EDB           DD DSN=&EDBDSN, 
//                DISP=SHR,UNIT=TAPE,VOL=SER=&TAPEIN
//CTL           DD DSN=&CTLDSN,
//                DISP=SHR,
//                LABEL=2,
//                VOL=REF=*.EDB
//SYSIN         DD DSN=&SASPGM,DISP=SHR
//EWSAWORK      DD DSN=&&EWSAWORK,
//                SPACE=(CYL,(&WORKCYL)),
//                RECFM=FS,DSORG=PS,LRECL=23040,BLKSIZE=23040,
//                DISP=(NEW,DELETE),
//                UNIT=SYSDA
//SASLIST       DD SYSOUT=&PRTM1
//SASLIB        DD DSN=&SYSTEM..ALL.EDB.CTL.&CYCLE&PAYDATE..SASLIB,
//                DISP=(NEW,CATLG,DELETE),
//                UNIT=&UNIT,
//                SPACE=(CYL,(300,30),RLSE)

Return to: SIS Systems Development Home Page
Return to:UMS Home Page

This page was last updated on June 28, 2005
Comments to:  Quality Coordinator