簡體   English   中英

如何在運行時更改 Activiti serviceTask delegateExpression 的值?

[英]How can I change Activiti serviceTask delegateExpression's value in runtime?

它發生了多次,我更改了 calss 名稱,它在 bpmn 圖中作為 serviceTask 的 delegateExpression 值,然后尚未完成的舊流程出現錯誤,因為它找不到 class 它在 delegateExpression 中。

我只是好奇我是否可以在 Activiti 的運行時更改 delegateExpression 的值? 例如,我給一個方法兩個參數:oldName 和newName,該方法在所有正在運行的進程中更改delegateExpression 的值。 那我重構一個用過的class就不是問題了。

我閱讀了Activiti 用戶指南,在第 3.7 章中,數據庫中有 ACT_RE_... 表,ACT_RE_PROCDEF 存儲了流程使用的 bpmn 圖,但我無法更改它,因為它需要重建應用程序才能使更改發生. 我認為這不是解決這個問題的正確方法。

您的問題主要是關於 Activiti,但我看到一個 flowable 標簽,所以這里是您如何在運行時以編程方式在flowable中更改舊實例的定義值

Flowable 提供了一個DynamicBpmnService ,可用於更改部分流程定義而無需重新部署。

這是一個示例代碼片段,可讓您執行相同的操作。

dynamicBpmnService.changeServiceTaskDelegateExpression("id","newExpression");

其中 id 是 definitionId。 您可以在此處找到參考資料:

https://www.flowable.com/open-source/docs/bpmn/ch04-API/#the-process-engine-api-and-services

https://www.flowable.com/open-source/docs/javadocs/org/flowable/engine/DynamicBpmnService.html

暫無
暫無

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

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