【问题标题】:How to pre-assign assignee to tasks of a process instance in activiti如何在activiti中将受理人预先分配给流程实例的任务
【发布时间】:2017-11-20 16:23:20
【问题描述】:

我需要将受让人动态设置为从流程定义 ID 创建的流程实例的任务。所以,我从 UI 端获取我的受让人值并提交审批工作流。现在我将启动流程并分配那些受让人到各自的任务。问题是我在流程开始时只得到一个任务,因为 activiti 只提供当前任务/活动任务。由于我没有得到任务列表的其余部分,我无法将受让人设置为这些任务。 我还必须从流程实例中为受让人找到待处理的任务和已完成的任务,因为有我可以使用的任务查询,但由于我无法为所有任务设置受让人,这个查询似乎对我没有多大帮助. 那么如何获取流程实例下的所有任务并将受让人设置为每个用户任务,然后在需要时使用流程实例和任务查询完成用户任务。

以下是我的工作流程

Workflow describing above scenario

【问题讨论】:

    标签: workflow activiti bpmn camunda


    【解决方案1】:

    要充分利用流程引擎的全部功能,您不会在流程启动时传递运行时信息,而是在运行时动态确定受让人,方法是在“create”事件上使用 taskListener。

    但如果你必须坚持你的方法:将受让人放在带有 taskDefinitionKey 的地图中 作为键并将该映射作为流程变量传递给流程实例。

    之后,在您的 Bpmn 模型中,在分配的字段中使用“${taskDefintionKey}”(taskdefkey 当然是您的用户任务的 Id)。

    【讨论】:

    • 我正在启动流程为 =>ProcessInstance processInstance = runtimeService .startProcessInstanceById("processDefinitionId","variable with assignee info");带有assignee的变量将用于分配每个用户的任务。如何我改进这个?此外,如果受让人不存在(在开始流程时分配,但在达到用户任务时分配的用户由于业务逻辑错误而缺席,例如休假)来完成用户任务我应该如何通过将其分配给下一个可用用户来处理它!我应该使用声明任务吗?或者对于这个用例是否有最佳实践
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-28
    • 2021-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多