启动流程
JbpmConfiguration
JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext();
GraphSession graphSession = jbpmContext.getGraphSession();
ProcessDefinition processDefinition = graphSession.findLatestProcessDefinition(processName);
ProcessInstance processInstance = new ProcessInstance(processDefinition);
ContextInstance contextInstance = processInstance.getContextInstance();
TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
TaskInstance taskInstance = taskMgmtInstance.createStartTaskInstance();
jbpmContext.save(processInstance);
查询
taskInstance = jbpmContext.getTaskInstance(taskInstanceId);
processInstance = taskInstance.getProcessInstance();
分配(转发,申请)等都是查询后的修改流程操作员动作
1、TaskInstance taskInstance = jbpmContext.getTaskInstanceForUpdate(taskId),首先找到TaskInstance
2、taskInstance.getActorId()为当前操作员
3、String processName = taskInstance.getProcessInstance().getProcessDefinition().getName();得到流程名称
一个流程定义(ProcessDefinition)有一个TaskMgmtDefinition;一个TaskMgmtDefinition对应多个Actor,同时对应多个Task;
一个Actor有多个Task,可以从TaskMgmtDefinition中通过task的名称直接获取相应的task;
一个流程实例(ProcessInstance)有一个TaskMgmtInstance;一个TaskMgmtInstance对应多个actorInstance,同时对应多个taskInstance;
一个actorInstance有多个taskInstance,可以从TaskMgmtInstance中直接获取相应的taskInstance;