ans的主机JCl

时间:2017-03-26 03:07:44

标签: mainframe

一个Jcl问题

我们在jcl中有3个步骤, 步骤1 第2步 第三步: 如果步骤1输出为空,则step2需要运行else步骤3需要运行。 有人知道答案吗? 它不应该添加任何新的步骤,解决方案应该只通过jcl

2 个答案:

答案 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,则返回空返回码,否则返回非空返回码。