簡述:在項目開發中,通常我們會需要給任務運行表設置內容(值),因爲默認啓動任務或完成任務的操作時有些值爲空,但我們需要給我們的字段設置值,比如脫離表單關聯,我想給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!
以上方式,僅爲個人觀點,若各位大佬有更好的方式,還望不吝賜教...