一个Jcl问题
我们在jcl中有3个步骤, 步骤1 第2步 第三步: 如果步骤1输出为空,则step2需要运行else步骤3需要运行。 有人知道答案吗? 它不应该添加任何新的步骤,解决方案应该只通过jcl
答案 0 :(得分:1)
如果你想用JCL这样做,有几种可能性。我给你我最喜欢的一个:
//* Using IDCAMS
//* -------------------------------------------------------------------
//* Sets RC=0000 if dataset has records. *
//* Sets RC=0004 if dataset is empty. *
//*-------------------------------------------------------------------*
//IDCAMS0 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//MYFILE DD DISP=SHR,DSN=<Dataset Name>
//SYSIN DD *
PRINT INFILE(MYFILE) CHARACTER COUNT(1)
此致 安德烈亚斯
答案 1 :(得分:0)
我不会称之为优雅的解决方案,但处理此问题的一种简单方法是自己编写一个在步骤1之后和步骤2之前运行的短程序。该程序检查步骤1中的输出文件是否为是否为空,设置返回代码以指示另一个,然后您可以在后续步骤中使用标准JCL COND检查来获得所需的结果。
有很多方法可以检查空文件...我在C / C ++中使用stat(),但如果您愿意,可以用Java甚至REXX或其他脚本语言来完成。在最坏的情况下,您只需打开并读取输入文件,如果立即获得EOF,则返回空返回码,否则返回非空返回码。