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

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