jbpm時間調(diào)度問題,公司有一個需求就是關(guān)于時間調(diào)度的問題,借用下面的流程實(shí)例來說明,
?
?
?
???? 上面的流程圖是一個公司報銷流程。普通員工可以填寫報銷單,然后提交主管審批;主管審批可以有三種可能:一是主管可以駁回請求,那么報銷人需要重填報銷單,或者取消報銷操作;二是主管不同意請求,請求直接結(jié)束;三是主管同意請求,那又存在兩種情況,一是如果報銷總費(fèi)用大于1000的話那么會自動轉(zhuǎn)到老板那里,如果小于1000就直接進(jìn)入財務(wù)處理子流程,老板審批的話有兩種可能,一是同意進(jìn)入財務(wù)處理子流程,二是不同意請求直接結(jié)束。
?
????? 現(xiàn)在想增加一個功能,當(dāng)員工填寫了報銷單到達(dá) “部門主管審批” 這里,如果主管在 30分鐘 內(nèi)沒有做出審批那么就直接跳轉(zhuǎn)到 “申請人修改報銷單” 這個任務(wù)節(jié)點(diǎn)上(當(dāng)然實(shí)際中也不一定有這個功能,我是為了想說明問題才設(shè)定的這個流向)
?
???? 在報銷的processdefinition.xml 文件中我是這樣設(shè)定的(去掉其他無關(guān)的只列出來了關(guān)于timer的相關(guān)設(shè)置)
<task-node name="部門主管審核"> <task name="主管審核"> <timer duedate="30 minutes" name="reminder" transition='need mod' > <script> System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++執(zhí)行到這里了"); </script> </timer> <controller> <variable name="baoxiaoId" access="read" mapped-name="報銷ID"> </variable> </controller> <assignment class="demo.workflow.assignment.ManagerAssignment"> </assignment> </task> <transition name="need mod" to="申請人修改報銷單"></transition> <transition name="to result" to="判斷走向"></transition> </task-node>
?
在web.xml文件中設(shè)置了
<!--JbpmThreadsServlet --> <servlet> <servlet-name>JbpmThreadsServlet</servlet-name> <servlet-class>org.jbpm.web.JbpmThreadsServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>JbpmThreadsServlet</servlet-name> <url-pattern>/threads</url-pattern> </servlet-mapping>
?
?
設(shè)置好了以后運(yùn)行的時候就出現(xiàn) 問題 了
???? ?當(dāng)員工“ 張三 ”填寫完報銷單后,報銷單就流轉(zhuǎn)到了“部門主管審核”這個節(jié)點(diǎn),如果部門主管在30分鐘內(nèi)不去審批的話就按照流程定義文件中的流向就走到了“申請人修改報銷單”這個節(jié)點(diǎn),可是這個時候 部門主管 的待審批任務(wù)中 還有 這個任務(wù),同時這個任務(wù)在 “張三” 這個人的任務(wù)列表中出現(xiàn)了。就是一個報銷單,現(xiàn)在同時出現(xiàn)在兩個地方,“張三”需要重新填寫,部門主管這里也可以看到這個公文。
?
?
???? ? 我的問題: 是怎么才能 在超過規(guī)定時間的時候 報銷單只在“申請人修改報銷單”這個任務(wù)節(jié)點(diǎn)下出現(xiàn)。即部門主管這個時候就看不到這個報銷單???????
?
???? 希望 各位大蝦能夠給出解釋! 我在這里先謝謝大家了!
?
?
----------------------------------------------------------------------------------------------------------------------------------
?
現(xiàn)在 問題已經(jīng)解決?
?
?
就是在?processdefinition.xml? 配置文件中修改一下
<task-node name="部門主管審核"
end-tasks="true">
<task name="主管審核">
<timer duedate="100 seconds" name="reminder" transition='need mod' >
<script>
System.out.println("++++++++++++++++++++++++++++++++++++++執(zhí)行到這里了");
</script>
</timer>
<controller>
<variable name="baoxiaoId" access="read" mapped-name="報銷ID"></variable>
</controller>
<assignment
class="demo.workflow.assignment.ManagerAssignment">
</assignment>
</task>
<transition name="need mod" to="申請人修改報銷單"></transition>
<transition name="to result" to="判斷走向"></transition>
</task-node>
?
?默認(rèn)情況下 end-tasks="false"? 意思是當(dāng)離開節(jié)點(diǎn)的時候所有打開的任務(wù)將被關(guān)閉!
?
總結(jié): 由于對jbpm不是很熟悉,所以才會碰到這樣的問題。 下一步要好好研究一下。
?
謝謝大家的關(guān)注
?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
