如何解决如何在 Blue Prism 中查找/计算未来的时间表 - 跟进
我有一个关于如何在 Blue Prism 中计算未来时间表的问题。我发现 this thread 非常有帮助,但当我自己深入研究时,似乎文章中没有回答一个空白。
假设我有一个每周计划,即在周一至周三运行的日历的最后一个工作日每周运行一次。
查询会返回周期1,周期单位3,开始和结束日期,开始和结束点分别是0和86399,dayset是28对应Mon-Wed(由于日历) .
我的问题是,从这些点我怎么知道我应该只在最后一个工作日(周三)跑步,而不是在周一或周二跑步?通常我可以使用开始日期并添加周数直到我到达当前周,但在这种情况下,开始日期是星期一,但由于指定了最后一个工作日,它只会在星期三开始计划。是否还有其他数据丢失,或者我是否必须避免创建这样的计划?
解决方法
为了确定具有以下触发器的每周和每月计划(不适用于其他计划类型):
- 日历中的第一个/最后一个工作日
- 每月的第一/最后/第二/第三/第四/第五插入星期几
必须附加来自链接文章的 SQL 查询以添加列“nthofmonth”
SELECT bpaschedule.name,period,unittype AS periodunit,startdate,enddate,startpoint,endpoint,COALESCE(workingweek,dayset) AS dayset,nthofmonth
FROM bpascheduletrigger
LEFT JOIN bpaschedule ON ( bpascheduletrigger.scheduleid = bpaschedule.id )
LEFT JOIN bpacalendar ON bpacalendar.id = calendarid
WHERE retired = 0
AND bpaschedule.NAME IS NOT NULL
AND ( enddate > Getdate() OR enddate IS NULL )
AND ( ( unittype = 0 AND startdate > Getdate() ) OR unittype != 0 )
ORDER BY scheduleid
该值用于确定first/last/second/third/fourth/fifth的值。如果计划不是每周或每月计划,或者您的每月/每周计划不使用需要选择这些值之一的触发器,则此列的值将为 0。
Not used = 0
Last = -1
First = 1
Second = 2
Third = 3
Fourth = 4
Fifth = 5
例如,一个查询返回周期为 1,周期单位为 3,开始和结束日期,开始和结束点分别是 0 和 86399,一个 dayset 是 28 对应于 Mon-Wed(由于Calendar),nthofmonth 为 -1 将对应于在所选日历的最后一个工作日(每周三)运行的每周计划。
如果 nthofmonth 的值为 1,则在星期一为 Weekly。
另一个例子,每月第三个星期二运行的日历对应于周期 1,周期单位为 4,起点和终点分别为 0 和 86399,日期集为 4,nthofmonth 为 3。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。