專注技術(shù),奮斗不止

          程序員-小倪的個(gè)人博客

          JBPM4服務(wù)詳解

          流程引擎ProcessEngine的構(gòu)建方式:

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

          流程引擎的服務(wù)接口:

          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. //刪除流程定義,如果該流程還存在活動(dòng)的流程實(shí)例,將拋出異常 
          2. rs.deleteDeployment(deploymentId); 
          3. //級聯(lián)刪除所有該流程相關(guān)的內(nèi)容 
          4. rs.deleteDeploymentCascade(deploymentId); 

          3)掛起/恢復(fù)流程

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

          4)查詢流程定義信息

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

          5)獲取流程定義圖片

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

          執(zhí)行服務(wù)ExecutionService:主要用于維護(hù)流程實(shí)例,包含流程實(shí)例的查詢和流程變量的操作.

          1)啟動(dòng)新的流程

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

          2)執(zhí)行等待的流程

          1. es.signalExecutionById(executeId); 

          任務(wù)服務(wù)TaskService

          1)任務(wù)列表訪問

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

          2)讀取相關(guān)數(shù)據(jù)

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

          3)完成任務(wù)

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

          歷史服務(wù)HistoryService:查詢歷史流程實(shí)例

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

          管理服務(wù)ManagementServcie:管理Job

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

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


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          <2012年3月>
          26272829123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          主站蜘蛛池模板: 醴陵市| 东阿县| 伽师县| 松溪县| 吴桥县| 冀州市| 锦屏县| 定陶县| 巫山县| 女性| 武夷山市| 内江市| 白朗县| 正宁县| 介休市| 运城市| 扎兰屯市| 永川市| 屯昌县| 大足县| 黄冈市| 奉贤区| 商都县| 合作市| 六盘水市| 沐川县| 阿鲁科尔沁旗| 乐山市| 宝清县| 和静县| 南康市| 高雄县| 渝中区| 呼伦贝尔市| 右玉县| 新津县| 留坝县| 宽城| 北安市| 南木林县| 高邑县|