天天看點

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();//傳回總記錄