004 流程部署
一 . 概述
本節,我們主要說明兩個方面的問題
[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 流程部署