activiti7+springboot2.1.x流程啟動(三)

一、流程部署和流程定義信息查詢

參照上文:activiti7+springboot2.1.x流程部署(二)
,在上文中介紹了如何部署一個流程,通過流程部署,會在數(shù)據(jù)的三張表生成相關(guān)的一些數(shù)據(jù)。
流程的啟動會依賴之前的流程部署。
如果想要啟動一個流程,那么我們首先要知道從什么地方入手。這里先介紹如何通過activiti提供的RepositoryService來查看流程定義和流程部署。

  1. 拿到RepositoryService的實(shí)現(xiàn)類的實(shí)例
    /**
     * RepositoryService
     * 通過流程引擎來取得
     * @param processEngine 
     * @return
     */
    @Bean
    public RepositoryService repositoryService(ProcessEngine processEngine){
        return processEngine.getRepositoryService();
    }
  1. 通過RepositoryService查看流程定義部署,流程定義
    /**
     * 查看流程部署
     */
    @Override
    public void queryProcessDeployment() {
        DeploymentQuery query = repositoryService.createDeploymentQuery();
        List<Deployment> list = query.deploymentName("請假流程").list();
        System.out.println(list);

        ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery();
        List<ProcessDefinition> list1 = processDefinitionQuery.deploymentId(list.get(0).getId()).list();
        System.out.println(list1);
    }

測試方法 如下

    /**
     * 測試流程部署查詢
     */
    @Test
    public void queryProcess() {
        activityService.queryProcessDeployment();
    }

執(zhí)行結(jié)果:
[DeploymentEntity[id=2501, name=請假流程]]
[ProcessDefinitionEntity[myProcess_1:1:2504]]

二、啟動流程

  • 啟動流程實(shí)例這里有兩種方法,下面代碼里面體現(xiàn)
    /**
     * 啟動流程實(shí)例:
     *      前提是先已經(jīng)完成流程定義的部署工作
     *
     *      背后影響的表:
     *      act_hi_actinst          已完成的活動信息
     *      act_hi_identitylink     參與者信息
     *      act_hi_procinst         流程實(shí)例
     *      act_hi_taskinst         任務(wù)實(shí)例
     *      act_ru_execution        執(zhí)行表
     *      act_ru_identitylink     參與者信息
     *      act_ru_task             任務(wù)表
     */
    @Override
    public void startPorcInstance() {
        //創(chuàng)建流程實(shí)例,通過流程定義的id
        //通過流程部署的key啟動
//        runtimeService.startProcessInstanceByKey("myProcess_1");
        //通過流程部署id啟動
        runtimeService.startProcessInstanceById("myProcess_1:1:2504");

    }
  • 查看結(jié)果
  1. act_hi_actinst:歷史活動信息,表結(jié)構(gòu)介紹可以參考
    image.png
  2. act_hi_identitylink:參與者信息
    image.png

    參與者可以在畫流程圖的時候指定。
    image.png
  3. act_hi_procinst:歷史流程實(shí)例
    image.png
  4. act_hi_taskinst:歷史任務(wù)實(shí)例
    image.png
  5. act_ru_identitylink:運(yùn)行時參與者信息
    image.png
  6. act_ru_execution:運(yùn)行時執(zhí)行表。
  7. act_ru_task:任務(wù)表,每完成一步流程就會把當(dāng)前的任務(wù)刪除,然后在放入下一個任務(wù),這樣可以使得表的數(shù)據(jù)相對較少,使整個表運(yùn)行起來相對輕快。
    image.png

補(bǔ)充

啟動流程的時候,需要的 key和id可以在act_re_procdef表查看。
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容