TaskService的常用方法:
TaskService是一个接口,他的一个常用的实现类是TaskServiceImpl。它的常用的方法有:
(1): String saveTask(Task task);//Saves the given task to persistent storage,return the taskId
(2): Task getTask(String taskId);//根据taskId查找任务
(3): void assignTask(String taskId, String userId);//assigns this task to the given assignee
(4): void takeTask(String taskId, String userId);//当执行了改方法后,JBPM将会阻止组当中的其他成员再使用改任务,而反过来,如果想把据为己有的任务再放回组当中,则可以如下调用taskService.assignTask(taskId, null);
(5): void completeTask(String taskId);//完成一个任务
(6): void completeTask(String taskId, Map<String, ?> variables);//完成一个任务,并设置相应的流程变量
(7): void completeTask(String taskId, String outcome);//完成任务,并指定一个向外的流向
(8): void deleteTask(String taskId);//删除一个任务,但保留历史信息
(9): void deleteTaskCascade(String taskId);//删除一个任务,包括历史信息
(10): List<Participation> getTaskParticipations(String taskId);//返回一个任务的参与者集合
(11):TaskQuery createTaskQuery();//建立一个查询的任务
(12):List<Task> findPersonalTasks(String userId);
(13):List<Task> findGroupTasks(String userId);
(14):void setVariables(String taskId, Map<String, ?> variables);//设置任务变量,好像和Execution的变量是一样的
(15):Object getVariable(String taskId, String variableName);//获得流程变量
(16):Set<String> getVariableNames(String taskId);//的到所有的变量集合
(17):Set<String> getOutcomes(String taskId);
TaskQuery的常用方法;
TaskQuery是一个接口,包含了任务查询的常用方法:
(1):TaskQuery assignee(String userId);//通过指定的人查找任务
(2):TaskQuery unassigned();//返回未被指派的任务,即JBPM4_TASK表中ASSIGNEE_字段null
(3):TaskQuery candidate(String userId);
(4):TaskQuery executionId(String executionId);//通过指定的流程实例Id查找所有任务
(5):TaskQuery processInstanceId(String processInstanceId);
(6):TaskQuery processDefinitionId(String processDefinitionId);//查找一个流程定义底下的所有任务
(7):TaskQuery activityName(String activityName);//根据指定的流程节点查找该处的所有任务
(8):TaskQuery page(int firstResult, int maxResults);//分页查找任务
(9):TaskQuery orderAsc(String property);//排序方法,property是TaskQuery的成员
(10):TaskQuery orderDesc(String property);
(11):long count();//得到记录总数
(12):List<Task> list();//返回任务集合
(13):Task uniqueResult();
ExecutionService的常用方法:
ExecutionService是一个接口,包含了流程实例方面的大量操作
(1):ProcessInstance startProcessInstanceById(String processDefinitionId);//通过流程定义Id开启一个新的流程实例
(2):ProcessInstance startProcessInstanceById(String processDefinitionId, Map<String, ?> variables);//开启一个流程实例,Map集合是设置流程变量之用,和taskService.setVariables(String executionId, Map<String, ?> variables)的效果一致。ExecutionService中还包含很多开启流程的方法,但常用的基本就这两个
(3):Execution findExecutionById(String executionId);
(4):ProcessInstance findProcessInstanceById(String processInstanceId);
(5):ProcessInstanceQuery createProcessInstanceQuery();//创建一个流程实例的查询方法
(6):void setVariable(String executionId, String name, Object value);//设置一个全局的变量,即流程变量
(7):void setVariables(String executionId, Map<String, ?> variables);
(8):Object getVariable(String executionId, String variableName);//根据流程Id得到一个流程变量
(9):void endProcessInstance(String processInstanceId, String state);
(10):void deleteProcessInstance(String processInstanceId);//删除一个流程实例,但保留历史
(11):void deleteProcessInstanceCascade(String processInstanceId);//删除一个流程实例,同时删除历史信息
ProcessInstanceQuery的常用方法
ProcessInstanceQuery是一个接口,包含了流程实例的查询操作
(1):ProcessInstanceQuery processDefinitionId(String processDefinitionId);//根据流程定义的ID查找所有的实例
(2):ProcessInstanceQuery processInstanceId(String processInstanceId);//根据流程实例的ID查找,返回接口肯定只有一个
(3):ProcessInstanceQuery orderAsc(String property);
(4):ProcessInstanceQuery orderDesc(String property);
(5):ProcessInstanceQuery page(int firstResult, int maxResults);//分页查询
(6):List<ProcessInstance> list();//返回记录的集合
(7):ProcessInstance uniqueResult();//返回唯一记录
(8):long count();//返回总记录