簡體   English   中英

Camunda:將Assignee設置為流程實例的所有UserTasks

[英]Camunda : Set Assignee to all UserTasks of the process instance

我有一個要求,我需要在創建實例后立即將受讓人設置為流程實例中的所有“用戶任務”,這基於設置為用戶任務的候選組。

我嘗試使用以下方法獲取用戶任務:

Collection<UserTask> userTasks = execution.getBpmnModelInstance().getModelElementsByType(UserTask.class);

這在某種程度上是正確的,但我無法設置受讓人的,而且,看起來這將適用於流程本身而不是流程實例。

其次,我嘗試從 taskQuery 獲取它,它只給我下一個任務,而不是進程中的所有用戶任務。

請幫忙 !!

它不是那樣工作的。 流程可以簡化為“令牌在 bpmn 圖中移動”……只有令牌的當前 position 是相關的。 所以很自然,任務列表只會給你當前的任務。 不是之后會發生什么......你不知道,因為如果你有一個根據任務結果以不同方式繼續的網關? 所以放棄使用 BPMN 元 model。 專注於運行時。

您有兩種選擇來動態分配用戶任務:

1.) 在建模器中,不要將任務硬分配給“a-user”,而是使用像${taskAssignment.assignTask(task)}這樣的表達式,其中“taskAssignment”是一個提供返回用戶的 String 方法的 bean . 2.)在“創建”任務中添加一個taskListener,並在監聽器中設置受讓人。

對於選項 2,您可以使用 camunda spring 引導事件(或(過時的)camunda-bpm-reactor 擴展)來注冊一個中央組件,而不是為每個任務添加一個偵聽器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM