Oracle中間件開發之BPM學習總結
content
一 BPM的安裝
二 BPM的基本組件
三 A SAMPLE
1.helloworld
2.證明信申請
一 BMP的安裝
安裝Oracle ADF/OSB/BPM/SOA開發環境的過程
按照說明文檔,主要安裝的組建一共有七個部,分如下圖所示:
具體的安裝流程見:http://yiyiboy2010.iteye.com/blog/1629443
安裝過程中會出現常見問題,如:
<!--[if !supportLists]-->1.<!--[endif]-->創建數據庫時,表空間命名不能重複;
<!--[if !supportLists]-->2.<!--[endif]-->安裝完成之後,再運行JD時如出現內存不足或者溢出問題時,需要在配置中修改相關內存,這個問題會影響到JD運行BPM的UI程序
二 BPM的基本組件
使用較多的組件
Service:調用各種服務
BussinessRule:決策表
User:用戶 usertask
Service:該服務分爲很多種,有本地的讀寫操作,也有調用外部的 webservice 的服務,
大部分BPM與外部交互的操作都可以在這裏完成。
BusinessRule:決策表有幾個關鍵元素:conditions, a set of values or ranges ,
Action, rules;
Conditions 表示對象的各種情況,一個BussinessRule可以有多個conditions當做判斷條件;
a set of values or ranges :邊界範圍或者取值,condition在不同的範圍內所對應的action是不同的;
Action:就是在判斷完conditions處於何種range of values內而進行的相應的操作
rules:就是將前3個一一對應起來的一個規則
三 samples
<!--[if !supportLists]-->1.<!--[endif]-->Hello world
該流程爲:發起人提交一條消息,如果消息符合格式,則接收者收到消息,如果格式不符合要求,則流程結束。接收者收到消息後,
可以選擇接收或者拒絕,若接收消息,則流程結束;若拒絕消息,則流程繼續回到發起人重新提交
Step.1 建立工程
如果已按照第一章中的安裝步驟正確安裝,則建立新的工程,選擇 New Application ,分別命名 Application 和Project Name。
選擇BPM Project Navigator,如圖所示創建新的流程
一般選擇兩個類型:Asynchronous Service 和 Manual Process , 本例中選擇 Manual Process
Asynchronous Service 是異步的流程,流程本身不能發起,只能被外部調用;
Manual Process 是手動啓動的流程,需要流程內部自己發起。
STEP.2 定義角色和組織
在Navigator中打開Organization
分析:該流程有兩種最爲簡單的角色(role):發起人(Requestor) 和接收人(Reviewer),所以在組織結構中建立兩個對應role
返回到 Process 界面,將 Organization 中創建的角色放在BPM 的甬道中, 選擇 Add Role ,將 Requester 和 Reviewer 加進去,
甬道的概念:Requester 角色所在的橫道中代表一條甬道,該甬道的內容表示在 Requester 角色下完成的
Step.3 Modeling the Process 構建這個流程
①打開 Interactive , 選擇 Initiator , 放在 start 節點後面, 使用
Artifact將start節點和Requsthello的task 連接起來
雙擊剛剛新建的user task,在basic欄中修改名字爲Request Hello。
②在Request Hello後面添加一個business role,用於檢測發起人提交的信息是否符合規定,而這個規則,會寫在Business role中具體寫出,將在後面介紹
當發起人的信息經過rule決策之後,會判斷是否需要審批,如果需要審批,則進入reviewer甬道,如果不需要審批,則流程直接結束。
③點擊Interactive,選擇User,將此user task 放在 下面甬道中,修改task名稱爲Review Message
在Business role 後面 添加一個判斷節點 gateway,連線如上圖所示,雙擊g1和Review Message之間的連線,修改名稱爲 Review Needed.
④當消息經過Review Message之後,需要其審批,APPORVE or REJECT,所以在Review Message 之後添加一個判斷節點gateway g2,分別將其連到Request Hello上和 end 節點上(請先無視InitApproval和WriteMessage)
該流程現在爲:
Request Hello 節點發送消息請求,經過一個規則判斷是否需要接收,若不需要,則該流程直接結束;若需要,則流程進入Review Message節點,接收者對得到的信息進行審批:包括APPROVE 和REJECT操作,若操作爲APPROVE,則流程走到end節點;若操作位REJECT,則流程回到發起人處,重新提交信息。
以上就是helloworld流程的框架搭建,具體的實現將在下一節講解。