刷新jcl中的步骤返回代码

刷新jcl中的步骤返回代码,jcl,return-code,Jcl,Return Code,我在下面的场景中遇到过,我对上一步的cond参数是如何工作的感到有点困惑 例如 //步骤1执行 //步骤2执行条件=(0,ne,步骤1) //步骤3执行条件=(0,ne,步骤2) 在上述情况下,对于一个输入文件,步骤1 RC为4,因此步骤2被清除,但步骤3已执行 这就是我感到困惑的地方,jcl是否会将刷新的步骤rc视为0,或者是什么导致了即使没有执行步骤2也执行步骤3 对此的任何解释,我们将不胜感激。来自 使用COND参数测试先前作业步骤中的返回代码 并确定是否绕过此作业步骤。您可以指定一个或多

我在下面的场景中遇到过,我对上一步的cond参数是如何工作的感到有点困惑

例如

//步骤1执行
//步骤2执行条件=(0,ne,步骤1)
//步骤3执行条件=(0,ne,步骤2)

在上述情况下,对于一个输入文件,步骤1 RC为4,因此步骤2被清除,但步骤3已执行
这就是我感到困惑的地方,jcl是否会将刷新的步骤rc视为0,或者是什么导致了即使没有执行步骤2也执行步骤3

对此的任何解释,我们将不胜感激。

来自

使用COND参数测试先前作业步骤中的返回代码 并确定是否绕过此作业步骤。您可以指定一个或多个 对COND参数进行更多测试,您可以从 特定作业步骤或已完成的每个作业步骤 处理。如果满足任何试验条件,则系统 将COND参数计算为true并绕过作业步骤。如果 COND参数中规定的所有试验条件均不适用 如果满足,系统会将COND参数评估为false,并且 执行作业步骤

系统根据来自的返回代码执行COND参数测试 作业的当前执行。如果测试返回以前的 绕过步骤,系统将测试评估为错误

注意我用斜体标出的文本。因为“系统将测试评估为false”,所以执行作业步骤。换句话说,EXEC语句的COND参数正在按文档所述工作。至于为什么参数被设计成这样工作,恐怕我在40多年前发明它的时候并没有在这个领域工作,因此无法与原始开发人员的推理相媲美

您可能需要研究,它提供了测试给定步骤是否已运行以及测试其返回代码的功能

//STEP01 EXEC 
//CK01   IF STEP1.RC EQ 0 THEN
//STEP02 EXEC
//CK01E  ENDIF
//CK02   IF STEP2.RUN & STEP2.RC EQ 0
//STEP03 EXEC
//CK02E  ENDIF
或者,您可以编写

//STEP01 EXEC 
//CK01   IF STEP1.RC EQ 0 THEN
//STEP02 EXEC
//CK02   IF STEP2.RC EQ 0
//STEP03 EXEC
//CK02E  ENDIF
//CK01E  ENDIF