在我的AS / 400上,我正在尝试在每个月的第一个工作日运行的作业调度程序(ADDJOBSCDE)上安排作业。放置SCDDATE(* MONTHSTR)是不够的,因为如果月份恰好在星期天开始,它将在星期日运行。
我正在考虑将参数设置为RELDAYMON(1)FRQ(* MONTHLY)SCDDAY(* MON,* TUE,* WED,* THU,* FRI),但这是在第一个工作日执行,还是执行5一个月,第一个星期一,星期二,星期三等?
感谢您的帮助!
答案 0 :(得分:3)
据我了解,但不是凭经验,任务可能最好用所建议的内容来实施;即ADDJOBSCDE FRQ(*MONTHLY) SCDDATE(*NONE) SCDDAY(*MON *TUE *WED *THU *FRI) RELDAYMON(1)
。但必然与更改一起,即调用的程序将检查业务日历,测试当前日期是否为营业日,如果是,则继续每月处理,否则返回/退出而无需进一步处理;根据设计/实施情况,根据设计/实施,记录程序确定计划日期的准确日期并不准确,以便对完成的工作进行审核,未完成成功开始和完成工作可以很容易理解。
另一个选项[我更喜欢的一个选项]是使用上面提到的相同的商业日历,从中生成下一年的每月作业预定条目(JOBSCDE);即每个月提交的工作将在一个单独的条目中定义,每个条目都有一个特定的预定日期(SCDDATE),而不是使用频率(FRQ)。注意:由程序检测到的最后一个月可能会导致假定有效的请求,为即将到来的一年添加相同的作业;即期望日历已经有来自下一年的日期条目。
如果业务日历存储在TABLE中,则可以定义TRIGGER以响应于任何月份的任何一个工作日所定义的更改[或新数据];即,由该月的第一个工作日定义的业务规则是确保在JOBSCDE中添加或更新作业。虽然没有任何触发器,但是整年的工作可以从计划的日历安排,触发器允许改变情况;即,如果去年计划的业务日历因任何原因而改变,则根据更改的日历自动调整或添加定义所述作业的业务规则应该在该时间表上发生。