在指南中分別有5個例子由簡單到復雜,根據測試用例從各個層面展示了jBpm的使用:
1.Hello World 例子:
主要展示了
(1)從XML String 形式中獲得 ProcessDefinition
(2)構造實例化ProcessInstance
(3)獲得令牌token
(4)使用signal()用法
其中,JpdlXmlReader.parse(String str)
parses a process definition from a string. replaces single quotes with double quotes before parsing the xml.
從XML中解析一個流程定義。在解析先,用雙引號代碼單引號。
2.數據庫例子:
jbpm的一個基本特征就是:當它們在等待狀態中,有能力在數據庫中持久化流程的執行。
主要展示:
(1)獲得JBpmSessionFactory static 對象
(2)創建數據庫schema
jBpmSessionFactory.getJbmpSchema().createSchema();
(3)獲得創建JbpmSession
(4)引入GraphSession。 are the graph related database operations.
(5)根據流程名獲得最近的ProcessDefinition
ProcessDefinition processDefition = jbpmSession.getGraphSession.findLatestedProcessDefinition("hello world");
3.傳遞變量 上下文例子:
主要展示:
(1)ContextInstance 為流程實例維護所有的key-variable對。
ContexrInstance contextInstance = processInstance.getContextInstance();
(2)賦值于獲得值,Map機制
contextInstance.setVariable("amout",new Integer(500));
contextInstance.getVariable("amout");
4.任務委派例子:
主要展示:
(1)ProcessInstance .getTaskMgmtInstance() 為管理任務和行為,傳遞實例擴展。
(2)任務實例 TaskInstance
TaskInstance taskInstance = (TaskInstance)processInstance.getTaskMgmtInstance().getTaskInstances().iterator.next();
(3)taskInstance對用有actId
5.定制行為例子:
主要展示:
(1)actions是綁定特定java代碼到jBpm流程的一種機制。actions可以被用來連接它自己的節點。actions可以替代事件(轉變、進入、離開一個節點)。
(2)actionHanlder 要實現ActionHandler接口。 ActionHandler接口定義了一個方法execute(ExecutionContext executionContext) 。