我们有一个REXX程序,可以在DDNAME LOGNM中创建数据集 LOG.DYYMMDD.THHMMSS.OUT 。
我们使用IKJEFT1B实用程序从JCL调用REXX PROGRAM。
如何在JCL中使用此数据集进行进一步处理。我的意思是我如何在JCL中引用它,因为数据集名称是动态创建的。
答案 0 :(得分:2)
您是否使用 TSO分配或 TSO复制命令在Rexx程序中创建数据集 或类似的TSO命令???
//LOGNM DD DSN=LOG.DYYMMDD.THHMMSS.OUT,DISP=(NEW,CATLG), ....
//LOGNM DD DSN=LOG.DYYMMDD.THHMMSS.OUT,DISP=(NEW,CATLG), ....
或
//LOGNM DD DSN=LOG.DYYMMDD.THHMMSS.OUT,DISP=OLD
在以下步骤中使用数据集应该没有问题。
//LOGNM DD DSN=LOG.DYYMMDD.THHMMSS.OUT,DISP=(NEW,DELETE), ....
然后将DELETE更改为CATLG(或传递)
答案 1 :(得分:1)
创建数据集后,您可以像在任何其他数据集中一样在JCL中引用它。它是动态创建的并不重要,因为在创建数据集时会包含数据集配置。它的处理方式与使用JCL DD语句创建的完全相同。我不知道甚至有迹象表明它是在创建后动态创建的。它与任何其他PS数据集没有什么不同。
如果已编目:
//SOMENAME DD DISP=SHR,DSN=LOG.DYYMMDD.THHMMSS.OUT
如果没有编目,请对其进行编目,然后参见上文。
如果在关闭时删除,请不要删除它,但要对其进行编目,然后参见上文。
注意:我假设您在一个JOB中创建数据集并在其他JOB中访问它。如果您在同一个JOB中访问它,请记下Bruce Martin的答案。在提交JOB时,您的数据集将从JOB的处置处理的正常评估中被“隐藏”,因为数据集仅在那个点之后创建,当JOB实际运行时(如果它变为公平地运行,它可能会立即失败并出现“JCL ERROR”,甚至没有接近运行。
就我个人而言,我会在不同的工作中这样做,但是有些人认为他们在不工作时会保持简单。