Defining and Managing JCL for a Job

A job needs job control language (JCL) instructions to perform a task. The required JCL is contained in the JCL member of a library/file of the operating system, or in a Natural object contained in a Natural library/system file.

This section provides information on defining JCL for a job master and editing the JCL source referenced by a job.

Note:
FTP jobs do not have a standard JCL definition. They have an FTP parameter definition instead.

This document covers the following topics:

Related Topics:


Using Job Control in Entire Operations

Entire Operations handles JCL as follows:

  • Job Master Control
    Entire Operations used JCL in its original format on the original storage medium. The usual JCL storage locations of the various operating systems are supported. The source texts for dynamic JCL generation are also considered job master control.

  • Active Job Control
    Entire Operations used the actual JCL submitted to the operating system for execution. It is produced from the master JCL when the job or network is activated. The symbols are replaced with values from the active symbol table. If it is dynamic JCL, the generation is performed at this time. The active JCL is stored in the active Entire Operations database.

  • Pregenerated Active Job Control
    For reasons of performance, it might be necessary to generate active JCL in advance. See also Pregenerating Active JCL.

    JCL must be pregenerated again when:

    • The definition of the master JCL storage has been modified;

    • The master JCL has been edited;

    • The corresponding symbol table has been modified.

  • Submitted Job Control - Header Information
    Entire Operations inserts a header with Entire Operations environment information as a comment into the submitted JCL.

    For UNIX, the header is inserted into the frame script.

    For Windows, the header is inserted into the frame BAT file.

  • Submitted Job Control - Environment Variables for UNIX and Windows
    The generated and submitted JCL frame script (UNIX) or frame BAT file (Windows) can contain predefined symbols provided as environment variables. For details, see Reserved Symbols for UNIX and Windows Environment Variables in the section User Exits.

Dynamic JCL Generation (JCL Location MAC)

When defining a job within a network, you can specify that its JCL is to be generated dynamically either at job activation time or at job submission time.

Dynamic JCL generation is achieved by using the Entire Operations edit macro function. The text strings contained in the JCL can contain escape characters (see Symbol Escape Characters) followed by variables that are replaced by their current values during dynamic generation.

These current values are taken from a symbol table which must contain the current values to be substituted. The symbol table to be used can be determined in the Usable Symbol Tables window which opens when you choose PF7 (Symb) on the Network Addition/Modification or Job Definition screen (see Listing Usable Symbol Tables).

