十七、Decision節(jié)點(diǎn)和DecisionHandler的使用
系統(tǒng)
1611 0
?<?xml version="1.0" encoding="UTF-8"?>
<process-definition
? xmlns="urn:jbpm.org:jpdl-3.2"? name="test6">
?? <start-state name="開始">
????? <transition name="提交給領(lǐng)導(dǎo)審批" to="decision1"></transition>
?? </start-state>
?? <decision name="decision1" expression="#{days gt 10 ? '提交給李四審批':'提交給王五審批'}">
????? <transition name="提交給李四審批" to="李四審批"></transition>
????? <transition name="提交給王五審批" to="王五審批"></transition>
?? </decision>
?? <task-node name="李四審批" >
? ??? ?? <task name="審批">
? ??? ? ??? ?<assignment actor-id="李四"></assignment>
? ??? ?? </task>
????? <transition name="" to="結(jié)束" ></transition>
?? </task-node>
?? <task-node name="王五審批">
????? <task name="審批">
? ??? ? ??? ?<assignment actor-id="王五"></assignment>
? ??? ?? </task>
????? <transition name="" to="結(jié)束"></transition>
?? </task-node>
?? <end-state name="結(jié)束"></end-state>
? ?
</process-definition>
?
在開始節(jié)點(diǎn)往下流轉(zhuǎn)到decision1時(shí),當(dāng)days變量大于10時(shí),就自動(dòng)再流轉(zhuǎn)到李四審批,否則流轉(zhuǎn)到王五審批。
?
?
當(dāng)條件判斷非常復(fù)雜時(shí),就需要使用DecisionHandler
?
<?xml version="1.0" encoding="UTF-8"?>
<process-definition
? xmlns="urn:jbpm.org:jpdl-3.2"? name="test7">
?? <start-state name="開始">
????? <transition name="提交給領(lǐng)導(dǎo)審批" to="decision1"></transition>
?? </start-state>
?? <decision name="decision1">
?? ??? ?
<handler class="com.ygtim.domain.MyDecisionHandler"></handler>
????? <transition name="提交給李四審批" to="李四審批"></transition>
????? <transition name="提交給王五審批" to="王五審批"></transition>
?? </decision>
?? <task-node name="李四審批" >
?? ??? ? <task name="審批">
?? ??? ? ??? <assignment actor-id="李四"></assignment>
?? ??? ? </task>
????? <transition name="" to="結(jié)束" ></transition>
?? </task-node>
?? <task-node name="王五審批">
????? <task name="審批">
?? ??? ? ??? <assignment actor-id="王五"></assignment>
?? ??? ? </task>
????? <transition name="" to="結(jié)束"></transition>
?? </task-node>
?? <end-state name="結(jié)束"></end-state>
??
</process-definition>
?
?
public class MyDecisionHandler implements DecisionHandler {
???
??? /** Comment for <code>serialVersionUID</code> */
??? private static final long??? serialVersionUID??? = -6140889082116291459L;
???
??? @Override
??? public String decide(ExecutionContext executionContext) throws Exception {
??? ??? long days = (Long)
executionContext.getContextInstance()
.getVariable("days");
??? ??? if (days > 10) {
??? ??? ??? return "提交給李四審批";
??? ??? } else {
??? ??? ??? return "提交給王五審批";
??? ??? }
??? }
???
}
十七、Decision節(jié)點(diǎn)和DecisionHandler的使用
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元