首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无论上一步的RC是什么,我都想执行JCL步骤?

无论上一步的RC是什么,我都想执行JCL步骤?
EN

Stack Overflow用户
提问于 2017-08-10 09:28:19
回答 2查看 3.1K关注 0票数 0

在我的JCL中有三个步骤:

步骤1:过程步骤2: NDM步骤3:在NDM之后删除输出

我想完成什么?无论步骤2的返回代码是什么,我都希望执行步骤3。

我试过这样做: COND=(16,GT)和COND=(16,ST,步骤2),但是它没有做我想做的事情。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-10 09:56:45

在最后一步的EXEC语句中尝试COND=EVEN。

从医学部:

COND=EVEN告诉MVS执行此作业步骤,即使同一作业中的前一步abends,除非该作业被MVS操作符取消。

还有一个COND=ONLY:

COND=ONLY告诉MVS,只有当同一作业中的前一步被执行时,才执行此作业步骤。

COND的解释:

康德是完全违反直觉的。描述如下:

如果不满足这些测试,系统将执行作业步骤;如果满足任何测试,系统将跳过编码COND=参数的作业步骤。

因此,您的COND=( 16,GT)意味着“如果16大于前面任何步骤的返回代码,则不要执行此步骤”。因此,只有当所有前面的步骤都以RC > 16完成时,这个步骤才会执行。

COND=(16,ST,步骤2)无效- ST不是有效条件。有效的测试是:

代码语言:javascript
复制
EQ - equal                    
LT - less than                
LE - less than or equal to    
NE - not equal                
GT - greater than             
GE - greater than or equal to 

要运行一个步骤,无论前面步骤中的条件代码是什么,您都可以编写COND=(0,GT)代码,这意味着‘如果0大于以前的任何返回代码(它不会),跳过这个步骤。’

为了安全起见,你可以编码:

代码语言:javascript
复制
COND=((0,GT),EVEN)

即使是前一步ABENDs,也会导致此步骤执行。

票数 4
EN

Stack Overflow用户

发布于 2017-08-10 12:58:01

即使在前面的步骤ABENDS中,使用COND=EVEN也有一个潜在的缺陷,即步骤将运行。编码COND=(0,GT,STEP2)应该允许运行该步骤,但如果存在ABEND,则不允许运行。

您也可以使用IF/THEN/ELSE/ENDIF编码。

例如:

代码语言:javascript
复制
//STEP2 EXEC PGM=NDM
//IF STEP2.RC >= 0 THEN
//STEP3 EXEC PGM=???
//ENDIF

代码语言:javascript
复制
//STEP2 EXEC PGM=NDM
//IF STEP2.RC GE 0 THEN
//STEP3 EXEC PGM=???
//ENDIF

也就是说,可以使用>=GE

您可能会发现这个有用的IF/IF/ELSE/ENDIF语句构造

或用于COND参数COND参数

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45609661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档