博客專欄

        EEPW首頁 > 博客 > 扣丁學堂Java培訓之Activiti流程部署詳解

        扣丁學堂Java培訓之Activiti流程部署詳解

        發布人:扣丁學堂1 時間:2021-01-08 來源:工程師 發布文章

        本章我們將學習基本的BPMN知識以及Activiti的流程部署。

        BPMN的介紹

        Activiti項目是一項新的基于Apache許可的開源BPM平臺,從基礎開始構建,旨在提供支持新的BPMN2.0標準,包括支持對象管理組(OMG),面對新技術的機遇,諸如互操作性和云架構,提供技術實現。


        那什么是BPM和BPMN呢?

        BPM:即業務流程管理,是一種以規范化的構造端到端的卓越業務流程為中心,以持續的提高組織業務績效為目的的系統化方法,常見商業管理教育如EMBA、MBA等均將BPM包含在內。

        BPMN:業務流程建模與標注,包括這些圖元如何組合成一個業務流程圖(BusinessProcessDiagram)。業務流程示意圖是由一系列的元素符號構成。作為BPMN的基礎,這些符號將業務流程建模簡單化、圖形化,將復雜的建模過程視覺化,讓閱讀者對BPMN有一個更加清晰明了的了解。既然BPMN符號如此重要,那在繪制BPMN示意圖之前,便必須要對BPMN符號的名稱、意義、使用方法等有一個全面的理解。

        BPMN的四種基本元素

        l流對象(FlowObjects):包括事件、活動、網關,是BPMN的核心元素;

        事件Event用一個圓圈表示,它是流程中運行過程中發生的事情。事件的發生會影響到流程的流轉.事件包含Start\Intermediate\End三種類型.如下圖:


        活動Activities用圓角矩形表示,一個活動多個活動組成,活動的類型分為Task和Sub-Process。如下下圖:


        網關Gateway用菱形表示,用于控制流程的分支和聚合.具體符號表示如下:


        l連接對象(ConnectingObjects):包括順序流、消息流、關聯;

        l泳道(Swimlanes):包括池和道兩種類型;

        l人工信息(Artifacts):包括數據對象、組、注釋。

        Activiti的流程部署

        下面介紹在IDEA中如何部署一個簡單的考勤補簽流程

        1、首先在resource目錄下新建bpmn目錄

        2、點擊bpmn目錄右鍵——>new——>bpmn文件,輸入bpmn文件名后會出現如下界面:


        該界面的左邊是屬性面板,可以查看和修改各個bpmn元素的屬性值,中間是bpmn流程圖,最右側是流程圖中的各種元素。

        3、繪制流程圖1)拖放一個StartEvent(開始事件)和一個EndEvent(結束事件)到流程圖中,分別將名稱設置為“補簽開始”和“補簽結束”。2)拖放兩個UserTask,分別將名稱設置為技術經理審批和人事專員確認3)將圖形連接起來,如上圖,提示:將鼠標移動到圖形中心,圖標形狀會發生變化,然后拖動到下一個圖形就完成了連接。

        4、生成流程圖png圖片

        部署一個Activiti流程需要bpmn文件和流程圖圖片(png格式),可以復制bpmn文件然后將后綴名改為xml,在xml文件上點擊右鍵——>Diagrams——>ShowBPMN2.0Designer會出現如下界面:


        ,選擇resources下的bpmn目錄,就會保存為png圖片。

        5、部署流程

        上章介紹過Activiti的核心引擎ProcessEngine,所有的服務都需要通過流程引擎來獲得。

        部署流程需要使用RepositoryService,倉庫服務是存儲相關的服務,一般用來部署流程文件,獲取流程文件,查詢流程定義信息等操作,是引擎中的一個重要的服務。獲得方法:

        RepositoryServicerepositoryService

        =engine.getRepositoryService();

        部署流程:


          @Test
          publicvoiddeployAddSigninProcess(){
          //獲得配置對象
          ProcessEngineConfigurationconfig=
          ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault();
          //創建核心引擎
          ProcessEngineprocessEngine=config.buildProcessEngine();
          //獲得倉庫服務
          repositoryService=processEngine.getRepositoryService();
          //部署流程,支持鏈式編程
          repositoryService
          .createDeployment()//創建部署對象
          .key("addsigninProcess")//設置部署流程鍵值
          .addClasspathResource("bpmn/proc_addsignin.bpmn")//添加bpmn文件
          .addClasspathResource("bpmn/proc_addsignin.png")//添加png文件
          .name("補簽流程")//設置流程名稱
          .deploy();//部署
          }


        執行完上面的代碼后會向下面三張表中插入記錄:

        act_re_deployment存放流程定義的顯示名和部署時間,每部署一次增加一條記錄


        act_re_procdef存放流程定義的屬性信息,部署流程定義都會在這張表中增加一條記錄。


        act_ge_bytearray存儲流程定義相關的部署信息。即流程定義文檔的存放地。


        這樣一個補簽的流程就完成了部署,后面我們可以按照部署的流程進行層層審批直到完成整個流程。


        以上就是關于扣丁學堂Java培訓之Activiti流程部署的詳細介紹,最后想要了解更多關于Java開發問題的小伙伴可以登錄扣丁學堂官網咨詢。扣丁學堂是專業的Java培訓機構,不僅有專業的老師和與時俱進的課程體系,還有大量的Java視頻教程供學員觀看學習,想要學好Java的小伙伴抓緊時間行動吧。扣丁學堂java技術交流群:487098661。微信號:codingbb

        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。

        DIY機械鍵盤相關社區:機械鍵盤DIY




        關鍵詞:

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 吉首市| 阿克苏市| 东兴市| 大城县| 嘉鱼县| 巫溪县| 汝南县| 南丰县| 顺义区| 丰原市| 武冈市| 永新县| 南郑县| 漯河市| 彰化市| 沭阳县| 金沙县| 和林格尔县| 沙湾县| 周宁县| 浮梁县| 孟州市| 东方市| 县级市| 长宁县| 集贤县| 河东区| 西藏| 湄潭县| 甘洛县| 蒙阴县| 郑州市| 上饶市| 阜平县| 富宁县| 台安县| 巴青县| 张家港市| 博乐市| 桂阳县| 华坪县|