JBPM4的常用方法
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();//返回总记录