Blog信息 |
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7585428 建立时间:2006年5月29日 |

| |
[JBoss]一个JBPM工作流管理示例(三) 软件技术, 电脑与网络
lhwork 发表于 2006/6/30 15:28:25 |
(二)Decisionpackage 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"; } }}=======================(三)forkpackage 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() ); }} |
|
|