-1

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

4

2 回答 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 回答