JCL为上个月的数据集名称

时间:2012-11-08 21:05:52

标签: jcl

我需要在本月的第一个工作日运行一份工作,其中包含月末结算(上个月)的会计数据,用于某些年末工作。我想每月运行相同的工作,没有操作员干预,并且在数据集名称中有关闭月份和年份,因此可以轻松识别数据集停止的结束时间。目前运行8个单独的作业来完成此任务。请提供具体的JCL样本。

2 个答案:

答案 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不正确。