




已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
北京傳智播客教育 ,課程大綱,JBPM基本用法 工作流基本知識 JBPM基本用法 JBPM高級用法 各種類型節(jié)點的用法及應用場景 JBPM實現原理 系統(tǒng)架構和數據結構 基于JBPM的工作流應用平臺開發(fā) 工作流應用平臺介紹 設計和實現策略,北京傳智播客教育 ,基于jBPM的應用開發(fā) 基礎知識,孫文舉,北京傳智播客教育 ,內容,工作流基本知識 概念和術語 JBPM基本概況 jBPM中與工作流領域對應的概念 JBPM基本用法 基本API的用法以及應用策略 實例開發(fā) 實例編寫一個報銷審批流程的相關代碼 課堂交流和答疑,北京傳智播客教育 ,jBPM介紹,jBPM是什么 是基于java實現的流程業(yè)務處理框架(Business Process Management) jBPM能做什么 支撐企業(yè)的流程性業(yè)務應用:解釋業(yè)務規(guī)則,使得協作自動化 特點 沒有采用WFMC的規(guī)范xPDL(尤其是業(yè)務定義部分) 強大的業(yè)務邏輯描述能力(jPDL) 核心組件是流程調度引擎 輕量級,core engine無須運行于JEEContainer 采用hibernate作為數據持久化的工具,兼容多種數據庫 簡單易用,靈活、可擴展,同一需求有多種解決策略,北京傳智播客教育 ,BPM VS Workflow,區(qū)別 Workflow更側重于對流程的處理模型,屬于技術領域范疇 BPM除了對流程的處理,還要提供靈活的編程模型,易于企業(yè)應用的集成,更側重于業(yè)務范疇 用workflow替代BPM 我們在后面的課程中將以workflow名詞為主,北京傳智播客教育 ,業(yè)務流程示例,示例: 參與者/活動/數據,工作流(系統(tǒng))簡介,什么是工作流? WFMC定義:The automation of a business process, in whole or part, during which documents, information or tasks are passed from one participant to another for action, according to a set of procedural rules. 要素:任務(task),參與者(participant ) 什么是工作流管理系統(tǒng) WFMC定義:A system that defines, creates and manages the execution of workflows through the use of software, running on one or more workflow engines, which is able to interpret the process definition, interact with workflow participants and, where required, invoke the use of IT tools and applications. 要素:工作流的管理、工作流的調度執(zhí)行、工作流引擎,北京傳智播客教育 ,為什么用工作流,工作流帶來的益處 實現了無紙化的工作模式; 過程可監(jiān)控:便于對執(zhí)行過程的跟蹤和監(jiān)控 數據可管理:便于對數據進行檢索、分析 可靠性:減少人-人交互的主觀錯誤的機率 常見應用領域 行政管理:行政、事業(yè)單位、大中型(國有)企業(yè) 產品研發(fā)和制造:用于對整個研發(fā)、生產制造過程的管理和調度 電子商務:訂單處理 其他 如大型內容管理系統(tǒng)的多步審核 常見場景 公文流轉、行政審批、訂單處理、產品研發(fā)、制造過程 其他需要多個角色協作、多步完成的活動,北京傳智播客教育 ,工作流系統(tǒng)核心模型,工作流引擎,工作列表,流程定義,解釋定義,產生,業(yè)務數據庫,持久化組件,北京傳智播客教育 ,模型說明,加載流程定義 定義工具可以系統(tǒng)提供,也可以只是讀取定義結果 啟動流程 啟動選定的流程,創(chuàng)建流程實例 辦理任務(流程的每一步) 執(zhí)行流程的每個步驟(不一定都需要人參與:自動任務節(jié)點) 記錄流程的狀態(tài) 對狀態(tài)的管理是工作流引擎的主要職責,北京傳智播客教育 ,工作流(系統(tǒng))主要概念,流程定義:預先定義的業(yè)務流轉邏輯 流程實例:業(yè)務的一次實際流轉過程 參與者:任務的執(zhí)行者 活動(任務):組成流程定義的節(jié)點 活動實例:組成流程實例的元素 流轉:從一個節(jié)點到另一個節(jié)點這一行為 工作列表:當前需要辦理的任務集合 工作流引擎:工作流的核心組件,對流程實例、任務實例以及其狀態(tài)進行管理,北京傳智播客教育 ,我們已經介紹了工作流的基本知識 我們看看jBPM中與之對應的一些概念和名詞,北京傳智播客教育 ,Jbpm套件的組成,jPDL Designer:流程定義設計器,流程建模工具 jPDL Library:流程執(zhí)行引擎 WebConsole:參與者和流程執(zhí)行環(huán)境的交互界面,流程運行期間的監(jiān)控工具,北京傳智播客教育 ,工作流系統(tǒng)研究切入點,如何編寫流程定義 如何部署流程 如何加載流程 如何啟動流程 如何執(zhí)行任務 如何完成任務,北京傳智播客教育 ,概念 : ProcessDefinition,定義了流程的業(yè)務邏輯,包含業(yè)務節(jié)點和流轉。是有向圖結構。,北京傳智播客教育 ,概念 : ProcessInstance,ProcessDefinition 執(zhí)行期間的體現 包含了流程定義被解釋之后的一些信息,諸如開始時間,結束時間 其他相關聯的信息,北京傳智播客教育 ,概念 : Task TaskInstance,Task 是ProcessDefinition的組成部分,定義了活動的具體內容 TaskInstance Task被解釋執(zhí)行時的信息,開始時間,結束時間,參與者id create start end 三種狀態(tài),北京傳智播客教育 ,概念 : Actor,活動的參與者 jBPM目前只需要actor的Id,對actor的具體解釋是由業(yè)務應用層負責 任務創(chuàng)建時可以指定任務的參與者,也可以不指定 在一般的系統(tǒng)中,不建議采用jBPM的identity組件,北京傳智播客教育 ,概念:Token,是一個指針(運行期的概念),代表著一條執(zhí)行路徑,指向當前流程中正在執(zhí)行的節(jié)點 在實例的運行期間,tokens 可能是一樹形結構 同一時刻,可能存在多個token,但是只有一個root token,北京傳智播客教育 ,我們已經介紹了jBPM的工作流主要元素 我們看看jBPM中與之對應的工作機制,北京傳智播客教育 ,jBPM API : 典型應用-流程定義部署,JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext(); GraphSession graphSession = jbpmContext.getGraphSession(); ProcessDefinition processDefinition = ProcessDefinition .parseXmlResource(“org/ministone/training/jbpm/processdefinition.xml“); /部署流程定義,如果已經存在同名的定義,則版本號會自動累加 graphSession. deployProcessDefinition(processDefinition); jbpmContext.close();,北京傳智播客教育 ,如何加載和開始流程,JbpmContext jbpmContext =JbpmConfiguration.getInstance.createJbpmContext(); GraphSession graphSession = jbpmContext.getGraphSession(); /加載流程定義 ProcessDefinition processDefinition = graphSession .loadProcessDefinition(processDefinitionId); / 創(chuàng)建流程實例:啟動流程 ProcessInstance processInstance = new ProcessInstance(processDefinition); /此時,rootToken指向流程定義的第一個節(jié)點 jbpmContext.save(processInstance); jbpmContext.close();,北京傳智播客教育 ,如何給任務設置參與者 (最簡單的方式),某一個任務固定由某人處理: “ ,北京傳智播客教育 ,如何給任務設置參與者,用變量傳遞參與者的ID 值一般在web層確定 定義配置: “ “ Handler 實現 public class UserIdAssignmentHandler implements AssignmentHandler public void assign(Assignable assignable, ExecutionContext executionContext) throws Exception String actorId = (String) executionContext.getVariable(“userId“); assignable.setActorId(actorId); ,北京傳智播客教育 ,如何獲取工作列表,獲取待辦列表: JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext(); TaskMgmtSession taskMgmtSession = jbpmContext.getTaskMgmtSession(); /只能獲取尚未完成的任務列表(待辦任務) List list = taskMgmtSession.findTaskInstances(userId); jbpmContext.close(); 如果需要靈活的列表獲取接口,需要直接使用hibernate session對象對數據庫進行查詢 諸如按時間、按流程、分頁等附加要求,北京傳智播客教育 ,如何執(zhí)行任務,典型代碼: JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext(); TaskMgmtSession taskMgmtSession = jbpmContext.getTaskMgmtSession(); TaskInstance taskInstance = taskMgmtSession.loadTaskInstance(id); taskInstance.start(); jbpmContext.save(taskInstance); jbpmContext.close(); start()方法的調用 標識著一個任務的執(zhí)行的開始:任務的開始時間會被填充 在實際業(yè)務中類似簽收的作用 也可以帶入參數(actorId)來主動參與任務的執(zhí)行,北京傳智播客教育 ,如何結束任務,典型代碼: JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext(); TaskMgmtSession taskMgmtSession = jbpmContext.getTaskMgmtSession(); TaskInstance taskInstance = taskMgmtSession.loadTaskInstance(id); taskInstance.end(); jbpmContext.save(taskInstance); jbpmContext.close(); end 方法的調用 當前任務實例的結束:任務的結束時間會被填充 下一個節(jié)點的初始化 當前任務的結束和下一個流程節(jié)點的開始是在一個事務內完成,從而保證了數據的完整性,北京傳智播客教育 ,如何設置(流程實例)變量,變量用來處理工作流相關數據 不需要定義 和流程實例信息一起被持久化 變量的訪問和賦值是在某一個token上進行的,缺省時,是基于root Token 變量的作用域和所屬的token的生命周期一致,分支上同名變量互不影響,和parent的同名變量也互不影響 典型代碼: JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext(); GraphSession graphSession = jbpmContext.getGraphSession(); ProcessInstance processInstance = graphSession.loadProcessInstance(Long .parseLong(instanceId); ContextInstance contextInstance = processInstance.getContextInstance(); contextInstance.setVariable(vname, value);/設置到了rootToken jbpmContext.save (processInstance); jbpmContext.close();,北京傳智播客教育 ,jBPM API : JbpmContext(一),職責 對實例數據的操作 用于獲取GraphSession對象; 主要方法 Connection getConnection() Session getSession() public GraphSession getGraphSession() public TaskMgmtSession getTaskMgmtSession() public LoggingSession getLoggingSession() public SchedulerSession getSchedulerSession() public void close(),北京傳智播客教育 ,jBPM API : JbpmContext(二),典型用法 JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext(); try TaskInstance taskInstance = . .do your process operations. jbpmContext.save(taskInstance); catch(Throwable) /process exception here finally jbpmContext.close(); ,北京傳智播客教育 ,jBPM API : JbpmContext(三), JbpmContextFilter org.jbpm.web.JbpmContextFilter JbpmContextFilter /wfapp/* ,web.xml配置,北京傳智播客教育 ,jBPM API : GraphSession,職責 Graph 相關的數據持久化操作 主要是ProcessDefinition和ProcessInstance 主要方法 public void saveProcessDefinition( ProcessDefinition processDefinition ) public ProcessDefinition loadProcessDefinition(long processDefinitionId) public ProcessDefinition findProcessDefinition(String name, int version) public List findAllProcessDefinitions() public void saveProcessInstance(ProcessInstance processInstance) public ProcessInstance loadProcessInstance(long processInstanceId) public List findProcessInstances(long processDefinitionId) Delete方法,北京傳智播客教育 ,jBPM API : TaskMgmtSession,職責 TaskInstance相關的數據查詢操作 TaskInstance數據通過ProcessInstance進行保存 主要方法 public List findTaskInstances(String actorId) public List findPooledTaskInstances(String actorId)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技產品使用中的急救知識
- 佛山2025年廣東佛山市中醫(yī)院招聘高層次人才12人筆試歷年參考題庫附帶答案詳解
- 2025青海海北州門源枋正建設項目管理有限公司面向社會招聘工程技術人員6人筆試參考題庫附帶答案詳解
- Meta-fluoro-4-ANBP-m-Fluoro-4-ANBP-生命科學試劑-MCE
- Fluticasone-17β-carboxylic-acid-生命科學試劑-MCE
- 臨沂2025年山東臨沂市市直部分醫(yī)療衛(wèi)生事業(yè)單位招聘醫(yī)療后勤崗位15人筆試歷年參考題庫附帶答案詳解
- 證件出租合同范本
- 電路板制造技術發(fā)展趨勢與挑戰(zhàn)
- 電子商務平臺經濟法律制度建設及風險管理
- 燈具安裝驗收合同范本
- 《火力發(fā)電廠水處理技術概述》課件
- 春節(jié)后復工安全培訓課件
- 全國電子工業(yè)版初中信息技術第二冊第2單元2.1活動3《使用云盤備份數據》教學設計
- 3.1產業(yè)轉移對區(qū)域發(fā)展的影響(第1課時) 【知識精研】高二地理課件(湘教版2019選擇性必修2)
- 2025年醫(yī)院實習協議書樣本
- 2025年湖南工程職業(yè)技術學院高職單招職業(yè)技能測試近5年常考版參考題庫含答案解析
- 招標代理服務投標方案(技術標)
- 2024年云南中煙工業(yè)有限責任公司招聘筆試真題
- 2024年山東輕工職業(yè)學院高職單招語文歷年參考題庫含答案解析
- 2022新教材蘇教版科學5五年級下冊全冊教學設計
- 2024-2025學年全國中學生天文知識競賽考試題庫(含答案)
評論
0/150
提交評論