gpt4 book ai didi

mainframe - JCL : IF Statement with SET Statement

转载 作者:行者123 更新时间:2023-12-02 14:56:55 27 4
gpt4 key购买 nike

我已将 FLAG 设置为 1,并且正在执行 ARG 值应该仅为 DEV。但是我得到的是 ARG= DEV + CLIENTID

000023 //         FLAG=1

000026 // IF (&FLAG=1) THEN
000027 //SET1 SET ARG=DEV
000028 // ELSE
000029 //SET2 SET ARG=DEV+&CLIENT
000030 // ENDIF

这意味着 JCL 在 RUNTIME 中赋值(在检查 IF 条件之前)。

请帮助我理解。

谢谢!巴拉蒂

最佳答案

@hogstrom 说的是正确的。 JCL IF 语句测试步骤返回代码而不是变量值:

//IFBAD     IF  (ABEND | STEP1.RC > 8) THEN

根据他的说法,您可以在 include 语句中使用变量

包含变量

//  INCLUDE MEMBER=OPT&FLAG

并在 proclib 中设置成员

成员=OPT1

  // SET ARG=DEV 

成员=OPT2

  // SET ARG=DEV+&CLIENT 

您必须为 &FLAG每个 可能值设置一个包含,并且对于一个 SET 来说非常冗长。当您可以设置很多变量时,它更常用:

// INCLUDE MEMBER=ENV&ENV

其中 &ENV=PROD\TEST

你的情况

不使用标志,只设置变量:

// SET ARG=DEV

// SET ARG=DEV+&CLIENT 

关于mainframe - JCL : IF Statement with SET Statement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52482214/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com