(一):工作流服務(wù)引擎ProcessEngine
import java.util.List;
import org.jbpm.api.*;
public class testJbpm {
public void test(){
//啟動(dòng)工作流服務(wù)引擎 初始化ProcessEngine 會(huì )自動(dòng)讀取jbpm.cfg.xml
ProcessEngine proessEngine = Configuration.getProcessEngine();
//流 程 管理 對象:RepositoryService
RepositoryService rs = proessEngine.getRepositoryService();
//rs 作用1:發(fā)布qh_jbpm.jpdl.xml工作流
String id = rs.createDeployment().addResourceFromClasspath("qh_jbpm.jpdl.xml").deploy();
//rs 作用2:查找流程定義列表
List <ProcessDefinition> dfList = rs.createProcessDefinitionQuery().list();
//rs 作用3:刪除流程定義
rs.deleteDeploymentCascade(id);
//流程實(shí)例管理ExecutionService類(lèi)
ExecutionService es = proessEngine.getExecutionService();
//獲得流和程實(shí)例
ProcessInstance pi = es.startProcessInstanceByKey("qh_jbpm");
//將流程 實(shí)例執行下一步
es.signalExecutionById(pi.getId());
//將流程實(shí)例不再執行強行終止
es.endProcessInstance(pi.getId(), "終止理由");
//將流程 實(shí)例刪除
es.deleteProcessInstanceCascade(pi.getId());
//查看流程 下的實(shí)例集合
List <ProcessInstance> piList = es.createProcessInstanceQuery().list();
}
}
(二):JbpmConfiguration:
用他來(lái)創(chuàng )建一個(gè)類(lèi)似于hibernate當中的session一樣的
1.導入jbpm數據庫表JbpmConfiguration.getInstance().createSchema();
2.jbpmConfiguration對象的創(chuàng )建
static JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
(三)JbpmContext:jbpm已經(jīng)把session對象封裝到JbpmContext對象里面。他是我們對數據庫所有的操作的一個(gè)接口。
JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
然后部署的操作已經(jīng)由jbpmContext給我們創(chuàng )建好了,我們只需要調一下他的一個(gè)方法就可以了。
jbpmContext.deployProcessDefinition(processDefinition);
jbpmContext.close();
(四)流程啟動(dòng)時(shí)對應的數據庫數據:
1、各種服務(wù)
ProcessEngine processEngine = Configuration.getProcessEngine();
RepositoryService repositoryService = processEngine.getRepositoryService();
ExecutionService executionService = processEngine.getExecutionService();
2、各種列表
TaskService taskService = processEngine.getTaskService();
定義流程列表
List<ProcessDefinition> pdList = repositoryService.createProcessDefinitionQuery().list();
流程實(shí)例列表
List<ProcessInstance> piList = executionService.createProcessInstanceQuery().list();
用戶(hù)所屬用戶(hù)組任務(wù)列表
List<Task> groupTaskList = taskService.findGroupTasks(username);
用戶(hù)所屬列表
List<Task> taskList = taskService.findPersonalTasks(username);
3、啟動(dòng)刪除
刪除:
ProcessEngine processEngine = Configuration.getProcessEngine();
RepositoryService repositoryService = processEngine.getRepositoryService();
repositoryService.deleteDeploymentCascade(ProcessDefinition.getDeploymentId());
ProcessDefinition.getDeploymentId()==select DBID_ from jbpm4_deployment
啟動(dòng)
ExecutionService executionService = processEngine
.getExecutionService();
executionService.startProcessInstanceById(ProcessDefinition.getId(),map);
ProcessDefinition.getId()==select t.stringval_ from jbpm4_deployprop t
ProcessDefinition.getId()==select t.stringval_ from jbpm4_deployprop t where t.deployment_=30010(==select DBID_ from jbpm4_deployment) and t.key_='pdid'