JCL - EXEC声明

每个JCL都可以由许多工作步骤组成.每个作业步骤可以直接执行程序或者可以调用程序,该程序又执行一个或多个程序(作业步骤).保存作业步骤程序/过程信息的语句是 EXEC语句.

EXEC语句的目的是为程序提供所需信息/在作业步骤中执行的过程.在此语句中编码的参数可以将数据传递给正在执行的程序,可以覆盖JOB语句的某些参数,并且如果EXEC语句调用过程而不是直接执行程序,则可以将参数传递给过程.

语法

以下是JCL EXEC语句的基本语法:

//Step-name EXEC Positional-param, Keyword-param

描述

让我们看一下所用术语的描述以上EXEC语句语法.

STEP-NAME

这标识了JCL中的作业步骤.它的长度可以是1到8,带有字母数字字符.

EXEC

这是将其标识为EXEC语句的关键字.

POSITIONAL-PARAM

这些是位置参数,可以是两种类型:

位置参数描述
PGM 这是指在作业步骤中执行的程序名称.
PROC 这是指程序名称在工作步骤中执行.我们将另外讨论它.

KEYWORD-PARAM

关注是EXEC语句的各种关键字参数.您可以根据需要使用一个或多个参数,并用逗号分隔:

关键字参数描述
PARM

用于向作业步骤中正在执行的程序提供参数化数据.这是一个程序相关字段,没有明确的规则,除了在有特殊字符的情况下PARM值必须包含在引号内.

例如下面给出的值"CUST1000"作为字母数字值传递给程序.如果程序在COBOL中,则通过程序的LINKAGE SECTION接收通过JCL中的PARM参数传递的值.

ADDRSPC

这用于指定作业步骤是否需要虚拟存储或实际存储才能执行.虚拟存储是可分页的,而实际存储不是并且被放置在主存储器中以供执行.需要更快执行的作业步骤可以放在实际存储中.以下是语法:

ADDRSPC = VIRT | REAL

当ADDRSPC未编码时,VIRT是默认值.

ACCT

这指定了作业步骤的会计信息.以下是语法:

ACCT =(userid)

这类似于位置参数会计JOB声明中的信息.如果它在JOB和EXEC语句中都被编码,则JOB语句中的记帐信息适用于未编码ACCT参数的所有作业步骤. EXEC语句中的ACCT参数将覆盖仅作业步骤的JOB语句中的ACCT参数.

EXEC和JOB语句的公共关键字参数

关键字参数描述
ADDRSPC 在JOB语句中编码的ADDRSPC会覆盖在任何作业步骤的EXEC语句中编码的ADDRSPC.
TIME 如果TIME在EXEC语句中编码,则它仅适用于该作业步骤.如果在JOB和EXEC语句中都指定了它,则两者都将生效,并且可能由于其中任何一个而导致超时错误.不建议在JOB和EXEC语句中同时使用TIME参数.
REGION

如果REGION在EXEC语句中编码,则它仅适用于该作业步骤.

在JOB语句覆盖中编码的REGION REGION在任何工作步骤的EXEC语句中编码.

COND

用于根据上一步的返回码控制作业步骤执行.

如果是COND参数在作业步骤的EXEC语句中编码,然后忽略JOB语句的COND参数(如果存在).可以使用COND参数执行的各种测试在条件处理中进行了解释.

示例

以下是JCL脚本以及JOB和EXEC语句的简单示例:

//TTYYSAMP JOB 'TUTO',CLASS=6,MSGCLASS=X,REGION=8K,
//      NOTIFY=&SYSUID
//*
//STEP010 EXEC PGM=MYCOBOL,PARAM=CUST1000,
//      ACCT=(XXXX),REGION=8K,ADDRSPC=REAL,TIME=1440