rpa - 如何在 Blue Prism 中查找/计算未来的时间表 - 后续行动
问题描述
我有一个关于如何在 Blue Prism 中计算未来时间表的问题。我发现这个线程非常有帮助,但是当我自己深入研究时,似乎有一个差距在文章中没有得到回答。
假设我有一个每周计划,即在周一至周三运行的日历的最后一个工作日每周运行一次。
Query 会返回一个周期 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
该值用于确定第一/最后/第二/第三/第四/第五的值。如果计划不是每周或每月计划,或者您的每月/每周计划不使用需要选择这些值之一的触发器,则此列的值将为 0。
Not used = 0
Last = -1
First = 1
Second = 2
Third = 3
Fourth = 4
Fifth = 5
举个例子,一个查询返回一个周期1,周期单位3,开始和结束日期,开始和结束点分别是0和86399,一个dayset是28对应Mon-Wed(由于日历), nthofmonth 为 -1 将对应于在所选日历的最后一个工作日运行的每周计划(每周三)。
如果 nthofmonth 值为 1,则它将是每周一。
另一个示例,在每月的第 3 个星期二运行的日历将对应于周期 1、周期单位 4、起点和终点分别为 0 和 86399、日期集 4 和 nthofmonth 3。
推荐阅读
- nullpointerexception - 在列表文件方法中获取空指针异常?
- angular - 错误类型错误:data.sort 不是函数
- angular - 如何在 Angular 6 中与两个不同的延迟加载模块共享单例服务,而不在 AppModule 提供程序中提供它?
- pyqt5 - 将使用 PyQt5 的 Python 应用程序转换为 WebAssembly
- php - 表单请求验证不起作用。它只是在邮递员中加载主页
- javascript - 如何在 reactjs 中添加路由器链接
- java - 有没有办法根据不同的调用者为一个 hystrix 命令设置不同的配置?
- android - 具有 2 列和固定图像高度的 StaggeredGridLayout 管理器
- python - 如何正确设置 cron?
- android - Andriod 10 如何检查文件是否存在