最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java開發(fā)Activiti進階篇流程實例詳解

 更新時間:2022年08月11日 08:52:53   作者:請叫我黃同學  
這篇文章主要為大家介紹了java開發(fā)Activiti進階篇流程實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

1.流程實例

1.1 什么是流程實例

流程實例(ProcessInstance)代表流程定義的執(zhí)行實例

一個流程實例包括了所有的運行節(jié)點,我們可以利用這個對象來了解當前流程實例的進度等信息

例如:用戶或者程序安裝流程定義的內(nèi)容發(fā)起了一個流程,這個就是一個流程實例

1.2 業(yè)務(wù)管理

?流程定義部署在Activiti后,我們就可以在系統(tǒng)中通過Activiti去管理流程的執(zhí)行,但是如果我們要將我們的流程實例和業(yè)務(wù)數(shù)據(jù)關(guān)聯(lián),這時我們需要使用到Activiti中預(yù)留的BusinessKey(業(yè)務(wù)標識)來關(guān)聯(lián)

實現(xiàn)代碼:

    /**
     * 啟動流程實例,添加businessKey
     */
    @Test
    public void test01(){
        // 1.獲取ProcessEngine對象
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        // 2.獲取RuntimeService對象
        RuntimeService runtimeService = processEngine.getRuntimeService();
        // 3.啟動流程實例
        ProcessInstance instance = runtimeService
                .startProcessInstanceByKey("evection", "1001");
        // 4.輸出processInstance相關(guān)屬性
        System.out.println("businessKey = "+instance.getBusinessKey());
    }

1.3 流程實例的掛起和激活

? 在實際場景中可能由于流程變更需要將當前運行的流程暫停而不是刪除,流程暫停后將不能繼續(xù)執(zhí)行。

1.3.1 全部流程掛起

? 操作流程的定義為掛起狀態(tài),該流程定義下邊所有的流程實例全部暫停。

流程定義為掛起狀態(tài),該流程定義將不允許啟動新的流程實例,同時該流程定義下的所有的流程實例都將全部掛起暫停執(zhí)行。

    /**
     * 全部流程掛起實例與激活
     */
    @Test
    public void test02(){
       // 1.獲取ProcessEngine對象
        ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
        // 2.獲取RepositoryService對象
        RepositoryService repositoryService = engine.getRepositoryService();
        // 3.查詢流程定義的對象
        ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
                .processDefinitionKey("evection")
                .singleResult();
        // 4.獲取當前流程定義的狀態(tài)
        boolean suspended = processDefinition.isSuspended();
        String id = processDefinition.getId();
        // 5.如果掛起就激活,如果激活就掛起
        if(suspended){
            // 表示當前定義的流程狀態(tài)是 掛起的
            repositoryService.activateProcessDefinitionById(
                    id // 流程定義的id
            ,true // 是否激活
            ,null // 激活時間
            );
            System.out.println("流程定義:" + id + ",已激活");
        }else{
            // 非掛起狀態(tài),激活狀態(tài) 那么需要掛起流程定義
            repositoryService.suspendProcessDefinitionById(
                    id // 流程id
                    ,true // 是否掛起
                    ,null // 掛起時間
            );
            System.out.println("流程定義:" + id + ",已掛起");
        }
    }

掛起流程定義后,對于的實例對象中的狀態(tài)會修改為2

然后再去操作對于的流程實例會拋異常信息

我們再將掛起的流程轉(zhuǎn)變?yōu)榧せ顮顟B(tài),對于的狀態(tài)值會從2更新為1

然后就是業(yè)務(wù)流程可以正常處理了

1.3.2 單個實例掛起

操作流程實例對象,針對單個流程執(zhí)行掛起操作,某個流程實例掛起則此流程不再繼續(xù)執(zhí)行,當前流程定義的其他流程實例是不受干擾的。完成該流程實例的當前任務(wù)會拋異常

    /**
     * 單個流程實例掛起與激活
     */
    @Test
    public void test03(){
        // 1.獲取ProcessEngine對象
        ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
        // 2.獲取RuntimeService
        RuntimeService runtimeService = engine.getRuntimeService();
        // 3.獲取流程實例對象
        ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
                .processInstanceId("25001")
                .singleResult();
        // 4.獲取相關(guān)的狀態(tài)操作
        boolean suspended = processInstance.isSuspended();
        String id = processInstance.getId();
        if(suspended){
            // 掛起--》激活
            runtimeService.activateProcessInstanceById(id);
            System.out.println("流程定義:" + id + ",已激活");
        }else{
            // 激活--》掛起
            runtimeService.suspendProcessInstanceById(id);
            System.out.println("流程定義:" + id + ",已掛起");
        }
    }

然后我們可以在數(shù)據(jù)庫中查看到狀態(tài)的更新

以上就是java開發(fā)Activiti進階篇流程實例詳解的詳細內(nèi)容,更多關(guān)于java Activiti流程實例的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

溧水县| 衡山县| 洛川县| 宁阳县| 枝江市| 汉阴县| 乌什县| 扎赉特旗| 望奎县| 泰来县| 阳新县| 黄石市| 云霄县| 滕州市| 肥西县| 宁强县| 千阳县| 卫辉市| 宁津县| 延津县| 原阳县| 柳林县| 汕尾市| 郧西县| 瑞安市| 南涧| 松阳县| 阿拉尔市| 长乐市| 改则县| 揭西县| 民权县| 吴旗县| 育儿| 营口市| 桐梓县| 高阳县| 许昌县| 新竹市| 通江县| 鹤庆县|