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

004 流程部署

spa 版本號 rop 內容 dcl 定義 resource 對象 鍵值對

一 . 概述

  本節,我們主要說明兩個方面的問題

  [1]簡單的繪制一個流程圖

  [2] 部署這個流程圖


二 .流程圖的繪制

  我們首先在eclipse之中增加一個activiti的插件,這個在各個網站上都有說明.

  我們現在展示一下最終的流程圖.

技術分享圖片

在上面的流程圖之中,我們定義了一個簡單的流程,有一個起始節點和一個結束的節點.

  流程運行的時候會經過三個任務.

[1]張三提交申請

[2]李四進行組長審批

[3]王五進行經理審批


三 .流程部署

  技術分享圖片

在流程部署之前,我們首先看一下act_ge_property表.

  這個表主要用來存儲通用的屬性的,我們可以發現這是一個基本的鍵值對象的形式進行存儲的,最後一個字段表示版本號.每當一個key被覆蓋的時候,版本號就會加一.

  我們首先說明一下第一個鍵值對的含義 : 這個標示activiti自己維護的id,則樣activiti就有了一個自己的主鍵生成的基礎.

  後面的兩個鍵值對,用來保證數據庫和我們的jar文件的同步.

現在我們首先說明一下流程部署的含義 :

  流程部署就是將我們定義的流程加入到activiti之中,這個流程圖就會作為我們以後工作流驅動的基礎.

我們首先看下面的部署代碼 :  

    @Test
    public void deploy(){
        ProcessEngines.getDefaultProcessEngine()
            .getRepositoryService().createDeployment()
                .name(
"leave") .addClasspathResource("diagram/leave.bpmn") .addClasspathResource("diagram/leave.png") .deploy(); }

上面的代碼比較簡單,下面說明一下.

 [1]創建流程引擎

 [2] 獲取RepositoryService服務對象

[3]配置信息進行部署

在這裏,我們制定加載了我們的流程圖和流程的xml文件,最後我們調用了deploy()方法進行了流程的部署.

  下面,我們看看這個部署到底對表早成了什麽影響.

[1]act_re_deployment : 這個表就是用來維護流程部署信息的表.

  技術分享圖片

我們從表中的數據可以得到:

(1)id:表示本次流程部署的id

(2)name就是我們部署時指定的name的值

(3)最後有一個部署的時間.

[2]act_re_prodef: 這個 表示的就是流程定義的信息  技術分享圖片

這個表描述了我們的流程之中xml文件表示的內容.

  其中,我們需要註意的就是key_這個字段,這個字段表示的是我們流程圖整體的id.

  當我們流程進行了改變的時候,我們只要指定相同的key,就可以覆蓋之前的流程.

[3]act_re_bytearray : 存儲我們的流程的資源信息

  技術分享圖片

這個表之中就存儲了我們使用的流程圖的資源.

我們下面就看看act_ge_property

技術分享圖片

我們發現,現在的activit的id發生了變化,也就說明activiti通過這個表維護自己的id生成策略.

004 流程部署