主流流程引擎 flowable 啟動流程

dubaiupup發表於2022-01-11
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
	}
   
}

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31558068/viewspace-2850285


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70012648/viewspace-2851780/,如需轉載,請註明出處,否則將追究法律責任。

相關文章