我需要在JCL中读取文件名并在其中找到特定的字符串。如果存在字符串,那么我需要设置标志变量。 示例:
000063 //SETVARS SET RUNMODE=AY,
000064 // MGRTMODE=M,
000065 // PARMFILE=BASXXXX.T1.XXXX.JIRA.T011746
如果“ PARMFILE”包含“ JIRA”,则设置JIRAFLAG =是,否则设置JIRAFLAG =N。我需要将JIRAFLAG传递给另一个JCL / SAS作业以进行进一步处理。
谢谢! 巴拉提
SAS:
000083 /**/
000084 %LET CHKFILE = %SCAN(&SYSPARM,1,+);
000085 %put &CHKFILE ;
000086 %GLOBAL JIRAFLG ;
000087 %MACRO CHK ;
000088 %LET TSTVAL = %SCAN(&CHKFILE,4,.) ;
000089 %PUT &TSTVAL;
000090 %IF &TESTVAL EQ 'JIRA' %THEN %LET JIRAFLG = 'Y' ;
000091 %ELSE %LET JIRAFLG = 'N' ;
000092 %PUT &JIRAFLG ;
000093 %MEND CHK;
000094 %CHK ;
答案 0 :(得分:0)
JCL本身不提供脚本语言,尽管由于JCL符号和条件而以这种方式直观地想到它。
我不是SAS采购人员,但似乎您的SAS样品进行了扫描。我建议您使用STEP来解析PARMFILE
语句并设置一个已知的返回码。例如,选择返回码1。
下一步,当JIRA位于PARMFILE
中时,当返回码为1时,执行要处理的程序。由于您提到了一项单独的工作,因此您可以通过INTRDR
提交另一个工作。
有多种方法可以完成您想要的工作,而您只需要发挥创造力即可。正如我说的那样,条件和JCL符号吸引了许多人去思考脚本,但不幸的是,脚本不是如何工作的。
答案 1 :(得分:-1)