`
xgbjmxn
  • 浏览: 269460 次
  • 性别: Icon_minigender_1
  • 来自: 新乡
社区版块
存档分类
最新评论

jbpm5

    博客分类:
  • jbpm
阅读更多
jbpm5(2007-03-14 23:31:43)转载 
com.sky.plugin.jbpm.def.DynamicCreateTaskInstance


代码
public class DynamicCreateTaskInstance implements ActionHandler {   
       
    private static final long serialVersionUID = 1L;   
  
    public void execute(ExecutionContext context) throws Exception {   
           
        ProcessDefinition processDefinition = context.getProcessDefinition();   
  
        TaskNode taskNode = (TaskNode) context.getNode();   
        Task task = (Task)taskNode.getTasks().iterator().next();   
  
        Long processDefinitionId = processDefinition.getId();   
        Long taskId = task.getId();   
           
        Token token = context.getToken();   
        TaskMgmtInstance tmi = context.getTaskMgmtInstance();   
           
        //获取自定义的进行会签的人员   
        ServiceFactory serviceFactory = ServiceFactory.getInstance();   
        ProcessService ps = serviceFactory.getProcessService();   
        String[] actors = ps.loadTaskActors(processDefinitionId, taskId);   
           
        //根据会签人员,每人创建一个TaskInstance   
        for(String actor : actors){   
            tmi.createTaskInstance(task, token).setActorId(actor);   
        }   
    }   
}   
com.sky.plugin.jbpm.def.ConuntersignActionHandler


代码
public class ConuntersignActionHandler implements ActionHandler {   
  
    private static final long serialVersionUID = 1L;   
  
    @SuppressWarnings("unchecked")   
    public void execute(ExecutionContext context) throws Exception {   
  
        Token token = context.getToken();   
  
        TaskMgmtInstance tmi = context.getTaskMgmtInstance();   
  
        Collection<TaskInstance> unfinishedTasks = tmi   
                .getUnfinishedTasks(token);   
  
        Object variable = context.getVariable("selectedTransition");   
        String selectedTransition;   
        if (variable == null) {   
            throw new RuntimeException(   
                    "Jbpm transition error: user selected transition is null!");   
        } else {   
            // 获取当前TaskInstance选择的路径   
            selectedTransition = variable.toString();   
        }   
  
        // 如果用户选择的路径是流程定义中制定的不通过的路径,则自动完成余下所有的会签Task并转到相应路径   
        if (selectedTransition.equals("拒绝到复核人")) {   
            for (TaskInstance unfinishedTaskInstance : unfinishedTasks) {   
                // 把被结束的没有完成的TaskInstance的ActorId改为automatic complete   
                if (!unfinishedTaskInstance.hasEnded()) {   
                    unfinishedTaskInstance.setActorId("automatic complete");   
                    unfinishedTaskInstance.end("拒绝到复核人");   
                }   
            }   
        }   
    }   
  
}   
这个类对于会签是至关重要的,要通过这个Action来判断会签的情况。在这个Action中有这样几句代码:


代码
Object variable = context.getVariable("selectedTransition");   
        String selectedTransition;   
        if (variable == null) {   
            throw new RuntimeException(   
                    "Jbpm transition error: user selected transition is null!");   
        } else {   
            // 获取当前TaskInstance选择的路径   
            selectedTransition = variable.toString();   
        }   

其中的selectedTransition是用户选择的路径,也就是通过这个来判断会签的用户选择了“同意”或者“拒绝到复核人”,你可以通过流程变量的形式来保存。
如果“同意”,则继续下去,直到该TaskNode中所有的TaskInstance完成以后,通过会签,继续下去,如果选择“拒绝到复核人”,则会自动完成余下的所有TaskInstance,然后转到Transition“拒绝到复核人”,会签不通过。
其中有一句,设置所有自动完成的TaskInstance的Actor为“automatic complete”,这个可以解决在“以办事务”中出现自动完成的任务(TaskInstance)


代码
unfinishedTaskInstance.setActorId("automatic complete");  
到这里整个会签的实现都在这里了,行文有点乱。哈哈!

最后更新:2006-11-27 13:27
12:08  |   永久链接  |   浏览 (1825)  |   评论 (5)  |    收藏  |   JBPM  |   进入论坛  |   发布在 JBPM @net 圈子 

永久链接
http://tomkoo.javaeye.com/blog/34204

评论    共 5 条 发表评论

geoboy     2007-01-25 14:48
ServiceFactory serviceFactory = ServiceFactory.getInstance();
这个ServiceFactory是那个包里的啊?jbpm3.1.2没有这种用法啊


jamjar     1 星期前
这个ServiceFactory要自己写的,不是jbpm里的

分享到:
评论

相关推荐

    jbpm4jbpm5

    jbpm4jbpm5是关于jbpm流程管理框架的专题,涵盖了jbpm4和jbpm5两个主要版本。jbpm是一个开源的工作流管理系统,用于帮助开发者实现业务流程自动化。以下是基于给定文件的信息,深入解析jbpm4和jbpm5的知识点: 1. *...

    JBPM5工作流引擎 S2SH+JBPM4.4开发工作流的一个完整的请假流程例子

    JBPM5工作流引擎 S2SH+JBPM4.4开发工作流的一个完整的请假流程例子。带有文档教程和所有源码+JAR包。在网上找了半天jbpm6\jbpm7的资料,都很少。所以 环境:Myeclipse2015 JDK1.7 mysql 5.0 Struts2+Spring3.1 1...

    jbpm5安装DEMO

    ### jBPM5安装与配置详解 #### 一、引言 jBPM5是一款开源的工作流和业务流程管理(BPM)框架,基于Java语言,由JBoss提供支持。它提供了一套全面的工具和服务,用于设计、执行和监控业务流程。本文将详细介绍jBPM5...

    jbpm5环境配置、中文文档

    **jbpm5环境配置** jbpm5是一款开源的工作流管理系统,它提供了强大的业务流程管理和工作流功能。在开始使用jbpm5之前,首先需要进行环境配置。以下是对jbpm5环境配置的详细步骤: 1. **Java环境安装**:jbpm5基于...

    jboss jbpm 5 developer guide

    本书《jBPM5 Developer Guide》是一本专注于JBoss jBPM5框架的Java开发者指南,由Mauricio Salatino和Esteban Aliverti撰写,2012年由Packt Publishing出版。jBPM5是JBoss企业业务流程管理(Business Process ...

    JBPM5基于tomcat web的应用

    【JBPM5基于Tomcat Web应用详解】 JBPM5是一个开源的工作流管理系统,它提供了全面的业务流程管理和工作流解决方案。这个项目是一个基于Web的JBPM5.2实例,特别设计用于在Apache Tomcat服务器上运行。理解这个应用...

    JBPM5入门学习.doc

    ### JBPM5入门学习知识点详解 #### 一、JBPM5简介 **1.1 什么是JBPM** JBPM(Java Business Process Management)是一个开源的业务流程管理框架,旨在为开发者提供一个简单、灵活且可扩展的平台来设计、执行和...

    jBPM5_用户手册-中文版

    jBPM5 用户手册 jBPM5 是一个开源的工作流和业务流程管理(BPM)框架,专注于灵活、可扩展且与Java平台紧密结合的解决方案。这个用户手册旨在为用户提供全面的指南,涵盖从安装、建模、部署到执行和监控整个业务...

    JBPM5 整合Spring3经典案例

    **JBPM5 整合Spring3经典案例** JBPM5是一个功能强大的工作流管理系统,而Spring3则是一个广泛使用的Java企业级应用框架。将这两者整合可以实现灵活的工作流程管理和强大的业务逻辑处理。本案例主要关注如何在JBPM5...

    JBPM5请假实例,完整版

    JBPM5是一个开源的工作流管理系统,它允许开发者设计、执行和管理业务流程。在这个"JBPM5请假实例,完整版"中,我们将深入探讨如何利用JBPM5来实现一个具体的请假流程,以及在这个过程中可能遇到的关键配置问题。 ...

    jbpm4.1和jbpm5开发手册

    jbpm4.1和jbPM5是两个不同版本的Java Business Process Management(业务流程管理)框架,主要用于构建和管理业务流程。jbPM是Talend公司的一个开源项目,它提供了全面的工作流和业务流程管理解决方案,深受Java...

    jbpm5_持久化及流转流程剖析

    jbpm5是一款基于Java的企业级工作流管理系统,它在企业应用中主要用于管理和自动化业务流程。持久化和流转流程是jbpm5的核心功能,对于理解其工作原理和实际应用至关重要。 一、jbpm5简介 jbpm5是Business Process ...

    jbpm5 工作流

    【jbpm5 工作流】是基于Java的轻量级、可扩展的工作流程管理系统,其核心是一个符合BPMN 2.0标准的流程引擎。jBPM可以在任何Java环境中运行,支持作为嵌入式组件或独立服务的部署方式。它提供了全方位的工具支持,...

    jbpm5安装、配置、示例入门

    ### JBPM5 安装与配置详解 #### 一、JBPM5简介 JBPM (JBoss Business Process Management) 是一款开源的工作流引擎,用于构建业务流程自动化应用。JBPM5是JBPM的一个重要版本,提供了更为强大的工作流管理功能,...

    JBPM5 插件安装

    【JBPM5 插件安装】 JBPM5(JBoss Business Process Management)是Red Hat公司推出的一款开源工作流管理系统,它允许开发者设计、部署和执行业务流程。在JBPM5中,插件的安装是扩展系统功能的重要手段,能够帮助...

    jbpm5第一个例子

    做好myeclipse集成后,按官方的文档做第一个例子即可。 ... 一般不会的问题,从官方找就行,但上面说的也不详细,...现在jbpm5的资料太少,如果谁有一些实例加说明,能给俺分享一下就好啦。无论是跟帖还是回复的方式。

Global site tag (gtag.js) - Google Analytics