工作流jbpm基本的操作總結

JBPM學習筆記

RepositoryService:流程發佈相關

ExecutionService:流程實例相關

TaskService:任務相關

IdentityService:用戶、組相關

 

 

   /**

    * 0.各種節點說明:

    */

   1)狀態不停留(直接過去)

        <java />

        <fork /><join />

        <decision />

   2)狀態停留(需要人去執行、或者發信號)

        <task />

        <state />

 

   /**

    * 1.獲取任務、流程實例、流程定義列表信息

    */

   // 任務列表

   List<Task> tasks = JbpmUtil.getTaskService().findPersonalTasks(username);

   // 流程實例列表

   List<ProcessInstance> processInstances = JbpmUtil.getExecutionService().createProcessInstanceQuery().list();

   // 流程定義列表

   List<ProcessDefinition> processDefinitions = JbpmUtil.getRepositoryService().createProcessDefinitionQuery().list();

 

   /**

    * 2.啓動新的流程實例

    */

   // 根據流程定義ID,啓動一個新的流程實例

   JbpmUtil.getExecutionService().startProcessInstanceById(processDefinitionId);

 

   /**

    * 3.執行任務

    */

   // 執行任務,並傳遞所需的流程參數信息

   Map<String, Object> map = new HashMap<String, Object>();

   map.put("money", money);

   JbpmUtil.getTaskService().completeTask(taskId, "to mapp1", map);

 

   // 如果是一個<state>狀態節點,需要給它發信號,纔可以讓流程繼續向下走:

   JbpmUtil.getExecutionService().signalExecutionById(processInstanceId);

               

 

   /**

    * 4.顯示流程圖的狀態

    */

   // 根據流程實例ID,當前活動節點的名稱

   String currentName = JbpmUtil.getExecutionService().findProcessInstanceById(processInstanceId).findActiveActivityNames().iterator().next();

   // 根據流程定義ID,當前活動節點的座標

   ActivityCoordinates activityCoordinates = JbpmUtil.getRepositoryService().getActivityCoordinates(processDefinitionId, currentName);

   int x = activityCoordinates.getX();

   int y = activityCoordinates.getY();

   int width = activityCoordinates.getWidth();

   int height = activityCoordinates.getHeight();

  

   // jsp頁面上

   <IMG SRC="<%=path%>/loadImage?processDefinitionId=<s:property value='processDefinitionId'/>" BORDER="0"

        style="position: absolute; left: 0px; top: 0px;" ALT="流程圖像">

   <!-- DIV在活動節點上顯示紅色邊框 -->

   <div style="position: absolute; border: 2px red solid;

           left: <s:property value='x'/>px;

           top: <s:property value='y'/>px;

           width: <s:property value='width'/>px;

           height: <s:property value='height'/>px;">

   </div>

 

  

 

標籤: jbpm
發佈了13 篇原創文章 · 獲贊 8 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章