專注技術,奮斗不止

          程序員-小倪的個人博客

          2012年3月23日

          JBPM4服務詳解

          流程引擎ProcessEngine的構建方式:

          1. ProcessEngine pe = Configuration.getProcessEngine(); 
          2. ProcessEngine pe = new Configuration().buildProcessEngine(); 
          3. ProcessEngine pe = new Configuration().setResource("my.jbpm.cfg.xml").buildProcessEngine(); 

          流程引擎的服務接口:

          1. RepositoryService rs = pe.getRepositoryService(); 
          2. ExecutionService es = pe.getExectionService(); 
          3. TaskService ts = pe.getTaskService(); 
          4. HistoryService hs = pe.getHistoryService(); 
          5. ManagementService ms = pe.getManagementService(); 

          流程資源RepositoryService:包含了管理流程資源的所有方法.

          1)部署流程

          1. //通過classpath加載 
          2. rs.createDeployment().addResourceFromClasspath(path).deploy(); 
          3. //通過File類加載 
          4. rs.createDeployment().addResourceFromFile(file).deploy(); 
          5. //通過URL加載 
          6. rs.createDeployment().addResourceFromUrl(url).deploy(); 
          7. //通過ZIP文件流加載 
          8. rs.createDeployment().addResourceFromZipInputStream(zip).deploy(); 
          9. //通過字符串加載 
          10. rs.createDeployment().addResourceFromString(resourceName, string).deploy(); 

          2)刪除流程

          1. //刪除流程定義,如果該流程還存在活動的流程實例,將拋出異常 
          2. rs.deleteDeployment(deploymentId); 
          3. //級聯刪除所有該流程相關的內容 
          4. rs.deleteDeploymentCascade(deploymentId); 

          3)掛起/恢復流程

          1. //掛起流程后,發起新流程或更新實例數據都會拋出異常 
          2. rs.suspendDeployment(deploymentId); 
          3. //恢復流程 
          4. rs.resumeDeployment(deploymentId); 

          4)查詢流程定義信息

          1. ProcessDefinitionQuery pdq = rs.createProcessDefinitionQuery(); 
          2. List<ProcessDefinition> pdList = pdq.processDefinitionKey("xxx").list(); 

          5)獲取流程定義圖片

          1. //前提條件是圖片也發布到了數據庫中 
          2. rs.getResourceAsStream(deploymentId,"xxx.png"); 

          執行服務ExecutionService:主要用于維護流程實例,包含流程實例的查詢和流程變量的操作.

          1)啟動新的流程

          1. //指定KEY,默認最新版本 
          2. es.startProcessInstanceByKey("VMIN"); 
          3. //指定KEY-流程版本 
          4. es.startProcessInstanceById("VMIN-2"); 
          5. //指定流程實例ID 
          6. es.startProcessInstanceByKey("VMIN","CGD0008"); 
          7. //傳遞流程變量 
          8. Map map = new HashMap(); 
          9. es.startProcessInstanceByKey("VMIN", map); 

          2)執行等待的流程

          1. es.signalExecutionById(executeId); 

          任務服務TaskService

          1)任務列表訪問

          1. //查找指定用戶的任務列表 
          2. List<Task> list = ts.findPersonalTasks("marker"); 
          3. //查找指定組的任務列表 
          4. List<Task> list = ts.findGroupTasks("hr-group"); 

          2)讀取相關數據

          1. ts.getVariable(taskId, variableName); 
          2. ts.getVariables(taskId, variableNames); 
          3. ts.getVariableNames(taskId); 
          4. ts.getVariables(taskId, variables); 

          3)完成任務

          1. ts.completeTask(taskId); 
          2. ts.completeTask(taskId, variables); 
          3. ts.completeTask(taskId, outcome); 
          4. ts.completeTask(taskId, outcome, variables); 

          歷史服務HistoryService:查詢歷史流程實例

          1. hs.createHistoryProcessInstanceQuery().processDefinitionId(pdId).orderAsc(HistoryProcessInstanceQuery.PROPERTY_STARTTIME).list(); 

          管理服務ManagementServcie:管理Job

          1. Job job = ms.createJobQuery().processInstanceId(processInstanceId).uniqueResult(); 
          2. ms.executeJob(job.getId); 

          posted @ 2012-03-23 13:28 ProgramerNi 閱讀(267) | 評論 (0)編輯 收藏

          僅列出標題  
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          主站蜘蛛池模板: 新干县| 灵寿县| 宿州市| 新乡市| 新泰市| 江华| 鞍山市| 贵州省| 卢湾区| 崇义县| 临沂市| 石狮市| 孟津县| 渝北区| 博罗县| 汕尾市| 郸城县| 扬州市| 平湖市| 景宁| 平乐县| 孙吴县| 白银市| 彭水| 祁东县| 山阴县| 信宜市| 定兴县| 从江县| 通州市| 广东省| 永登县| 保德县| 永川市| 东乡族自治县| 新营市| 通化市| 滨海县| 鲁山县| 株洲市| 惠州市|