Process BPM人工任务调度

Process BPM人工任务调度,process,task,bpmn,camunda,business-process-management,Process,Task,Bpmn,Camunda,Business Process Management,我们使用Camunda来运行业务流程,但我的问题更多地是关于一般BPM模式,而不是实现它的特定工具 让我们假设以下非常简单的用例和一个自制的应用程序,它使用BPM引擎API查询任务并完成任务。 假设动作1将自动分配给John,动作2将自动分配给Bob。根据我对BPM的理解,当流程开始时,将创建操作1并将其分配给John。当John完成动作1时,将创建动作2并将其分配给Bob。这就是我们想要的,因为如果操作1尚未完成,Bob无法开始操作2。好的 现在假设作为团队经理,我想安排John和Bob的活

我们使用Camunda来运行业务流程,但我的问题更多地是关于一般BPM模式,而不是实现它的特定工具

让我们假设以下非常简单的用例和一个自制的应用程序,它使用BPM引擎API查询任务并完成任务。

假设动作1将自动分配给John,动作2将自动分配给Bob。根据我对BPM的理解,当流程开始时,将创建操作1并将其分配给John。当John完成动作1时,将创建动作2并将其分配给Bob。这就是我们想要的,因为如果操作1尚未完成,Bob无法开始操作2。好的

现在假设作为团队经理,我想安排John和Bob的活动。我正在考虑引入一个由我处理的初始任务来配置计划

当流程现在开始时,将创建一个新任务并分配给我。我希望在我自制的应用程序中查询BPM引擎,以便获取所有任务(活动和非活动),以便添加计划信息(计划开始日期和截止日期)。例如,我想指定:

  • 行动1应于2021年1月1日开始,并于2020年1月3日结束
  • 行动2应于2021年1月4日开始,并于2020年1月5日结束
有了这类信息,John和Bob可以连接到任务列表,并看到“尚未启动”的任务正在特定的时间范围内等待他们。其主要目标是管理团队活动日历

我不知道如何在BPM中实现这一点,因为据我理解,任务是在流程到达时创建的,因此我们无法获得有关“尚未启动”任务的信息

有什么想法吗?建议?最佳实践


Tx

要同时激活John和Bob的任务,可以使用并行网关。。。然后根据您所做的配置筛选自定义任务列表中的任务


如果你想保持任务的顺序(这是更好的选项imho),你仍然可以预先在计划任务中设置变量,然后在第二个任务开始时通过在模型上注册来读取这些值。

我问了上面的一个问题,但是如果答案是“操作2仍然需要操作1,我不希望人们在开始日期之前看到任务。”然后模型将如下-


计时器将设置为经理选择的开始日期。我强烈认为,如果用户无法完成任务,则任务不应出现在列表中。因此,如果他们不应在开始日期之前完成任务,我们就不应将其出现在任务列表中。这与流程状态报告不同,后者当然无法显示我们要等到第X天才能发布行动1。还有一种方法可以对其进行建模,以便有人可以说“是的,你知道吗,我想现在就开始。”“并尽早从仪表板触发操作。

Tx对于您的回答,您描述的第一个解决方案是正确的,但我们缺少实现逻辑的BPM序列功能,作为团队经理,我必须知道,操作1必须在操作2之前执行。你能详细说明你的第二个选择吗?我不明白设置变量并在第二个任务启动时读取它们是什么意思。您可以注册挂钩,以便在到达第二个任务时执行代码(请参阅上面的TaskListener)。在这个钩子中,您可以根据前面设置的流程变量计算任务的调度信息。您的方法提出了以下问题——行动2能否在行动1完成之前开始用户能否在经理指定的开始日期之前开始操作?这些问题的答案将改变模型。实际上,在行动1完成之前,以及在经理为您的答案指定STX的开始日期之前,无法开始行动2。我同意这样一个事实,即Bob不应该在其任务列表上看到Action 2,但作为一名经理,我希望看到它计划它。实际上,我想要的可能是我的流程的甘特图,以安排所有任务。具体的策略将因您的BPM套件而异。我会像上面那样建模。一些套件将有一个经理报告,可以满足您的需要。对于其他人,您必须根据实例数据/查询创建自己的。关于如何获取此类信息的详细信息超出了BPMN规范(我认为即使任务列表也不在规范中)