免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Activiti流程變量

流程變量在整個(gè)工作流中扮演很重要的作用

  例如:請(qǐng)假流程中有請(qǐng)假天數(shù)、請(qǐng)假原因等一些參數(shù)都為流程變量的范圍。流程變量的作用域范圍是流程實(shí)例。也就是說(shuō)各個(gè)流程實(shí)例的流程變量是不相互影響的。

添加流程變量

  1、在啟動(dòng)流程實(shí)例時(shí),可以添加流程變量。  

public void startProcess() throws Exception {        String processDefinitionKey ="varTest";        // 創(chuàng)建流程變量        Map<String,Object> variables = new HashMap<String,Object>();        variables.put("請(qǐng)假人", "馮小剛");        // 在啟動(dòng)時(shí)設(shè)置流程變量        ProcessInstance pi = processEngine.getRuntimeService().startProcessInstanceByKey(processDefinitionKey , variables );        System.out.println("pid:" + pi.getId());    }

說(shuō)明:

  1)     在啟動(dòng)流程實(shí)例時(shí),通過(guò)重載startProcessInstanceByKey的方法可以加載流程變量。

  2)     第二個(gè)參數(shù)要求是Map<String ,Object>類(lèi)型,意味著可以添加多個(gè)流程變量。

  3)     當(dāng)這段代碼執(zhí)行完以后,會(huì)在數(shù)據(jù)庫(kù)表act_ru_variable中添加兩行記錄。

 

  2、在辦理任務(wù)時(shí)

    在辦理任務(wù)時(shí),有時(shí)候任務(wù)辦理完成以后,要傳遞一些信息到系統(tǒng)中。這個(gè)時(shí)候可以利用TaskService這個(gè)類(lèi)來(lái)添加流程實(shí)例。

public void setVar() throws Exception {        String processInstanceId = "1901";        Task task =taskService.createTaskQuery().taskAssignee("manager").processInstanceId(processInstanceId ).singleResult();//        String taskId         /**         *  在辦理過(guò)程中設(shè)置流程變量         *///        taskService.setVariable(taskId, variableName, value)   // 設(shè)置一個(gè)流程變量        Map<String, Object> variables = new HashMap<>();//        variables.put("請(qǐng)假時(shí)間", "2013-11-22");//        variables.put("請(qǐng)假天數(shù)", "3");        variables.put("請(qǐng)假天數(shù)", 3);        taskService.setVariables(task.getId(), variables );        /**         * 在任務(wù)完成時(shí)設(shè)置流程變量         *///        taskService.complete(taskId)//        Map<String, Object> variables = new HashMap<>();//        variables.put("請(qǐng)假原因", "約會(huì)??!");//        taskService.complete(task.getId(), variables);            }

說(shuō)明:

  1)     利用setVariables方法在任務(wù)辦理過(guò)程中添加一批流程變量。

  2)     利用setVariable方法在任務(wù)辦理過(guò)程中添加一個(gè)流程變量。

  3)     TaskService有一個(gè)重載 complete方法

 

  3、執(zhí)行流程實(shí)例時(shí)直接在Execution上設(shè)置流程變量 

    因?yàn)榱鞒套兞康淖饔糜蚓褪橇鞒虒?shí)例,所以只要設(shè)置就行了,不用管在哪個(gè)階段

public void setVarByExecution() throws Exception {        String processInstanceId = "1901";        Task task =taskService.createTaskQuery().taskAssignee("manager").processInstanceId(processInstanceId ).singleResult();//        String taskId         /**         *  在辦理過(guò)程中設(shè)置流程變量         *///        taskService.setVariable(taskId, variableName, value)   // 設(shè)置一個(gè)流程變量        Map<String, Object> variables = new HashMap<>();        variables.put("批注", "好好約會(huì),注意安全!!");        runtimeService.setVariables(task.getExecutionId(), variables);        /**         * 在任務(wù)完成時(shí)設(shè)置流程變量         *///        taskService.complete(taskId)//        Map<String, Object> variables = new HashMap<>();//        variables.put("請(qǐng)假原因", "約會(huì)!!");//        taskService.complete(task.getId(), variables);            }

另一種設(shè)置變量的方法:

public void setVarByObj() throws Exception {        String processInstanceId = "1901";        Task task =taskService.createTaskQuery().taskAssignee("manager").processInstanceId(processInstanceId ).singleResult();        Form form = new Form();//這個(gè)javabean實(shí)現(xiàn)了Serializable接口
  
    form.setName("表單名稱(chēng)");
        form.setContent("我是張三,我要請(qǐng)假3天");        taskService.setVariable(task.getId(), "form", form);    }

 

獲取流程變量

  可以通過(guò)runTimeService的方法來(lái)獲取流程變量。

public void viewVar() throws Exception {        String processInstanceId = "1901";        Task task =taskService.createTaskQuery().taskAssignee("user").processInstanceId(processInstanceId ).singleResult();        System.out.println("taskName:" + task.getName());//        String variableName = "請(qǐng)假人";//        String val = (String)taskService.getVariable(task.getId(), variableName );        Map<String,Object> vars = taskService.getVariables(task.getId());        for (String variableName : vars.keySet()) {            String val = (String) vars.get(variableName);            System.out.println(variableName + " = " +val);        }    }

  說(shuō)明:這些流程變量是從act_ru_variable這個(gè)表中讀出來(lái)的。

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
jbpm - jPDL
史上最全的工作流引擎 Activiti 進(jìn)階學(xué)習(xí)教程(值得收藏)
BPMN2新規(guī)范與Activiti5
activiti 獲取當(dāng)前任務(wù)流程圖片的輸入流
Activiti工作流學(xué)習(xí)(三)Activiti工作流與spring集成
任務(wù)歷史查詢(xún)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服