Jbpm3.2 開發一個Hello World程式
這是一個超級簡單的請假流程,只是為了學習,其他的我就不說了直接開始了。
1.定義 流程processdefinition.xml
流程檔案定義檔案是 processdefinition.xml,這個是一個關鍵檔案。具體內容如下:
processdefinition.xml檔案相關標籤說明:
說明:
流程的名稱改成了 helloworld 。(呵呵,也就是這裡和 helloworld 有關了)
<controller> 標籤定義了三個資料:姓名、請假天數、說明。
<transition> 標籤定了 request 節點的一個流程轉向,這裡是轉到 confirm 節點。
<action> 標籤定義了流程由一個節點轉到另一個節點時,所要執行的動作,動作封裝在一個
ActionHandler 類中。比如這裡當 request 到 confirm 結點時將執行 RequestAction 類的 execute 方法。
RequestAction 下面還有一個 <reason> (請假理由),它對應於 FinshAction 的屬性 String reason 。
例如:
流程檔案對應的流程圖如下:
在processdefinition.xml中定義2個ActionHandler,分別是RequestAction和ConfirmAction,具體程式碼如下:
說明:
ExecutionContext 是一個貫通流程的容器,他是個大寶箱,裡面啥玩意都有,後面將更深入的提到。這裡的reasion就是processdefinition.xml中的我要請假。
到了這裡,後臺的程式基本寫完了,下面開始對流程進行部署,用前面提到的方法如下:
執行此程式看是否成功,在這裡我的是可以的,我們繼續了。
我慢來看看jbpm資料相關表:如下圖
並由此簡單判斷出各表的作用,表中各欄位的作用由欄位名也能知曉一二。
jbpm_processdefinition : 一個流程定義檔案對應一條記錄,可記錄多個流程定義檔案,可記錄一個流程定義檔案的對個版本。
jbpm_action : 記錄 ActionHandler 的物件例項(以名稱為標識)
jbpm_delegation : 記錄了 ActionHandler 全類名,以便於用反射方式來載入
jbpm_envent : 它的 transition 引用了 Jbpm_transition 表的 id ,再看其它欄位,估計此表是表示流程轉向事件的一個例項,或者是一個各表之間的聯接表。
jbpm_node : 流程結點
jbpm_transition : 流程的轉向定義
jbpm_variableaccess : 流程中攜帶的變數。 ACCESS 欄位是這些變數的讀寫許可權
相關文章
- 【Qt開發】01-第一個Qt程式Hello World!QT
- 第一個程式Hello world
- 第一個ncurses程式: hello world !!!
- 第一個PHP程式——Hello WorldPHP
- Rust使用Tauri開發GUI程式——Hello WorldRustGUI
- HarmonyOS應用開發——Hello World
- react 第一個元件 “hello world!”React元件
- iOS 11開發教程(七)編寫第一個iOS11程式碼Hello,WorldiOS
- Linux下第一個程式設計,hello world!Linux程式設計
- 二 ASP.NET MVC 第一個程式 hello worldASP.NETMVC
- 第一個shell程式設計,輸出hello world!程式設計
- HTML5遊戲開發(一):3分鐘建立一個hello worldHTML遊戲開發
- ABAP程式Hello World
- Java實現第一個程式碼,輸出 hello worldJava
- Andorid Studio NDK開發-Hello World
- Andorid Studio NDK 開發 - Hello World
- Andorid Studio NDK開發:Hello World
- 智慧合約從入門到精通:用Solidity開發一個“Hello World”Solid
- hello world"你知多少------300種程式語言中的"hello world"程式匯
- Hello, World
- Hello World!
- Hello World
- 深入分析 Hello World 程式
- C++ COM 開發 Hello World V2C++
- 一個最簡單的WebSocket hello world demoWeb
- 使用Xcode實現第一個C語言程式——Hello worldXCodeC語言
- 使用Android Studio建立第一個Hello World應用程式Android
- PHP擴充套件開發教程2 – 編寫第一個擴充套件 hello worldPHP套件
- spring boot(一)hello worldSpring Boot
- 在docker中寫個Hello WorldDocker
- React入門系列 – 2 編寫第一個Hello world的React程式React
- React入門系列 - 2 編寫第一個Hello world的React程式React
- React Native——搭建開發環境、建立Hello WorldReact Native開發環境
- Cangjie—倉頡程式設計-Hello,World程式設計
- 5分鐘部署一個Hello World Servlet到CloudFoundryServletCloud
- Go - Hello WorldGo
- Docker Hello WorldDocker
- 【Java】Hello worldJava