EXEC 声明

优质
小牛编辑
130浏览
2023-12-01

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

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

语法 (Syntax)

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

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

描述 (Description)

让我们看一下上面EXEC语句语法中使用的术语的描述。

STEP-NAME

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

EXEC

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

中方位-PARAM

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

位置参数描述
PGM这是指要在作业步骤中执行的程序名称。
PROC这是指在作业步骤中要执行的过程名称。 我们将单独讨论它。

关键字PARAM

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

关键字参数描述
PARM

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

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

ADDRSPC

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

ADDRSPC=VIRT | REAL

如果未对ADDRSPC进行编码,则VIRT是默认值。

ACCT

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

ACCT=(userid)

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

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

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

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

在JOB语句中编码的REGION将覆盖在任何作业步骤的EXEC语句中编码的REGION。

COND

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

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

例子 (Example)

以下是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