我们如何使用JCL在PS文件名限定符中获取当前日期?
示例输出文件名:Z000417.BCV.TEST.D120713(YYMMDD格式)。
答案 0 :(得分:4)
这可以做到,但不一定是直截了当的。直截了当的方式是在JCL中使用system symbol。不幸的是this only works for batch jobs if it has been enabled for the job class更新版本的z / OS。
在z / OS v2之前,IBM声明这不起作用的原因是您的工作可以在伦敦的机器上提交,JCL可以在悉尼的机器上解释,并且该工作实际上可以在在芝加哥的机器。数据集应该在哪个日期(或时间)?没有一个正确的答案,所以我们都为问题创建了我们自己的解决方案,其中包含了我们认为对我们组织正确的答案。
如果您能够在批处理作业JCL中使用系统符号,则可以使用a list of valid symbols。
实现目标的一种方法是使用作业调度工具。我熟悉Control-M,它使用所谓的“自动编辑变量”。这些是产品提供的特殊构造。 Control-M解决方案是将您的数据集名称编码为 Z000417.BCV.TEST.D %%大馆。
某些商店实施预定作业,在共享PDS中创建成员。该成员包含一系列标准JCL SET语句......
// SET YYMMDD=120713
// SET CCYYMMDD=20120713
// SET MMDDYY=071312
......等等。该成员每天在午夜创建一次,为此目的安排一份工作。该作业执行在该商店中编写的程序以创建这些SET语句。
另一个答案是您可以批量使用ISPF file tailoring来实现目标。这可行,因为日期将在提交作业之前在JCL中设置。虽然这样可行,但除非您已熟悉文件定制并在您的商店中批量执行ISPF,否则我不建议使用它。我认为通过本回复中概述的其他方式实现这一点非常简单。
您可以使用GDG而不是名称中包含日期的数据集。如果您正在寻找的是一个独特的名称,这就是GDG所取得的成就(除其他外)。
我想到的最后一个想法是使用不包含日期的名称创建数据集,然后使用Unix System Services脚本为{构造ALTER命令(指定NEWNAME参数) {3}},然后执行IDCAMS重命名数据集。
答案 1 :(得分:0)
JOBTRAC/CONTROL-M
计划程序加载作业,
以所需格式获取日期可能很容易。格式
可能是'OSYMD',它将被动态调度程序取代
在加载作业之前。它有许多格式可以满足需求。DFSORT &DATE commands
在上一步中创建SYSIN数据集。知道你是否需要语法,我更喜欢google和handson。