If any symbol specified in the dynamic JCL is not found in the symbol table defined for the job, the symbol is searched for in the symbol table next in the search hierarchy for symbol tables (see Symbol Table Types and Symbol Search Order.

Additionally, Entire Operations passes predefined symbols from the parameter section to the dynamically generated program, such as job owner, network name, current job name and original scheduling date. The same applies to Natural system variables such as *DATE, *TIME and *USER. As these parameters can be replaced in any part of the JCL, different JCL configurations can be generated depending on time, date, user ID etc.

Entire Operations provides dynamic JCL generation for all supported operating systems (z/OS, z/VSE, BS2000, UNIX and Windows) as shown in the following examples.

This section covers the following topics:

Related Topics:

Example 1: Dynamic JCL in a z/OS Environment

The following is the symbol table specified for the macro program:

Symbol Name Current Value
STEPLIB SN.SYSF.SOURCE
CLASS G

The variable from the parameter section is assumed to have the following value:

P-OWNER NET1

The system variables are assumed to have the following values:

*TPSYS COMPLETE
*DEVICE BATCH
*INIT-USER SN

The following is a macro Natural program including a parameter section and JCL with the escape character (#) followed by variable names from the symbol table:

# DEFINE DATA PARAMETER USING NOPXPL-A
# LOCAL /* MUST BE CODED
# END-DEFINE
//SNMAC4 JOB ,#P-OWNER,MSGCLASS=X,CLASS=#CLASS //STEP01 EXEC
PGM=NOPCONTI,PARM='C0004' //STEPLIB  DD DISP=SHR,DSN=#STEPLIB
//* DEVICE: *DEVICE, INIT-USER: *INIT-USER //* TPSYS: *TPSYS
# IF CLASS = 'G'
//* THE MSGCLASS IS REALLY 'G'
# ELSE
//* ANOTHER MSG-CLASS FOUND
# END-IF
//*

The resulting dynamically generated JCL will be:

//SNMAC4 JOB ,NET1,MSGCLASS=X,CLASS=G
//STEP01 EXEC PGM=NOPCONTI,PARM='C0004' //STEPLIB  DD
DISP=SHR,DSN=SN.SYSF.SOURCE //* DEVICE: BATCH, INIT-USER: SN
//* TPSYS: COMPLETE
//* THE MSGCLASS IS REALLY 'G'
//*

Example 2: Dynamic JCL in a BS2000 Environment

The fields taken from the DB-INFO view are assumed to have the following values after the FIND statement:

Field Value
NUCLEUS 055
LP1 1000
NU1 100
ACCOUNT EXAMPLE
NH1 4000
MSG FHL
VERSION 524

The variables taken from the parameter section have the following current values:

Variable Value
P-OWNER OS
P-JOB NUC055
P-EXECUTION-NODE 055

No symbol table was defined for this example job.

The following is the example JCL written using the edit macro function, including variables to be substituted from the DB-INFO view and the parameter section. Variables are preceded by the escape character (#):

# DEFINE DATA PARAMETER USING NOPXPL-A
#  1 L-JOB
# 1 REDEFINE L-JOB
# 2  L-JOB-A    (A3)
# 2  L-JOB-NUC  (N3)
# LOCAL   /* LOCAL VARIABLES START HERE
# 1 DB-INFO VIEW OF DB-INFO
# 2  NUCLEUS
# 2  LP1
# 2  NU1
# 2  ACCOUNT
# 2  NH1
# 2  MSG
# 2  VERSION    /* E.G. 524
# 1 LWP  (N7)
# 1 NUC  (N3)
# 1 SPOOL  (A10) INIT <'NOSPOOL'>
# END-DEFINE
# *
# MOVE P-JOB TO L-JOB-A
# MOVE P-EXECUTION-NODE TO NUC
# F1. FIND DB-INFO WITH NUCLEUS = NUC
/.NUC NUC LOGON #P-OWNER,#ACCOUNT
/OPTION MSG=#MSG
/REMARK
/REMARK  NUCLEUS #NUC
/REMARK
/SYSFILE  SYSLST = NUC NUC..LST.NUC
/SYSFILE  SYSDTA = SYSCMD
/FILE  ADA VERSION..MOD,LINK=DDLIB
/FILE  *DUMMY,LINK=DDLOG
/FILE  *DUMMY,LINK=DDSIBA
/FILE  ADA NUC..ASSO,LINK=DDASSOR1,SHARUPD=YES
/FILE  ADA NUC..DATA,LINK=DDDATAR1,SHARUPD=YES
/FILE  ADA NUC..WORK,LINK=DDWORKR1,SHARUPD=YES
/EXEC  (ADARUN,ADA VERSION..MOD)
# COMPUTE LWP = F1.LP1 * (F1.NU1 + 100)
ADARUN PROG=ADANUC,LP=F1.LP1,LU=65535,LWP=#LWP ADARUN
DB=#NUC,NU=#NU1,NC=20,TT=600,TNAE=1800 ADARUN NH= NH1
/SYSFILE  SYSLST = (PRIMARY)
/SYSFILE  SYSDTA = (PRIMARY)
/SYSFILE  SYSOUT = (PRIMARY)
/LOGOFF  SPOOL
# END-FIND

The resulting dynamically generated JCL will be:

/.NUC055 LOGON OS,EXAMPLE
/OPTION MSG=FHL
/REMARK
/REMARK  NUCLEUS 055
/REMARK
/SYSFILE  SYSLST = NUC055.LST.NUC
/SYSFILE  SYSDTA = SYSCMD
/FILE ADA524.MOD,LINK=DDLIB
/FILE *DUMMY,LINK=DDLOG
/FILE *DUMMY,LINK=DDSIBA
/FILE ADA055.ASSO,LINK=DDASSOR1,SHARUPD=YES
/FILE ADA055.DATA,LINK=DDDATAR1,SHARUPD=YES
/FILE ADA055.WORK,LINK=DDWORKR1,SHARUPD=YES
/EXEC (ADARUN,ADA524.MOD)
ADARUN PROG=ADANUC,LP=1000,LU=65535,LWP=200000 ADARUN
DB=055,NU=100,NC=20,TT=600,TNAE=1800 ADARUN NH=4000
/SYSFILE  SYSLST = (PRIMARY)
/SYSFILE  SYSDTA = (PRIMARY)
/SYSFILE  SYSOUT = (PRIMARY)
/LOGOFF NOSPOOL

Note:
Any JCL generated at activation time using the macro language can be modified by the user until the job is actually submitted. Of course this modification is valid only for the current network run.

Example 3: Dynamic JCL in a UNIX Environment

The following example illustrates dynamic symbol replacement within a Bourne shell script (escape character §):

#
# Bourne shell script for checking the number of users
# entered in /etc/passwd.
# If more than §USER-LIMIT entries appear,
# the script will be ended with exit 1.
#
#!/bin/sh
set -x
USER_COUNT='wc -l < /etc/passwd'
echo Number of users on node 'hostname' : $USER_COUNT
if test $USER_COUNT -gt §USER-LIMIT
then
    echo USER_COUNT_WARN
    exit 1
else
    echo USER_COUNT_OK
fi

The symbol table to be used should appear as follows:

Symbol Name Current Value
USER-LIMIT 100

The result is the following executable shell script:

#
# Bourne shell script for checking the number of users
# entered in /etc/passwd.
# If more than 100 entries appear,
# the script will be ended with exit 1.
#
#!/bin/sh
set -x
USER_COUNT='wc -l < /etc/passwd'
echo Number of users on node 'hostname' : $USER_COUNT
if test $USER_COUNT -gt 100
then
    echo USER_COUNT_WARN
    exit 1
else
    echo USER_COUNT_OK
fi

Note:
Any JCL generated at activation time using the macro language can be modified by the user until the job is actually submitted. Of course this modification is valid only for the current network run.

Job Control for Jobs under BS2000

This section covers the following topics:

Naming Conventions for Work Files

The name generation for work files under BS2000 is described in the section Naming Conventions for Work Files of the Installation and Setup documentation.

User Exit for Work File Names

Names of BS2000 work files can also be generated via an exit (see Generating SYSOUT File Names for BS2000 in the section API Routines).

Job Control for Jobs under UNIX

The environment variable $EOR_WORK of Entire System Server/UNIX contains the name of the Entire Operations work directory. Within this directory, the work files are hierarchically stored.

Job Control for Jobs under Windows

This section covers the following topics:

Job Control Characteristics under Windows

The job control system Entire Operations also runs in a Windows environment, with the following characteristics:

  • Operating system neutral modeling of job networks.

  • Entire Operations functionality and flexibility is also transparently available on Windows.

  • Support of DOS batch files and executables (EXE).

  • It is not necessary to directly enter Windows DOS commands.

  • Can also run in mixed mainframe/Windows/UNIX environments.

  • Job control on several Windows machines at the same time.

Components Required

  • Entire Operations Monitor

    The Monitor can run under the operating systems BS2000, z/OS, z/VSE or UNIX, concurrently controlling jobs executed under BS2000, z/OS, z/VSE and UNIX.

  • Entire System Server - For Mainframes, UNIX and Windows

    Required to access mainframe, UNIX or Windows operating systems.

    On every machine to be controlled, an Entire System Server/Windows server has to be installed. This is installed as a Windows service and is administrated with the Windows services administration.

  • Entire Net-work/EntireX Broker

    Used as the transport layer.

Executing Operating System Functions

For executing operating system functions, there is a server of type Entire System Server/Windows on each Windows node. This server runs as a background Windows process.

The Entire Operations Monitor and the Entire Operations online application use the following components for server communication:

  • The System Automation Tools (SAT) communication layer

  • The EntireX Broker for transmitting client/server requests

  • Entire Net-work as the transport layer

  • Up to 740 Windows nodes can be served concurrently

File Names

As there is no backslash (\) available on mainframes, Windows file names can be written with a slash (/) as an alternative as well if the character sequence +F+ directly precedes the file name. This applies to file names within JCL as well.

Example:

Original Windows c:\jcl\script1.bat
Alternative representation +F+c:/jcl/script1.bat

SYSOUT Redirection

From the Entire Operations Monitor, all jobs are started which redirect their output to a file. The SYSOUT files are stored in the Entire Operations work directory. If the job is repeated, the old SYSOUT file is renamed.

Entire Operations Work Directory

The Entire System Server/Windows environment variable %EOR_WORK% contains the name of the Entire Operations work directory. Within this directory, the work files are stored hierarchically.

The name generation for work files under BS2000 is described in Naming Conventions for Work Files Created by Entire Operations, Windows in the section Installing Entire Operations on Mainframes in the Installation and Setup documentation.

The name of the work directory for an active network is available in the predefined symbol P-NADIR. You may store application-specific work files there, provided there are no naming conflicts with files created by Entire Operations.

Work files created by Entire Operations or by the application are deleted by the Entire Operations Monitor on network or job deactivation.

Environment Variables

You can use Windows environment variables freely within file names. This corresponds to the behavior of BAT files. You can combine environment variables and variables from symbol tables.

Job Control (JCL)

The Windows JCL can be stored in any place. Among other places, it can be stored in Natural text objects or in mainframe files. Symbol replacement and JCL generation (jobs with JCL location MAC) are available.

Job Start and Job Control

The Entire Operations Monitor starts jobs based on conditions and on time. Accounting data is retrieved and stored. You can manually cancel the job from the online environment.

End-of-Job Check

Entire Operations adds some echo commands to the Windows job control. This allows control of certain messages in the SYSOUT:

  • Starting and ending message with timestamp

  • Elapsed job time

These messages are used to check whether a job did run completely. Additionally, accounting information is retrieved. For checking the job, strings can be searched for in SYSOUT and End-of-Job check routines can be used.

End-of-Job Actions

You can send messages (for example by e-mail) to other users from the Windows node. In the Windows node definition, a program for sending mail can be defined. It is required that this program can be started from the DOS command prompt. One example for such a program is the shareware wsendmail. All other forms of news broadcasting, such as the Entire Operations Mailbox, can still be used.

You can define printing of files and of SYSOUT lists as an End-of-Job action. For each Windows node, a Windows print command with a variable for the file name can be defined. User exits can help start further actions.

Defining Master JCL for a Job

Start of instruction set To define master JCL for a job

  1. On the Job Maintenance screen, type J (JCL) in the line command input field next to the job for which you want to add or modify a JCL definition.

    Or:
    In the Job Definition (Master) window of the required job, choose PF9 (JCL).

  2. Press ENTER.

    A Job: JCL Definition (Master) window similar to the example below opens:

    +-------------------------------------------------------------------------+
    |                                                                         |
    |                      Job: JCL Definition (Master)                       |
    |                                                                         |
    |  Job Name       ==> JOB-01            Mod ==> NATQA5   19-01-25 16:45   |
    |  Description    ==> Where it all starts                                 |
    |  Job Type       ==> JOB                                                 |
    |  Execution Node ==>    42 MVS/ESA         Symbol Table ==>              |
    |                                                                         |
    |  JCL Location   ==> NAT                  JCL Load Mode ==> A            |
    |  JCL Node       ==>    42 MVS/ESA                                       |
    |  File/NatLib    ==> SYSEORU_____________________________________        |
    |  Member         ==> JOB-01__ ________                                   |
    |  VolSer         ==> ______  (if not catlgd)   Password ==>              |
    |                                                defined ==> no           |
    | Enter-PF1--------PF3--PF4---PF5---PF6---PF7---PF8------PF10-----PF12--  |
    |       Help       End  Edit  Save  Spec  Symb  Import   Browse   Menu    |
    +-------------------------------------------------------------------------+
  3. Enter the required values. The input fields and special PF keys available are explained in Fields: Master JCL Definition.

    After having entered all values, you can continue with one of the functions provided by the PF keys described in Special PF Keys: Master JCL Definition.

  4. When you are finished, choose PF5 (Save) to save your entries.

If you want to edit the defined JCL, proceed as described in Editing Master JCL and Natural Sources.

This section covers the following topics:

Fields: Master JCL Definition

The fields in the Job: JCL Definition (Master) window are described in the following table:

Field Description
JCL Location  Type of JCL storage location.

For valid input values, see JCL Locations.

In a network definition, this field serves as a default for the entire network. See also Fields and Commands: Network Definition in the section Network Maintenance.

JCL Node  JCL for the job is read from this node.

The job is started on the execution node. The default is the value specified in the job network definition (see Fields and Commands: Network Definition), which can be overwritten here.

You can define the JCL node as a symbol. For details, see Symbols in Node Definitions in the section Symbol Table and Symbol Maintenance.

JCL Load Mode

Possible values:

A Load JCL at activation time (default).
S

Load JCL at submission time. Use this only if prerequisites for JCL are not available at activation time.

Notes:

  1. JCL load errors are detected very late.
  2. Network execution may slow down, because of the time necessary for JCL load before submission.
  3. JCL pregeneration also works with submission time JCL load.
  4. If resources are defined, they are allocated before JCL load at submission time. If the JCL load fails, the allocated resources are freed immediately.
  5. JCL loading at submission time is mainly intended to allow the generation of macro JCL as late as possible.
  6. For other types of JCL, we still recommend submission time symbol replacement, which causes less system overhead.
File/NatLib  Storage type of the JCL corresponding to the job type.

For Natural programs and dynamic JCL (storage location NAT): the Natural library where the program or the variable JCL resides. The Natural library must reside in the FUSER system file and must not have the same name as the SYSEOR system library.

For z/VSE: library and sub-library associated by a period (.).

For all others: the file name.

You can list the file or library names by entering an asterisk (*) as a wildcard character. To list, for example, all file or library names beginning with XA, enter XA* in this field and press ENTER. To get the complete list, enter an asterisk (*) in the field and press ENTER. You can select the required library or file from this list. You can also delete a library or file from this list.

For BS2000: The default pubset is stripped from the file name prior to storing it. This allows easier migration to another default pubset.

For UNIX: Be aware of upper and lower case. You may use environment variables and symbols within names.

Symbols may be used. If a JCL file contains the activation escape character (see Escape Characters), symbol replacement is performed:

  • When editing JCL (temporary, using the master symbol table);

  • When loading JCL (permanently, using the active symbol table).

For detailed information, see the section Symbol Table and Symbol Maintenance.

Member  Name of the Natural object or library/file member of the operating system that contains the JCL.

This applies to all JCL locations which support members: see List of JCL Locations. This field cannot be used and is protected for other JCL locations.

When you add a new job definition, the name of the job is entered in this field by default.

You can list the member names by entering an asterisk (*) as a wildcard character. To list, for example, all member names beginning with XA, enter XA* in this field and press ENTER. To get the complete list, enter an asterisk (*) in the field and press ENTER. You can select the required member from this list. You can also delete a member from this list.

New Members:

You can also enter the name of a non-existing member if, for example, no JCL has yet been defined for the job. If the member does not exist, the message ** Member not in the Library * appears next to the field when you press ENTER or choose PF5, but Entire Operations accepts the member name assuming a member with this name will be created.

Before activating a network and before starting a job, Entire Operations checks whether a member has been defined. If there is no member, an error message is issued.

Symbols may be used. If a JCL file contains the activation escape character (see Escape Characters), symbol replacement is performed:

  • When editing JCL (temporary, using the master symbol table);

  • When loading JCL (permanently, using the active symbol table).

For detailed information, see the section Symbol Table and Symbol Maintenance.

Note for BS2000:

JCL location PRC (Callable procedure): If no member is specified, the JCL file must be a BS2000 sequential file.

VolSer  Volume serial of the file.

Only required if the file has not been cataloged (z/OS only).

Password  The file password if the file has been protected by a password.
defined yes A file password is defined.
no A file password is not defined.

Special PF Keys: Master JCL Definition

You can perform the following functions using these PF keys in the Job: JCL Definition (Master) window:

PF Key Name Function
PF4  Edit Edit the defined JCL.

See Editing Master JCL and Natural Sources.

PF6  Spec  Define special parameters for operating system dependent JCL specifications.
PF7  Symb  Display the symbol table specified in the Symbol Table field. You can define or change the symbol table.
PF8  Import Import the job control (only master definitions). Allows to convert the JCL from an operating system file format (for example PDS, TXT) to Natural source format or a macro language format.
PF10 Browse Display the defined JCL in read-only mode.

Displaying Master JCL

Start of instruction setTo display the master JCL source defined for a job

JCL Locations

This section covers the following topics:

List of JCL Locations

Entire Operations offers a broad range of possible locations for its original (master) JCL.

The following table describes the physical locations you can specify for JCL in the JCL Location field of the Job: JCL Definition (Master) window.

The locations NAT (Natural source) and MAC (Macro Natural source) are available on all operation systems supported by Entire Operations. Other locations are available for individual operating systems only as indicated in the following table:

JCL Location/Input Option Applies to Operating System Description
blank field

(No JCL required)

 
n/a None (no JCL required).
BS2

SAM or ISAM

 
BS2000 SAM or ISAM file.

See also BS2000 in Fields: Operating System Specials for JCL.

EXE

Executable program

UNIX, Windows Executable, for direct file execution.

Not intended for shell scripts or BAT files.

You can pass parameters to the executable file with the CMDLINE-job reserved symbol. See Reserved Symbols for Command Line Parameters in the section Symbol Table and Symbol Maintenance.

LIB

Librarian

 
z/OS Librarian.
LMS

LMS library

 
BS2000 LMS library.

See also BS2000 in Fields: Operating System Specials for JCL.

MAC

Macro Natural source

 
all For macro JCL.

A Natural source object is used.

NAT

Natural source

 
all Natural source object.

See also Restriction for Job Types.

PDS

Partitioned data set

z/OS Member of a partitioned data set.

See also Restriction for Job Types.

PRC

Callable procedure

 
BS2000 BS2000 procedure.

See JCL Location PRC: BS2000 Procedure for more information.

RDR

z/VSE reader queue

 
z/VSE z/VSE reader queue for job type STC (Started Task).
VSE

z/VSE sublibrary

 
z/VSE z/VSE member in z/VSE sublibrary.
TXT

Text file

 
UNIX, Windows Text file.

See also UNIX and Windows in Fields: Operating System Specials for JCL.

Restrictions for Job Types

  • Jobs of the type STC (Started Task) must have the location PDS (Partitioned data set) on z/OS.

  • Jobs of the type NAT (Natural Program) must have the location NAT (Natural source).

  • Jobs of the type DUM (Dummy Job) must not have any JCL location.

  • Jobs of the type FTP (File Transfer Job) do not require a JCL location. Entire Operations generates the FTP JCL itself, depending on the FTP parameters defined on the Job Definition - FTP Attributes screen.

During definition, it is checked whether the defined JCL exists at all. If the JCL cannot be found, a warning appears in the Job JCL Definition (Master) window.

Location on another Node

The JCL can be saved on another machine, not identical with the executing machine and even on another operating system, not identical with the executing operating system.

Replacing Symbols

In all JCL locations, you can easily replace symbols as described in Symbol Replacement in the section Symbol Table and Symbol Maintenance.

JCL Location PRC: BS2000 Procedure

If this location has been defined, Entire Operations generates a BS2000 ENTER job in the active JCL calling this procedure.

The following rules are applied:

  • If no JCL member is specified, the JCL file must be a BS2000 sequential file. If a JCL member is specified, the JCL file must be a BS2000 LMS library.

  • The BS2000 job name adopts the Entire Operations job name and if it is longer than 8 characters, it cuts the name to 8 characters.

  • SDF statements (CALL-PROC) are used.

  • The symbol table for which the job has been defined must contain all parameters of the BS2000 procedure. The symbol values are used for calling the BS2000 procedure.

  • Positional and keyword parameters are supported.

  • Numbers and names of the parameters are automatically retrieved from the procedure (PROC / BEGIN-PROC statement).

  • The generated CALL-PROCEDURE statement has the parameter LOGGING=*YES.

  • BS2000 job submissions are performed with the generated line /MODIFY-SDF-OPTIONS CONTINUATION=*NEW-MODE.

JCL Frames for BS2000 DO Procedures

For BS2000 procedures, a user-defined JCL frame can be used. It must be saved under the name PRCFRAME in the library SYSEORU. If PRCFRAME is not found in SYSEORU (or in SYSEOR, for compatibility), Entire Operations generates a standard frame.

Special Commands

Command Description
#ESC-FRAME escape-character  Defines the escape character the JCL frame uses to replace symbols.

This command must be at the top and is compulsory.

#CALL-PROC 

The procedure call (/CALL-PROC) is generated here.

Adding User-Defined Parameters to the /CALL-PROC Statement

It is possible to add user-defined parameters to the CALL-PROC statement in the PRCFRAME text object. The following applies:

  • The #CALL-PROC line must look like #CALL-PROC -. The minus sign (-) indicates a continuation. In the generated JCL, it will be placed in column 72.

  • The user-defined continuation(s) follow the #CALL-PROC line. They must begin with the following characters: / ,.

Example:

#CALL-PROC -
/ ,LOGGING=YES

Example of PRCFAME Contents

#ESC-FRAME §
/.SN§P-RUN LOGON SN,1
/REMARK === PRC FRAME EXAMPLE
/REMARK §AAAA YYYYYYYYYYYYY
#CALL-PROC
/STA L
§BBBB
/LOGOFF

Notes:

  1. All symbols used in the JCL frame must be contained in the active symbol table of the job. The active symbol table must continue to contain all symbols for calling the procedure.
  2. If a symbol does not exist, job activation is discontinued.

Defining Operating System Dependent JCL Specifications

Some operating systems or JCL locations may require some additional definitions.

Start of instruction set To define JCL parameters specific to an operating system

  • In the Job: JCL Definition (Master) window, choose PF6 (Spec).

    Depending on the operating system, a Specials window opens similar to the example of BS2000 below:

    +------------------------------------------------------------------------+
    |                                                                        |
    |                          Job Master Definition                         |
    |                           BS2000 Specials, JCL                         |
    |                                                                        |
    |             Owner ==> EXAMPLE           Job Type ==> JOB Loc ==> MAC   |
    |           Network ==> B60-FLOW          JCL Node ==> N0121 BS2000      |
    |               Job ==> JOB-012                                          |
    |                                                                        |
    |   Default User ID ==> NOP_____       JCL User ID ==> NOP_____          |
    |                                                                        |
    |                                                                        |
    |  LMS Member for                                                        |
    |  ==> ________________________________________________________________  |
    |  LMS Member Version ==> ________________________    Type ==> ________  |
    |                                                                        |
    | Enter-PF1---------PF3---------PF5-------------------------------PF12-- |
    |       Help        End         Save                              Menu   |
    +------------------------------------------------------------------------+

    The fields contained in the window are explained in Fields: Operating System Specials for JCL.

This section covers the following topics:

Fields: Operating System Specials for JCL

The operating system specific input fields provided in the Specials window for JCL are described in the following table.

Operating System Field Description
BS2000 Default User ID Valid logon user ID defined for BS2000. This ID has no meaning for other operating systems. Unqualified file and job variable names in this job definition are prefixed with this BS2000 user ID.

Note:
The user ID TSOS can be defined only if the user defining the ID is working under TSOS.

See also the default setting User ID Definition described in Default Setting (1) in the Administration documentation.

JCL User ID   If this field is not empty, the JCL is loaded under the rights of this BS2000 user ID and may be overridden by specific definitions. TSOS may only be defined, if the defining user is working under TSOS.

Default: If this field is left blank, the user ID from the fully qualified JCL file name is used as JCL User ID.

See also the default setting of User ID Definition (Default Setting (1), Administration documentation), and the sections Operating System User IDs and Default User ID Determination.

LMS Member for Applies to the JCL locations LMS (LMS library) and PRC (Callable procedure).

This field can be used specially for long member names of up to 64 characters.

If the JCL location is LMS and you leave this field blank, the short member field is used.

JCL location PRC: If no member is specified, the JCL file must be a BS2000 sequential file.

LMS Member Version Applies to the JCL locations LMS (LMS library) and PRC (Callable procedure).

Version of the specified LMS member.

This must be exactly the same as given in LMS itself. Leading zeroes must be specified in the same way.

Type  Applies to the JCL locations LMS (LMS library) and PRC (Callable procedure).

LMS member type.

Possible values:

S: Source program
J: Procedure or ENTER job
D: Document
X: Data of any format
z/OS JCL User ID  JCL in z/OS is loaded under this user ID by the Entire Operations Monitor. You may define this field only if you are logged on to the JCL node with the same user ID.

See also the default setting User ID Definition (Default Setting (1), Administration documentation), and the sections Operating System User IDs and Default User ID Determination.

VolSer  Volume serial number of the file where the JCL resides.

Only required if the file has not been cataloged.

z/VSE Library  Name of the z/VSE library within the selected file.
Sublib  Name of the z/VSE sublibrary within the selected file.

You can use an asterisk (*) as a wildcard to open a selection window.

Member  Name of the member where the JCL for the job resides.

You can use an asterisk (*) as a wildcard to open a selection window.

Member Type  Member type of the z/VSE library.
Volser  Volume serial number of the file where the JCL resides. This is a required parameter for z/VSE.
VSAM Catalog  Name of the VSAM catalog for the selected file.
UNIX and Windows JCL User ID The Entire Operations Monitor will load JCL with the access rights of this user ID.

See also the default setting User ID Definition (Default Setting (1), Administration documentation), and the sections Operating System User IDs and Default User ID Determination.

JCL Group UNIX group or Windows domain (optional).

UNIX: If this field is blank, the user's default UNIX group (from /etc/passwd) is used. Otherwise, this field must contain one of the UNIX groups, which is visible in the output of the UNIX groups command.

Windows: The Windows domain to be used for the logon.

Handling JCL during Job Submission

This section covers the following topics:

JCL Modifications during Submission

Jobs defined and scheduled in Entire Operations are submitted automatically under the control of the Entire Operations Monitor. During the submission process, the submitted JCL can be handled in any of the following ways:

  • Completion or modification of the job JCL according to the Entire Operations defaults;

  • Checking of all submitted JCL by a global user exit (to be defined in the Entire Operations defaults);

  • Insertion of header information as comments into the submitted JCL. This is always performed. The header information can be viewed in the job SYSOUT as shown in the following example:

     Job SNNOPEX (1355) Type SM File 2------------------------------ Columns 001 072
     ====>                                                           SCROLL===> CSR
     ***** ****************************** top of data ******************************
     00001         1 //NOPE01J1 JOB ,SN,CLASS=G,MSGCLASS=X,MSGLEVEL=(1,1),
     00002           // TYPRUN=SCAN
     00003           *** $ACFJ219 ACF2 ACTIVE DAEF
     00004           *** =====================================================
     00005           ***                S O F T W A R E   A G
     00006           ***          E N T I R E   O P E R A T I O N S
     00007           ***
     00008           *** Owner:    SN         Run:           328
     00009           *** Network:  SN-2       Symbol Table:  EXAM-ST1
     00010           *** Job:      CHECK-TIME Escape Act:    Sub: $
     00011           ***                      Submit User ID: SN
     00012           ***
     00013           *** 29.10.08 15:15 activated        by SN
     00014           *** 29.10.08 15:15 created/modified by SN
     00015           *** 29.10.08 15:15 submitted
     00016           *** =====================================================
     00017           *** Symbols replaced at Activation Time:
     00018           ***

    Note:
    In BS2000, the LOGON statement is checked. If nothing else was specified at job definition, the LOGON parameters, account-number, job-class, monitoring job variable (with password, if specified) are taken from here. Job priority, run priority and CPU time limit can also be given via LOGON statement.

  • Insertion of information about all replaced symbols and their current values if any symbols were replaced. For example:

     Job SNNOPEX (1355) Type SM File 2------------------------------ Columns 001 072
     ====>                                                           SCROLL===> CSR
     00015           *** 29.10.08 15:15 submitted
     00016           *** =====================================================
     00017           *** Symbols replaced at Activation Time:
     00018           ***
     00019           *** Symbol  : UID
     00020           ***   Owner : SN  Symbol Table: EXAM-ST1
     00021           ***   Modif.: SN  at 22-06-07 12:31
     00022           ***   Value : SN
     00023           *** Symbol  : CLASS
     00024           ***   Owner : SN  Symbol Table: EXAM-ST1
     00025           ***   Modif.: SN  at 22-06-07 12:32
     00026           ***   Value : G
     00027           *** Symbol  : MSGCLASS
     00028           ***   Owner : SN  Symbol Table: EXAM-ST1
     00029           ***   Modif.: SN  at 22-06-07 12:32
     00030           ***   Value : X
     00031           *** Symbol  : P-EXECUTION-NODE
     00032           ***   Value : 146
     00033           *** Symbol  : JOBLIB
  • Replacement of symbols in the JCL with their current values at submission time.

  • For z/OS only:
    If a submission time symbol replacement error occurs, a JCL error is forced to prevent the job from executing. Lines similar to the following force a JCL error:

    // ###### Entire Operations Symbol Replacement Error ######

    The job remains in an error status such as the following:

    JobId 51058 - Symbol Replacement Error

    End-of-Job processing is not completed, because this is treated as a submission error.

See also Working with Entire System Server Nodes in the section Operating System User ID.

Notes about the JCL Header Generation

  1. The Submit User ID is always shown.

  2. The created/modified user ID is modified only if the job definition or JCL was modified. Activation or re-activation does not count as a modification.

Trigraph Encoding for JCL Submission on UNIX and Windows

Trigraph encoding is used to avoid translation failures during ASCII/EBCDIC text conversion. An ASCII character for which no equivalent EBCDIC character exists is then substituted by a trigraph and the text can be encoded successfully.

Entire Operations uses trigraphs when generating JCL for UNIX and Windows. For Entire System Server execution nodes on UNIX and Windows, trigraph encoding is switched on by default using the question mark (?) as the default escape character.

Switching Trigraph Encoding On and Off

You can switch on and off trigraph encoding in the JCL with the following meta commands:

#EOR-TRIG=YES Enables trigraph encoding.
#EOR-TRIG=NO Disables trigraph encoding.

Each meta command must be in a single line as shown in the following example for UNIX and Windows.

Defined JCL:

...
echo '??( test ??)'
#EOR-TRIG = OFF    
echo '??( test ??)'
#EOR-TRIG = ON
...

Submitted JCL:

...
echo '[ test ]'
echo '??( test ??)'
...
Supported UNIX and Windows Trigraphs

Entire System Server execution nodes on UNIX and Windows support the trigraphs listed in the following table. A trigraph always begins with two escape characters; the table below assumes the question mark (?) to be the default escape character.

ASCII Trigraph Remarks
[ ??(  
\ ??/  
] ??)  
^ ?? '  
{ ??<  
| ??_  
} ??>  
~ ??-  
@ ??%  
` ??;  
! ??:  
\f ??+ Form feed
\t ??& Tab

Symbol Replacement in JCL

Symbols for replacement can be defined for all storage locations of master JCL.

Escape characters for symbols can be assigned system-wide, and they can also be defined individually for each job. Defaults for escape characters can be defined for each operating system.

Escape characters for symbol replacement must not conflict with other characters used in the JCL.

For detailed information, see the following sections in Symbol Table and Symbol Maintenance:

Importing JCL into a Natural Library

Entire Operations can read JCL from various origins. A facility is provided for copying JCL from other locations into a Natural library. If the required JCL should remain in its original location, the function described in this section must not be used.

Reasons for Importing JCL into a Natural Library

Importing JCL to a Natural library may be required for one of two reasons:

  • Your job definition specifies a JOB-type job with JCL location NAT and the required JCL is in any operating system file. This function copies the JCL into a Natural library unchanged;

  • You wish to migrate standard JCL to Entire Operations' dynamic JCL format, when you define a MAC-type job and JCL location NAT. The parameter section for dynamic JCL generation is automatically inserted at the head of the otherwise unchanged JCL. The Natural source thus created can be modified to take full advantage of dynamic JCL such as parameter substitution, dynamic code generation, etc.

Note:
The editor command MACRO is always required to compile dynamic JCL into internal code. It must be used after the import to make the macro JCL executable. The macro JCL can be tested with the editor command TEST. See also Special Editor Commands for Macro Sources.

This section covers the following topics:

Using the Import Function

Start of instruction set To import JCL into a Natural source object

  1. In the Job: JCL Definition (Master) window, choose PF8 (Impo).

    A JCL Import from File to Natural Source window similar to the example below opens:

     17-03-09                ***** Entire Operations *****                11:55:22 
     Job Maintenance         Owner SAGTEST    Network SAGNET     Version           
     ------------------------------------------------------------------------------
      +-------------------------------------------------------------------------+  
      !                                                                         !  
      ! +-----------------------------------------------------------------------+  
      ! !                                                                       !  
      ! !                JCL Import from File to Natural Source                 !  
      ! !                                                                       ! 1
      ! !  From                                                                 !  
      ! !  Location ==> NAT                            Node ==> 55522 MVS/ESA   !  
      ! !  File     ==> ______________________________________________________  !  
      ! !  VSE Lib  ==> ________ Sublib ==> ________ VSAM Cat ==> ________      !  
      ! !  Member   ==> ________   Type ==> ________   Volser ==> ______        !  
      ! !  LMS Member                                Password ==>               !  
      ! !  ==> ________________________________________________________________ !  
      ! !  Member Version ==> ________________________                          !  
      ! !  To                                                                   ! *
      ! !  Library ==> SYSEORU                                                  !  
      ! !  Member  ==> JCLTEST                Overwrite (y/n) ==> N             !  
      + !                                                                       !  
      ! !  Enter Continue   PF3 End                                             !  
      + +-----------------------------------------------------------------------+  
                                                                                   
                                                                                   
    Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
          Help  Add   End         Save        Up    Down                    Menu

    Note:
    The JCL Location in the Job: JCL Definition (Master) window must be set to NAT.

  2. Enter the required values:

    • In the fields under the heading From, enter the origin File and Member names. Enter a Volser name only if the file is not cataloged. You can use an asterisk (*) as a wildcard to open a selection window with file names.

    • In the fields under the heading To, enter the target Natural Library and Member (object) name.

      Enter Y (Yes) or N (No) next to the Overwrite (y/n) option to determine whether or not an existing object is replaced by the imported source.

  3. When you are finished, press ENTER.

    If the target Natural object does not already exist, the function is performed.

    If the target object already exists and you entered Y for Overwrite (y/n), the existing object is overwritten.

    If the target object already exists and you entered N for Overwrite (y/n), the object is not overwritten and an Overwrite Option required for existing JCL message occurs instead.

For a summary of all fields available in the window, see also Fields: JCL Import from File to Natural Source.

Fields: JCL Import from File to Natural Source

The input fields of the JCL Import from File to Natural Source window are described in the following table:

Field Description
From ... 
Location  JCL location (see JCL Locations).
Node  Node of the file containing the JCL to be imported.
File   Name of the file containing the JCL to be imported.
VSE Lib  Name of the z/VSE library within the selected file.
Sublib  Name of the z/VSE sublibrary within the selected file. You can use an asterisk (*) as a wildcard to open a selection window.
VSAM Cat  Name of the VSAM catalog for the selected file.
Member  Name of the member where the JCL for the job resides.

You can use an asterisk (*) as a wildcard to open a selection window.

Type  BS2000:  

LMS member type. Possible values: S, J, D or X.

z/VSE:  

Member type of the z/VSE library.

Volser  Enter the volume serial number of the file where the JCL resides. This is a required parameter for z/VSE.
Password Password if the file is password-protected (optional).

BS2000: Only the first 4 bytes are used as Read password (alphanumeric only).

LMS Member  (BS2000 only)

This field can be used specially for long member names. If the JCL location is LMS and you leave this field blank, the short member field is used.

Member Version  (BS2000 only)

Enter the version of the specified LMS member. This must be exactly the same as given in LMS itself. Leading zeros must be specified in the same way.

To ... 
Library  Enter the name of the Natural library containing the object in which the imported JCL is to be stored.
Member  Enter the name of the Natural object in which the imported JCL is to be stored.
Overwrite (y/n)  Enter Y (Yes) if you want existing JCL in the specified Natural object to be overwritten.

Default is N (No): an existing object source is not overwritten.

Pregenerating Active JCL

For performance reasons, it might be necessary to pregenerate active JCL to be used for job submission. This function is conceived mainly for macro jobs, whose dynamic JCL generation can become time-consuming, because macro language must always be executed. JCL can also be pregenerated for all other job types.

Note:
In the case of a resubmission of the active job, the pregenerated JCL is not reloaded if the active JCL of the job has been edited in the meantime.

This section covers the following topics:

Related Topic:

Pregenerating, Editing and Removing Active JCL

Start of instruction set To pregenerate active JCL

  1. Type G in the line command field of the selected job in the Job Maintenance screen.

  2. Press ENTER.

    The following window opens:

      24.10.08               ***** Entire Operations *****                    09:20:08
       +----------------------------------------------------------------+ R-169066
       !                                                                ! ----------
       !                   Active JCL Pregeneration                     !     Member
       !                                                                !
       !  Owner SN         Network R-169066   Job J-1                   !   JC117573
       !                                                                !
       !  Due to performance reasons, it is possible to pregenerate     !
       !  active JCL, which will be used for the job submission.        !
       !                                                                !
       !  Warning:                                                      !
       !  Please use this function always after                         !
       !  - you modified the definition of the JCL location,            !
       !  - you edited the master JCL,                                  !
       !  - you modified the linked Symbol Table.                       !
       !                                                                !
       !  Please proceed with one of the following PF Keys:             !
       !    PF3    End                                                  ! **********
       !    PF4    Edit pre-generated JCL                               ! ources
       !    PF5    Pre-generate active JCL                              ! U Add.Log
       !    PF6    Remove pre-generated active JCL                      ! ___
     E !                                                                ! 1--PF12---
       +----------------------------------------------------------------+    Menu
  3. Choose PF5 to pregenerate active JCL.

    If no generation errors occur, the message Function performed indicates that active JCL has been pregenerated for the job.

  4. Choose PF4 if you want to open the Entire Operations editor and change the pregenerated JCL.

  5. Choose PF6 if you want to remove the pregenerated JCL.

    The message Object deleted indicates that the pregenerated JCL has been removed.

  6. Choose PF3 to return to the Job Maintenance screen.