jbpm4.3中的節點有很多種
常見的有:
state、task、decision
(我列出來的都是最基本的)
可以這樣理解
流程實例碰到
state就會自己停下來,但是這個任務不屬於那個人,而且知道有任何人驅動了向下,
流程纔會流轉
task就是也會停下來,但是這個任務會分派給一個人或者一個組
知道這個人或者這個組中的某個人(需要以“競爭”的方式領取任務,說白了就是搶)
完成了這個任務,然後流程纔會向下
decision就是不會停下來的,它會自己根據流程變量選擇往哪個流程分支前進
也就是相當於判斷的意思,沒有人干預的...
今天搞了decision ,非常鬱悶 !
...網上大多數人都是讓decision去搞出一個 handler 處理類...
這個...
順便說一句...網上那些例子,幾乎全部是寫死的!
靠,decision需要依靠一個Java類,那麼當你發佈一個流程的時候還要附帶上一個編譯好的類?
... 那麼這樣工作流引擎的發佈流程功能還有什麼用呢?
按照網上的例子寫,基本上可以說,你開發的使用已經限定了你可以發佈什麼流程
然後審批人是什麼,表單傳遞的內容是什麼...
這樣,工作流引擎的意義就沒多大了...
所以,我自己考慮了一下,不應該讓流程定義依賴於handler類處理,而是使用
expression 表達式方式
而且,而且表單中的參數,也不該在流程處理的Action中定死,而是自動獲取
表單的key和value放入流程變量...
當流程發佈的時候,需要有流程定義文件,流程圖片,流程所有的表單
我們需要上傳這幾個文件,然後才能 定義任意流程!
個人覺得,這樣才發揮了工作流引擎的意義...
具體怎麼寫,篇幅問題,我只能等我徹底完成後再單獨發一篇博客才能分享了...
回到正題:
<decision name="b" expr="#{action}">
<transition to="c" name="abc"/>
<transition to="d" name="def"/>
</decision>
這個是我的decision 標籤
expr是表達式
#{action}
是判斷 流程變量中的 action ,如果action的值爲 abc 那麼就
流程流轉向 c 節點
如果是 def 那麼就流向 d 節點
當然,這些表達式還有很多
具體參照
販賣你168那個文檔
http://www.family168.com/tutorial/jbpm4.0/html/jpdl.html#decision