`
keller
  • 浏览: 48948 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个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() );
    }
}

分享到:
评论

相关推荐

    jBPM4工作流示例jbpmDemo

    **jbPM4工作流示例jbpmDemo**是一款基于jBPM4的工作流管理系统实例,旨在帮助用户深入了解和掌握jBPM4工作流引擎的使用方法。jBPM4是一款强大的开源工作流管理系统,它提供了流程建模、执行以及监控等功能,广泛应用...

    jbpm工作流整合

    jbpm工作流整合是一个关键的主题,它涉及到企业级业务流程管理(BPM)系统的实施与集成。jbpm是一个开源的工作流管理系统,它提供了一套全面的工具和框架,用于设计、执行、监控和优化业务流程。这个压缩包可能包含...

    Jbpm工作流示例

    【Jbpm工作流示例】是一个以Jbpm 4.4版本为基础的工作流程管理系统实例,主要用于展示和学习工作流的基本操作和功能。Jbpm(Java Business Process Management)是一个开源的工作流引擎,它提供了全面的业务流程管理...

    一个JBPM工作流例子,JBPM

    **JBPM工作流详解** JBPM(Java Business Process Management)是一个开源的工作流管理系统,它提供了一整套解决方案,用于设计、执行和管理业务流程。在本示例中,我们将深入探讨如何利用JBPM实现销售批复这一具体...

    jBPM工作流详解

    **jBPM工作流详解** jBPM,全称Java Business Process Management,是Red Hat公司开发的一款开源的工作流管理系统,它提供了对业务流程的建模、执行和监控能力。jBPM不仅支持传统的工作流标准,如BPMN 2.0,还集成...

    JBPM工作流全套学习资料

    【JBPM工作流全套学习资料】是一份详尽的学习资源,涵盖了JBPM工作流系统的基础到高级知识。JBPM(Java Business Process Management)是开源的企业级工作流管理系统,它允许开发者设计、部署和执行业务流程。这个...

    JBPM工作流示例

    JBPM工作流示例旨在帮助初学者理解工作流管理系统的核心概念,掌握流程定义、部署和执行的方法。通过XML配置文件的学习,可以更加灵活地设计和实现业务流程,从而提高企业的运营效率和管理水平。在实际项目中,可以...

    李腾飞JBPM工作流引擎代码test01到test04

    【李腾飞JBPM工作流引擎代码test01到test04】是一系列关于使用JBPM工作流引擎进行程序开发的示例代码。JBPM(Java Business Process Management)是一款开源的工作流管理系统,它允许开发者设计、执行和管理业务流程...

    JBPM工作流

    总结来说,JBPM工作流系统提供了强大的业务流程管理能力,通过`jbpm_5_leave_web`这样的示例工程,可以帮助我们快速理解和实践业务流程自动化。同时,它还支持多种数据库,具备良好的扩展性和可定制性,是企业级应用...

    JBPM工作流实战_流程定义文件的上传处理视频 03

    "JBPM工作流实战_流程定义文件的上传处理视频 03"这一主题主要关注如何在实际操作中处理JBPM流程定义文件的上传,这在构建业务流程自动化系统时是非常关键的步骤。 首先,流程定义文件是JBPM工作流的核心组成部分,...

    工作流 JBPM SSH 示例

    工作流JBPM SSH示例是将企业级工作流管理系统JBPM与流行的Java开发框架SSH(Struts、Spring、Hibernate)整合的一个典型应用。这个示例旨在帮助开发者理解如何在Java Web环境中集成工作流管理,以实现更高效的企业...

    JBPM工作流介绍ppt

    JBPM(JBoss Business Process Management)是一个开源的工作流管理系统,由Java语言开发,设计用于实现灵活、可扩展的业务流程自动化。JBPM的核心特点是它的直观流程语言,它使用任务、异步等待状态、定时器、自动...

    JBPM 工作流介绍 PPT

    【JBPM工作流介绍PPT】是一份针对工作流管理和开源工作流引擎jBPM的培训资料,旨在帮助IT专业人士理解和应用工作流技术。工作流起源于生产组织和办公自动化领域,目的是通过规则化和流程化的方式提升工作效率,降低...

    jbpm工作流

    在"wipe-flow"这个压缩包文件中,很可能包含了与jbpm工作流相关的示例流程或项目的源代码。这些代码可能涵盖了流程定义文件(bpmn2.xml)、Java服务类(实现业务逻辑)、配置文件(如jbpm的配置、数据库连接配置等)...

    Spring与JBoss JBPM工作流集成开发指南

    ### Spring与JBoss JBPM工作流集成开发指南 #### 一、引言 随着信息技术的发展,企业越来越依赖于高效的工作流管理系统来优化业务流程。工作流管理系统能够支持或自动化业务过程的一部分或全部,通过计算机化的...

    jbpm4.3 工作流实例 java

    - **jbpm4web**:可能是一个基于jbpm4.3的工作流Web应用程序示例,它演示了如何在Web环境中使用jbpm,并可能包含了SSH框架的集成。 - **文件内容**:这个压缩包可能包含Web应用的源代码、配置文件、流程定义文件...

    jbpm-2.0-beta1.zip_java 工作流引擎_jbpm_jbpm-demo_工作流_工作流引擎

    总结来说,jbpm是一个强大的Java工作流引擎,具有流程建模、执行和管理的全面功能,适合用于构建企业级工作流系统。jbpm-demo提供了丰富的示例,帮助开发者快速上手,而jbpm-2.0-beta1的压缩包则包含了实现这些功能...

    JBPM工作流经典例子

    **JBPM工作流经典例子详解** JBPM,全称Java Business Process Management,是一个开源的工作流管理系统,用于管理和执行业务流程。它提供了强大的流程建模、执行和监控功能,且基于Java,具有良好的跨平台性和可...

Global site tag (gtag.js) - Google Analytics