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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Activiti 接收任务活动

發布時間:2024/1/17 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Activiti 接收任务活动 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  流程中往往需要特定人接受任務并進行一定操作才能繼續進行下去。

  代碼如下

import java.io.InputStream;import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngines; import org.activiti.engine.repository.Deployment; import org.activiti.engine.runtime.Execution; import org.activiti.engine.runtime.ProcessInstance; import org.junit.Test;public class ReceiveTaskTest {ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();/**部署流程定義(從inputStream)*/@Testpublic void deploymentProcessDefinition_inputStream(){InputStream inputStreamBpmn = this.getClass().getResourceAsStream("receiveTask.bpmn");InputStream inputStreamPng = this.getClass().getResourceAsStream("receiveTask.png");Deployment deployment = processEngine.getRepositoryService()//與流程定義和部署對象相關的Service.createDeployment()//創建一個部署對象.name("接收活動任務")//添加部署的名稱.addInputStream("receiveTask.bpmn", inputStreamBpmn)// .addInputStream("receiveTask.png", inputStreamPng)// .deploy();//完成部署System.out.println("部署ID:"+deployment.getId());// System.out.println("部署名稱:"+deployment.getName());// }/**啟動流程實例+設置流程變量+獲取流程變量+向后執行一步*/@Testpublic void startProcessInstance(){//流程定義的keyString processDefinitionKey = "receiveTask";ProcessInstance pi = processEngine.getRuntimeService()//與正在執行的流程實例和執行對象相關的Service.startProcessInstanceByKey(processDefinitionKey);//使用流程定義的key啟動流程實例,key對應helloworld.bpmn文件中id的屬性值,使用key值啟動,默認是按照最新版本的流程定義啟動System.out.println("流程實例ID:"+pi.getId());//流程實例ID 101System.out.println("流程定義ID:"+pi.getProcessDefinitionId());//流程定義ID helloworld:1:4/**查詢執行對象ID*/Execution execution1 = processEngine.getRuntimeService()// .createExecutionQuery()//創建執行對象查詢.processInstanceId(pi.getId())//使用流程實例ID查詢.activityId("receivetask1")//當前活動的id,對應receiveTask.bpmn文件中的活動節點id的屬性值 .singleResult();/**使用流程變量設置當日銷售額**/processEngine.getRuntimeService().setVariable(execution1.getId(), "匯總當日銷售額", 21000);/**向后執行一步,如果流程處于等待狀態,使得流程繼續執行*/processEngine.getRuntimeService().signal(execution1.getId());/**查詢執行對象ID*/Execution execution2 = processEngine.getRuntimeService()// .createExecutionQuery()//創建執行對象查詢.processInstanceId(pi.getId())//使用流程實例ID查詢.activityId("receivetask2")//當前活動的id,對應receiveTask.bpmn文件中的活動節點id的屬性值 .singleResult();/**從流程變量中獲取匯總當日銷售額的值*/Integer value = (Integer)processEngine.getRuntimeService()// .getVariable(execution2.getId(), "匯總當日銷售額");System.out.println("給老板發送短信:金額是:"+value);/**向后執行一步,如果流程處于等待狀態,使得流程繼續執行*/processEngine.getRuntimeService().signal(execution2.getId());}}

  由于沒有任務id,因此只能由流程進行操作,所以使用getRuntimeService()方法。先由流程實例編號查詢流程1,并進行匯總銷售操作然后進行到下一個流程。同樣,由流程實例編號查詢流程2,匯報給老板并進行到下一步完成整個流程

?

  bpnm文件如下

  

<?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:activiti="http://activiti.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.activiti.org/test"><process id="receiveTask" name="receiveTaskProcess" isExecutable="true"><startEvent id="startevent1" name="Start"></startEvent><receiveTask id="receivetask1" name="匯總當日銷售額"></receiveTask><receiveTask id="receivetask2" name="給老板發送信息"></receiveTask><endEvent id="endevent1" name="End"></endEvent><sequenceFlow id="flow1" sourceRef="receivetask2" targetRef="endevent1"></sequenceFlow><sequenceFlow id="flow2" sourceRef="startevent1" targetRef="receivetask1"></sequenceFlow><sequenceFlow id="flow3" sourceRef="receivetask1" targetRef="receivetask2"></sequenceFlow></process><bpmndi:BPMNDiagram id="BPMNDiagram_receiveTask"><bpmndi:BPMNPlane bpmnElement="receiveTask" id="BPMNPlane_receiveTask"><bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1"><omgdc:Bounds height="35.0" width="35.0" x="360.0" y="20.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="receivetask1" id="BPMNShape_receivetask1"><omgdc:Bounds height="55.0" width="105.0" x="325.0" y="120.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="receivetask2" id="BPMNShape_receivetask2"><omgdc:Bounds height="55.0" width="105.0" x="325.0" y="250.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1"><omgdc:Bounds height="35.0" width="35.0" x="360.0" y="360.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1"><omgdi:waypoint x="377.0" y="305.0"></omgdi:waypoint><omgdi:waypoint x="377.0" y="360.0"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2"><omgdi:waypoint x="377.0" y="55.0"></omgdi:waypoint><omgdi:waypoint x="377.0" y="120.0"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3"><omgdi:waypoint x="377.0" y="175.0"></omgdi:waypoint><omgdi:waypoint x="377.0" y="250.0"></omgdi:waypoint></bpmndi:BPMNEdge></bpmndi:BPMNPlane></bpmndi:BPMNDiagram> </definitions>

?

轉載于:https://www.cnblogs.com/icysnow/p/4731506.html

總結

以上是生活随笔為你收集整理的Activiti 接收任务活动的全部內容,希望文章能夠幫你解決所遇到的問題。

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