(二)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() );
}
}
分享到:
相关推荐
本示例是jBPM4工作流示例jbpmDemo,详细演示了jBPM4工作流引擎的使用,对工作流采用Canvas动画形象演示,非常实用。也非常先进和有趣。 希望您喜欢。
Jbpm工作流示例:本示例是介绍工作流的,包含基本的功能。
本示例是jBPM4工作流示例jbpmDemo,详细演示了jBPM4工作流引擎的使用,里面包含JBPM的课件,详解,非常实用, 希望您喜欢。
jbpm基本功能的使用,包括.xml的写法。本人感觉对初学者不错
一个简单的工作流示例 Struts 1.2 + spring 2.0 + hibernate 3.1 + jbpm3.1
说明,这篇文章说使用的流程实例是,学习《一个JBPM工作流管理示例》文章中的流程而来。原文中的流程实例不是jbpm3.1版本,不能适用于jbpm3.1。本人将其改写,并加入自己的设计和实现。原文地址为...
jbpm工作流的示例,jar包太多没有上传,版本是jbpm3.1.2
二、第一个流程 5 2.1、开始前的准备 5 2.2 、Hello World 例子 6 三、学习JPDL 11 3.1 、简介 11 3.2 、流程版本(Version) 11 3.3 、流程定义 12 3.3.1 process-definition(流程定义) 12 3.3.2 node(自动节点) 13...
Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM...
JBPM是一个扩展性很强的工作流系统,百分百用JAVA语言开发,持久层采用Hibernate实现,理论上说,只要Hibernate支持的数据库JBPM都支持。同时它还能被部署在任何一款JAVA应用服务器上 JBPM的工程文件,大家可以到...
学习jbpm 的最佳例子,例子是用orcal10g 做为数据库的项目实例。本项目对jbpm 用户组 的重写 webroot 下 db 文件夹下有 自己用户角色,关系表的 sql 语句,和基本数据 可以帮助测试,流程跟踪的展示!
JBPM4 示例文件,工作流,java工作流,ssh
jBPM 是一个完全开源的业务流程管理(BPM)和案例管理解决方案。它支持流程和案例的完整生命周期,从编写工具到执行一直到监控和管理。 在核心引擎之上,提供了许多功能和工具来支持整个生命周期中的业务流程: ...
jbpm的6.3.0版本的安装包及示例,JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。jBPM是公开...
详细分析解释JBPM工作流API 内含丰富示例截图 代码
JBPM4是一个扩展性很强的工作流系统,百分百用JAVA语言开发,持久层采用Hibernate实现,并有图形化的设计器,HelloJbpm里有几个完整的例子!包括lib库...
此实例包括的是一个员工请假审批的流程实例,和流程相关的代码以及相应的测试代码。此流程在Eclipse3.1.2 ,JBoss-IDE 1.6环境...说明,这篇文章说使用的流程实例是,学习《一个JBPM工作流管理示例》文章中的流程而来。
最全面的工作流教程,从安装,部署,使用,开发,原理,机制。 有解释说明,有代码示例,图文并茂,手把手教学,保姆级教程。