flowable 啟動流程


package org.fh.controller.act;

import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;

import org.fh.controller.base.BaseController;
import org.flowable.common.engine.impl.identity.Authentication;
import org.flowable.engine.RuntimeService;
import org.flowable.engine.runtime.ProcessInstance;

/**
 * 說明:啟動流程用
 * 作者:FH Admin
 * from:fhadmin.cn
 */
public class AcStartController extends BaseController {
    
    @Autowired
    private RuntimeService runtimeService;         //與正在執行的流程實例和執行對象相關的Service(執行管理,包括啟動、推進、刪除流程實例等操作)
    
    /**通過KEY啟動流程實例(不帶變量)
     * @param processInstanceKey //流程定義的KEY
     * @return 返回流程實例ID
     */
    protected String startProcessInstanceByKey(String processInstanceKey){
        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processInstanceKey);            //用流程定義的KEY啟動,會自動選擇KEY相同的流程定義中最新版本的那個(KEY為模型中的流程唯一標識)
        return processInstance.getId();    //返回流程實例ID
    }
    
    /**通過KEY啟動流程實例(帶變量)
     * @param processInstanceKey 流程定義的KEY
     * @param map 存流程變量
     * @param USERNAME 流程發起人
     * @return 返回流程實例ID
     */
    protected String startProcessInstanceByKeyHasVariables(String processInstanceKey,Map<String,Object> map, String USERNAME){
        Authentication.setAuthenticatedUserId(USERNAME);//設置流程發起人
        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processInstanceKey, map);    //map存儲變量 用流程定義的KEY啟動,會自動選擇KEY相同的流程定義中最新版本的那個(KEY為模型中的流程唯一標識)
        Authentication.setAuthenticatedUserId(null);//這個方法最終使用一個ThreadLocal類型的變量進行存儲,也就是與當前的線程綁定,所以流程實例啟動完畢之后,需要設置為null,防止多線程的時候出問題。
        return processInstance.getId();    //返回流程實例ID
    }
    
    /**通過ID啟動流程實例
     * @param processInstanceId //流程定義的ID
     * @return 返回流程實例ID
     */
    protected String startProcessInstanceById(String processInstanceId){
        ProcessInstance processInstance = runtimeService.startProcessInstanceById(processInstanceId);            //用流程定義的ID啟動
        return processInstance.getId();    //返回流程實例ID
    }
   
}
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM