Skip to main content

JBoss BPM Suite - 拖拉一個人工任務,(偽)長假申請流程 BPM Suite版

BPM Suite 是Red Hat 最新推出的流程產品,應該在2月底會正式推出,為了要去上Workshop 所以就拿現在Beta版上面測試了之前的(偽)請假流程。
基本上jBPM 流程的部分,與前一版大同小異。
(是說,如果我找一天在咖啡店開一堂這個課,有人會想來聽嗎?)

在開始之前,請先確定BPM Suite 是安裝OK的。然後使用者資訊也在Server 上都設定成功登入正常。 在Task Server 上也把你的使用者資訊都放置上去了。
(我已經寫好了,等版本GA了我就可以放上來了,現在還是Beta, 覺得搞不好畫面還會改... )

登入 http://IP:PORT/business-central之下,如果先前還沒有建立群組以及儲存庫,請到
Authoring -> Administration ,之下的 Organizational Units -> Manage Organizational Units, 按下之後左方會出現組織與相關儲存庫的關係圖。 按下 Add.

新增組織名稱,以及owner 名稱.


新增儲存庫 Repositories -> New repository,

輸入儲存庫名稱,



這樣組織與儲存庫就建立好了,現在開始建立專案。
請到Authoring -> Project Authoring


 建立新專案,到New Item 下點選 Project


 輸入專案名稱

 輸入專案相關的細節

以下就是你會看到的結果拉~


 可以開始建立第一個流程拉,到New Item下 ,選擇Business Process



給他一個流程的名字~



稍微等一下,因為瀏覽器要畫出editor,點選綠色的小圓點(Start Event),



你就會看到下圖的圓圓開始,選擇它,這時右邊應該會出現一堆可以按的快速建立鈕,請直接按選方形的那個。
 以此類推,在新建的Task 上點選,出現快速建立鈕時再選一次方形的那個。

我們的流程要有一個條件判斷,所以選取菱形的XOR
判斷的地方,請用滑鼠點選在菱形上,點選正方形的Task,請做兩次,因為有兩個分流



接下來我們的流程就要結束了,所以請在兩個分流出來的Task 後選擇實心的圓形。


建立好之後,請按選第一個正方形的Task, 然後把右邊的Proprties 設定頁拉大一點。
在TaskType 選擇 Script,給他一個Name : Logging




既然是個Logging 的 Script Task, 那就來寫個log 吧,點選下方Extra 的 Script,之後會跳出一個畫面,請在裡面寫上,
System.out.println("Starting Apply PTO Process");

好,上一個Logging 的Task 已經完成了,請把滑鼠游標點在空白畫上,這時右手邊Properties 會變得比較不一樣,因為已經變成Process Level 的屬性了,請點選Variable Definitions, 我們要來設定這個流程收什麼資料。

因為本小姐很想放個長假,所以,我就定義這個流程叫做長假申請好了,使用者輸入名字想請的假期長度,跟是否申請成功



以上流程的屬性也設定好了,接下來,就是設定人工流程,請選擇第二的Task, 然後選擇User。


每個人工流程都要定義自己的Data Input, 有點像是method 的parameter,請選擇DataInput。
對了,快速起見,我先定一這個Task 會丟給自己 (Actors 設定為christina)


設定如下。

除了Data Input 也要設定Data Output,也就是輸出的變數.


然後,要把流程的變數,聯結到剛剛我們做的data input裡,所以請按Assignement. 


設定如下。

最後,也是最重要的一步,給個名字吧。總共有兩個地方,如下圖。


流程的部分到這裡就完成了。接下來因為我想用BRMS 內建的jbpm console 秀畫面,所以,我就點選右上方小圖,它會自動幫我產生畫面。(快爆肝了)

                         

會在左手邊產生兩個FORM,一個是流程一開始的時候,輸入的畫面,與人工任務的畫面。


 按下DayOffView-taskform, 這邊就是直接編輯左邊畫面,很直覺的修改.. 我就不多說了..




別忘了 PTOApplication.ptoflow-taskform 也要改喔~



記得儲存。按下右上方的X 離開畫面,回到流程的畫面,在菱形的XOR的兩條連接出去的線上,分別輸入左邊的內容。



最後,分別做兩個Script Task 印成功失敗的log出來。



記得按下左上方的Save 按鍵Save。回到Project Exploer,到Tools 下面的 Project Editor,

看到PTOApplication,也就是我們這次建立的Project, 請按下左上方的 Save 後,按下Deploy and build.


到Deploy之下,你就會看到Build之後的Project



以上,建置的部分就完成了。

接下來,就是去真使用我們剛剛建立的請假流程了。。
到最上方選擇 Task -> Task Lists, 這時,就會看到剛剛建立的proflow ,請按下最右邊的Action 下的箭頭開始流程。



第一個FORM就出現請你輸入名字跟要請假的天數 (我們剛剛建立的那個),填入資料後按下箭頭,往下一步走。


執行之後,就可以到右手邊的Action 跟View 看目前這個流程的內容拉!



可以看到現在流程跑到哪裡囉~


也可以看到目前流程的變數,也可以修改。


去Task->Task List裡面,請按左邊的箭頭就可以把這個任務分配過來了。


執行任務,決定要不要勾選核准,按下Complete,



就是這樣拉,流程就走完了,也可以看到log



以上。我要睡覺去。

Comments

廖健智 said…
很詳盡的解說~
新手消化中XD

是說妳如果開課都是在台北嗎?

Popular posts from this blog

Red Hat Fuse - Announcing Fuse 7 Tech preview 3 release.

Red Hat Fuse 7.0 technical preview three is out today! On the pathway to become one of the best cloud-native integration platform, Fuse gives developer freedom to choose how they want to develop the integration solution, where they want to deploy it and capabilities to address new integration personas that do not have development experience.
By supporting the three major runtime, developer is free to work on the runtime of their choice.By supporting standalone and cloud deployment, it simplifies the complexity to distinguish between these environments, allowing application to deploy freely among the environment of your choice. All levels of developers are welcome, you can either dive deep into creating customize complex integration logic, or using the new low code platform to quickly build a simple integration. In this Tech Preview release you get it all.
Fuse StandaloneSpring-boot for microserviceKaraf 4 for OSGi loverJBoss EAP for JavaEE developersFuse on OpenShiftPlugins for easy co…

JBoss EAP 6 - 效能調校 (一) DataSource 的 Connection Pool

效能沒有什麼Best Practice, 反正能調整的就那些。 通常,一個程式的效能大概有70-80% 都跟程式怎麼寫的其實比較有關係。

最近我最疼愛的小貓Puji 因為膀胱結石開刀的時候過世了,心情很差請原諒我的口氣沒有很好,也沒有心情寫部落格。

Puji R.I.P.

=======================正文=======================

這個題目很多人叫我寫,可是這題目好大,這分明就是整死我咩~
所以我會分幾段慢慢寫。

JBoss 的 SubsystemDatasource WebWeb Service EJB Hibernate JMSJCAJVM 調校OS (作業系統)

先來看一下 DataSource Subsystem, DataSource 的部分主要是針對Connection Pool 做調校。

通常,程式都會需要跟資料庫界接,電腦在本機,尤其是在記憶體的運算很快,但是一旦要外部的資源連接,就是會非常的耗資源。所以現在的應用程式伺服器都會有個Pool 放一些先連接好的 資料庫connection,當程式有需要的時候就可以馬上提供,而不用花那些多餘的資源去連接資料庫。

這就是為什麼要針對Connection Pool 去做調校。

以下會討論到的參數,都是跟效能比較有關係,Datasource 還有很多參數,像是檢核connection 是否正確的,我都不會提到。如果你追求的是非常快速的效能,那我建議你一個檢核都不要加。當然,這樣就會為伺服器上面執行的程式帶來風險。這就是你要在效能與正確,安全性上面的取捨了。 (套句我朋友說的話,不可能又要馬兒好,又要馬兒不吃草的..)

最重要的調校參數就是 Connection 的 Pool 數量。(也就是那個Pool 裡面要放幾條的connection.) 這個參數是每一個應用程式都不一樣的。

min-pool-size 

Connection Pool 最少會存留的connection 數量

max-pool-size 

Connection Pool 最多可以開啓的 connection 數量

prefill

事先將connection pool 裡面建立好min-pool-size 的connection.

我的建議是觀察一下平常程式要用到的量設定為 min-pool-size 。
加上…

JBoss Fuse - Fuse workshop 101 - Part One

On my way to Hong Kong for a day of workshop on JBoss Fuse, and as I go through my Slide deck, I cannot find any decent easy workshop for beginners. Therefore I decide make a workshop that is easy for Camel first timer to get their hands dirty.

The first of part of the workshop is an introduction to Camel, it first goes through what is exactly inside JBoss Fuse.

For part one of the workshop, it takes your through the very basic of Camel, one of the very important component inside JBoss Fuse.
Every Camel need to have a runtime container to run in, inside camel we call it a CAMEL CONTEXT.  Inside every Camel context, you can define lots of camel route and registry, don't worry about what those are, we will explain later.


So inside out blueprint xml, you will see a tag called camelContext.



Next up is camel route, they are a chain of command or process defined by you, as a developer.
Inside the camel route, there are consumer endpoints that listens to the incoming messages, producers …