1. 程式人生 > >003 流程部署

003 流程部署

流程定義 都是 roc 源文件 進行 throw clas puts pat

一 .概述

  在前面,我們畫出了基本的流程圖,如果我們想要使用這個流程圖鎖代表的流程,首先我們就需要對這個流程進行部署.


二 .流程部署  

ProcessEngines.getDefaultProcessEngine()
            .getRepositoryService().createDeployment()
                .name("leave")
                    .addClasspathResource("diagram/leave.bpmn")
                        .addClasspathResource(
"diagram/leave.png") .deploy();

在上面的代碼之中,我們首先獲取到了流程部署對象,然後我們就可以盡心個流程的部署了.

  在部署的時候,我們制定流程的名字,然後加載兩個資源文件,最後調用deploy()方法就完成了流程的部署了.

在部署完之後,我們看一下對activiti中表的改變.

技術分享圖片

首先會在act_re_deployment這個表中增加一條記錄.我們可以看到流程部署的名字和時間.

另外一個就是流程部署的文件信息,全部都會存儲在act_ge_bytearray表之中.

技術分享圖片

我們可以看到對應的兩個文件的信息.

然後,activiti會對我們的流程部署生成一個流程定義記錄.

技術分享圖片

在這裏我們能看到我們的流程的key,最重要的是我們可以看到一個版本號.

  當我們再此部署的時候,只要名稱是一致的,就會升級版本號.


三 . 使用zip部署流程

  在我們的web環境下,我們可以使用文件上傳的方式進行流程的部署. 

    @Test
    public void test2() throws FileNotFoundException{
        // 現在我們使用zip的方式,將流程圖和流程定義文件一起打包為zip文件
        ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream("
C:\\Users\\trek\\Desktop\\leave.zip")); ProcessEngines.getDefaultProcessEngine() .getRepositoryService() .createDeployment() .name("leave") .addZipInputStream(zipInputStream) .deploy(); }

我們將bomn文件和png文件打包稱為一個zip文件,然後使用上面的方式就可以重新部署一個新的流程.

  在運行了上述的文件之後,我們看一下我們上面提到的版本號.

技術分享圖片

我們看到,流程的版本號升級了.以後,我們直接使用流程的key啟動的都是最新的流程.

003 流程部署