我需要在本月的第一个工作日运行一份工作,其中包含月底关闭(上个月)的会计数据,以用于某些年终工作。我希望每个月都运行相同的作业,无需操作员干预,并且在数据集名称中包含结束月份和年份,以便轻松识别数据集的结束时间段。当前运行 8 个单独的作业来完成此任务。请提供具体的 JCL 样本。
问问题
3555 次
2 回答
1
目前尚不清楚为什么要运行 8 个单独的作业来完成此任务,每个作业的作用是什么?
您是否使用任何调度程序在特定时间运行作业?
您可以使用 EZACFSM1 使用系统符号参数将日期/时间信息添加到数据集名称。
http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/IEA1E241/2.2.2
于 2012-11-08T21:34:17.993 回答
0
最好的解决方案是使用作业调度程序的功能。话说回来...
这是 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 不正确。
于 2012-11-09T18:58:25.457 回答