对此的最佳解决方案是使用作业调度程序的功能。说了这么多……
Here 是 EZACFSM1 的更新参考。 OS/390 2.10 已经十多年没有更新了。
但是,您不能只使用此实用程序来创建名称中包含日期/时间信息的数据集。 EZACFSM1 简单地从 SYSIN 读取并写入 SYSOUT,解释它读取的系统符号。
您可以使用 EZACFSM1 为 IDCAMS 编写 ALTER 语句,将静态命名的数据集(其中没有年份和月份的数据集)重命名为具有这些属性的数据集。它确实需要两个额外的步骤和一个警告。
//CATLG EXEC PGM=IEFBR14
//DD01 DD DISP=(NEW,CATLG),
// DSN=STUFF,
// AVGREC=U,
// LRECL=80,
// RECFM=FB,
// SPACE=(80,(1000,100))
//*
//MKALTER EXEC PGM=EZACFSM1
//SYSOUT DD DISP=(NEW,PASS),
// AVGREC=U,
// LRECL=80,
// RECFM=FB,
// SPACE=(80,(1000,100))
//SYSIN DD *
ALTER STUFF NEWNAME(STUFF.Y&YR4&MON)
//*
//RENAME EXEC PGM=IDCAMS
//SYSIN DD DISP=(OLD,PASS),DSN=*.MKALTER.SYSOUT
//SYSPRINT DD SYSOUT=*
//*
警告与作业调度有关。假设您的工作在该月的最后一天运行得很晚。如果它在输入队列中的时间足够长,它将在下个月的第一天运行,从而使 ALTER 不正确。