我需要在本月的第一个工作日运行一份工作,其中包含月末结算(上个月)的会计数据,用于某些年末工作。我想每月运行相同的工作,没有操作员干预,并且在数据集名称中有关闭月份和年份,因此可以轻松识别数据集停止的结束时间。目前运行8个单独的作业来完成此任务。请提供具体的JCL样本。
答案 0 :(得分:1)
目前尚不清楚为什么要运行8个单独的工作来完成这项任务,每个工作做什么?
您是否使用任何计划程序在特定时间运行作业?
您可以使用EZACFSM1使用系统符号参数将日期/时间信息添加到数据集名称。
http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/IEA1E241/2.2.2
答案 1 :(得分:0)
最佳解决方案是使用作业调度程序的功能。说完了......
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不正确。