java jbpm工作流_一个jbpm工作流管理示例(三)...

(二)Decision

package kellerdu.jbpm.delegation;

import org.jbpm.delegation.*;

import kellerdu.jbpm.LogsFactory;

import org.apache.commons.logging.Log;

import kellerdu.jbpm.Constants;

public class ChiefDecision implements DecisionHandler {

public ChiefDecision() {

}

/**

* 判断是否需要主管批准,决定下一个要进行的transition

*

* @param executionContext ExecutionContext

* @return String

* @todo Implement this org.jbpm.delegation.DecisionHandler method

*/

public String decide(ExecutionContext executionContext) {

Log log=LogsFactory.getLogInstance(this.getClass());

String ac=(String)executionContext.getVariable(Constants.USER_NAME);

if(ac!=null&&(ac.equals("dali")||ac.equals("wang"))){

log.info(ac+"需要老板批准!");

return "BossApprove";

}else{

log.info(ac+"需要先经主管批准");

return "ChiefApprove";

}

}

}

=======================

(三)fork

package kellerdu.jbpm.delegation;

import org.jbpm.*;

import org.jbpm.delegation.*;

import org.jbpm.model.execution.*;

import java.util.*;

public class DecidedJoin implements JoinHandler {

public DecidedJoin() {

}

/**

* fork,只要一个分支到达,即可进行下一步操作,同时取消其它同时进行的分支。

* 这里就是用户如果取消,请假就取消。如果用户请假批准,则用户不能取消。

*

* @param forkContext ForkContext

* @throws ExecutionException

* @todo Implement this org.jbpm.delegation.ForkHandler method

*/

public void join(JoinContext joinContext) throws ExecutionException {

Iterator it=joinContext.getConcurrentTokens().values().iterator();

Token arrivingToken = joinContext.getToken();

while(it.hasNext()){

Token to=(Token)it.next();

if(to.getId().equals(arrivingToken.getId())){

//取消其它执行的Token

joinContext.getExecutionService().cancelToken(to.getId());

}

}

// reactivate the parent token.

joinContext.reactivateToken( arrivingToken.getParent() );

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值