給flowable任務表(ACT_RUN_TASK)設置內容(值)

簡述:在項目開發中,通常我們會需要給任務運行表設置內容(值),因爲默認啓動任務或完成任務的操作時有些值爲空,但我們需要給我們的字段設置值,比如脫離表單關聯,我想給form_keys設置值,我們可以通過以下幾種方式:

1、常用情況:流程啓動時,我們就需要設置對應的表單key,則我們可以通過以下方式:

List<Task> taskList= taskService.createTaskQuery().processInstanceId(processInstance.getId()).list();
                        for (Task task:taskList) {
                            task.setFormKey((String) map.get("id"));
                            taskService.saveTask(task);
                        }

以上方式爲通過流程啓動後的操作(此處不再贅述流程啓動),通過taskService的saveTask方法,前提時把我們的task對象設置上對應的值,但是此處有個小弊端,每次調用saveTask方法後庫表裏面的REV_ (版本號)會對應的➕1;

此時,你肯定會想問,那麼我不想讓他繼續➕1怎麼辦,那請繼續閱讀下文;

2、通過任務監聽器設置(TaskListener),直接上代碼:

 @Override
    public void notify(DelegateTask delegateTask) {

        // 在這裏執行自定義身份查詢
        delegateTask.setAssignee(shiroUserDo.getId().toString());
        delegateTask.setFormKey((String) delegateTask.getVariable("_formkey"));
    }

上面的_formkey是通過啓動流程時傳過去的變量;

3、還有種方式,你當然可能也知道啦,但是還的寫出來是吧,手動滑稽...

同樣直接上代碼;

task.setFormKey((String) map.get("id"));
taskService.complete(taskid, variablies);

以上呢是通過complete方法設置,但是這個一般很少用,這個方法是在完成任務時才使用的,所以慎用啦。。

以上,over!

以上方式,僅爲個人觀點,若各位大佬有更好的方式,還望不吝賜教...

發佈了49 篇原創文章 · 獲贊 23 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章