日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第12篇:Flowable-BPMN操作流程之用户任务UserTask

發布時間:2024/9/27 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第12篇:Flowable-BPMN操作流程之用户任务UserTask 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

接上一篇:
第11篇:Flowable-BPMN部署常見問題沒有對ACT_RE_PROCDEF表進行插入>操作
https://blog.csdn.net/weixin_40816738/article/details/102902524

文章目錄

  • 一、定義
  • 二、常用配置
  • 三、參數賦值
  • 四、監聽類實現
  • 五、BPMN配置
  • 六、驗證
    • 6.1. 創建新流程
    • 6.2. 啟動新流程
    • 6.3. 監聽器結果

一、定義

流程啟動后,任務會給到指定的責任人,如果是需要人工審核的任務,那么就需要使用UserTask,也就是用戶任務,需要用戶完成審批,流程才能繼續往下走。

二、常用配置

  • 執行人 Assignments

  • 執行人類型:
    (1)Assignee:代理執行人,一般一個用戶
    (2)CandidateUser:候選執行人,一般有多個用戶
    (3)CandidateGroup:候選用戶組,一般綁定到角色,支持多個用戶進行操作。

modeler操作
modeler中配置如下圖所示:


進入后信息如下:

  • 任務監聽器Task Listeners

  • 監聽器類型:
    (1)create:任務創建時,并且所有的屬性都被設置好后,進入該回調。
    (2)assignment:任務被委派給某人后.。注意: 當流程執行到達一個userTask時,會先觸發一個assignment事件,再觸發create事件。
    (3)complete:在任務完成后,且被從運行時數據(runtime data)中刪除前觸發。
    (4)delete:在任務將要被刪除之前發生。注意,當任務通過completeTask完成任務時,它也會被執行。

監聽器class:
回調的委托類,需要實現 org.flowable.engine.delegate.TaskListener接口。

modeler操作:
配置頁面如下圖:

三、參數賦值

執行人:分配給admin
任務監聽配置為:create類型,實現類為com.gblfy.flowlistener.CommonUserStartListener.

四、監聽類實現

監聽類主要讀取一些環境信息,如執行人,當前的系統變量,修改系統變量等操作,具體代碼如下:

public class CommonUserStartListener implements TaskListener {/*** 日志類*/private static final Logger log = LoggerFactory.getLogger(CommonUserStartListener.class);@Overridepublic void notify(DelegateTask delegateTask) {log.warn("進入通用用戶任務啟動監聽器");//查詢信息log.info("任務執行人:"+delegateTask.getAssignee());log.info("任務配置ID: " +delegateTask.getTaskDefinitionKey());//查詢變量Set<String> setNames= delegateTask.getVariableNames();if (!CollectionUtils.isEmpty(setNames)){log.info("任務變量:"+setNames.toString());}for (String varName :setNames){Object varValue= delegateTask.getVariable(varName);log.info("變量名:"+varName+" 變量值:"+ JSON.toJSONString(varValue));}//修改變量delegateTask.setVariable("Test_Var","測試變量");log.warn("退出通用用戶任務啟動監聽器");} }

五、BPMN配置

修改后的我們的BPMN20的xml文件配置如下:

<?xml version="1.0" encoding="UTF-8"?> <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.flowable.org/processdef"><process id="test_bpmn" name="測試BPMN模型" isExecutable="true"><documentation>測試BPMN模型</documentation><startEvent id="start" name="開始"></startEvent><endEvent id="end" name="結束"></endEvent><userTask id="testUser" name="用戶任務測試" flowable:assignee="admin"><extensionElements><flowable:taskListener event="create" class="com.hyj.flowlistener.CommonUserStartListener"></flowable:taskListener><modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete></extensionElements></userTask><sequenceFlow id="sid-8D834F3C-45A8-4C88-9AD1-1AC426CC9002" sourceRef="start" targetRef="testUser"></sequenceFlow><sequenceFlow id="sid-AB59612A-1B33-4FB8-8758-5D773EDF9C44" sourceRef="testUser" targetRef="end"></sequenceFlow></process><bpmndi:BPMNDiagram id="BPMNDiagram_test_bpmn"><bpmndi:BPMNPlane bpmnElement="test_bpmn" id="BPMNPlane_test_bpmn"><bpmndi:BPMNShape bpmnElement="start" id="BPMNShape_start"><omgdc:Bounds height="30.0" width="30.0" x="210.0" y="60.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="end" id="BPMNShape_end"><omgdc:Bounds height="28.0" width="28.0" x="525.0" y="61.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="testUser" id="BPMNShape_testUser"><omgdc:Bounds height="80.0" width="100.0" x="315.0" y="35.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNEdge bpmnElement="sid-8D834F3C-45A8-4C88-9AD1-1AC426CC9002" id="BPMNEdge_sid-8D834F3C-45A8-4C88-9AD1-1AC426CC9002"><omgdi:waypoint x="239.94999779398907" y="75.0"></omgdi:waypoint><omgdi:waypoint x="315.0" y="75.0"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="sid-AB59612A-1B33-4FB8-8758-5D773EDF9C44" id="BPMNEdge_sid-AB59612A-1B33-4FB8-8758-5D773EDF9C44"><omgdi:waypoint x="414.9499999999903" y="75.0"></omgdi:waypoint><omgdi:waypoint x="525.0" y="75.0"></omgdi:waypoint></bpmndi:BPMNEdge></bpmndi:BPMNPlane></bpmndi:BPMNDiagram> </definitions>

六、驗證

6.1. 創建新流程

6.2. 啟動新流程

6.3. 監聽器結果

項目源碼地址:
https://gitlab.com/gb-heima/flowablestudy/tree/master/flowablelech12
碼云地址:https://gitee.com/gb_90/flowable-study/tree/master/flowablelech12

下一篇:
第13篇: Flowable-BPMN操作流程之流程進展查看之流程圖
https://blog.csdn.net/weixin_40816738/article/details/102902629

總結

以上是生活随笔為你收集整理的第12篇:Flowable-BPMN操作流程之用户任务UserTask的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。