BPMN2 计时器事件延迟后如何重复?

BPMN2 timer events how to repeat after a delay?

提问人:WestFarmer 提问时间:11/14/2023 更新时间:11/20/2023 访问量:28

问:

我是 BPMN 和 camunda 的新手。如何实现这一点: 我有一个用户任务,我想设置一个超时,假设 3 天。 如果用户在 3 天内没有完成任务,我每小时都会发送一条短信提醒用户。enter image description here我尝试使用边界计时器事件来模拟超时,但未能将 SMS 通知任务重复 1 小时,因为中间计时器捕获事件只能有持续时间,而不能有周期。 请帮忙...

请注意,SMS 任务需要在 3 天超时后开始。

我正在使用 camunda 桌面建模器 5.16.0

卡蒙达 BPMN

评论


答:

0赞 tueftla 11/20/2023 #1

我会以这种方式解决这个问题(我这么说是因为我也是 bpmn 的新手)

Approve Process

让我们仔细看看流程图

  • 用户应该批准一项任务,并且他有三天的时间完成
  • 在未完成任务的三天后,将打开备用路径(条件:批准> 3 天)
  • 现在发送第一条短信作为提醒
  • 然后我们再次转到批准任务(但在替代路径中)
  • 当批准未在一小时内完成时(条件:等待 1 小时)
  • 我们返回到任务 SMS notify 的链接事件
    • 这是一个循环
  • 经过一些循环(条件 SMS > 10)后,将打开第二条备用路径来升级此批准
    • 对于没有无限循环也很重要

评论

0赞 WestFarmer 11/20/2023
看看我自己的答案,如果你不同意,请发表评论。
0赞 WestFarmer 11/20/2023 #2

边界计时器事件的计时器表达式可以是:

"R3/" + substring(string(now() + duration("P3D")),1,19) + "Z/PT1H"

这意味着:从 3 天后开始,每 1 小时重复一次,最多 3 次。

注意:这可能是特定于 Camunda 的,可能不适用于其他 BPMN 实现。