一个JBPM工作流管理示例(三)
来源:互联网 发布:惯性导航算法 c 编辑:程序博客网 时间:2024/06/04 18:26
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() );
}
}
- 一个JBPM工作流管理示例(三)
- 一个JBPM工作流管理示例(三)
- 一个JBPM工作流管理示例(一)
- 一个JBPM工作流管理示例(二)
- 一个JBPM工作流管理示例(四)
- 一个JBPM工作流管理示例(一)
- 一个JBPM工作流管理示例(二)
- 一个JBPM工作流管理示例
- 一个JBPM工作流管理示例
- 一个JBPM工作流管理示例
- [JBoss]一个JBPM工作流管理示例
- 一个JBPM工作流管理实例
- 工作流总结(二)JBPM 入门示例
- JBPM工作流管理例子
- 02-jbpm工作流管理
- 工作流--JBPM流程管理
- 工作流--JBPM任务管理
- jBPM 工作流管理系统简介
- META标签的奥妙(ZT)
- RIA應用的了解--各種技術的比較
- 回复:delphi的接口的意义是不是跟C++和Java的不同呢?
- 一个JBPM工作流管理示例(二)
- 一睹64位Windows XP的芳容(也是从网上copy的,扫了一下,没有仔细看)
- 一个JBPM工作流管理示例(三)
- 工作流管理系统(WfMS)介绍
- 如何触发右键菜单的行为
- HTML文档中meta的大作用
- 编写有效用例
- C#实现web信息自动抓取
- CVSNT&Issue Trace使用
- 简化wince中字符串ansi与unicode相互转化的函数
- InstallAnywhere 5.5 Enterprise使用指南(作者:罗时飞.源于Java研究组织)