计算最后一个工作日

Calculate Last Working Day

我正在尝试计算流程的最后一个工作日。通常,这将是昨天。但是,如果进程在星期一运行,它应该返回星期五的日期。

我的计算是:

Today()-MakeTimeSpan(1, 0, 0, 0)

当前代码阶段

过去,我已经能够通过使用一个专用的 Utilities 对象和一个仅是单个代码阶段的操作来完成此操作。该操作有一个输出连接到代码阶段的一个输出。

out = DateTime.Now.AddDays(-1)
While out.DayOfWeek = DayOfWeek.Saturday Or out.DayOfWeek = DayOfWeek.Sunday
    out = out.AddDays(-1)
End While

这也让您能够添加复杂的逻辑来说明您所在地区的假期,而不会弄乱您的操作页面。

这方面的最佳实践是使用名为 "Calendars" 的 VBO,这是一个内置于 BluePrism 中的 VBO。

Object: Calendar
Action: Add working days
Calendar Name: "Working Week / No Holidays"
Date: Today()
Days -1

该解决方案的一个优点是您可以自定义日历以添加贵公司的所有银行假日。