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

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