`
awtqty_zhang
  • 浏览: 92628 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JBPM4.4学习三------定义自己的用户关系

    博客分类:
  • jbpm
阅读更多

很多时候,JBPM自己提供的用户系统是不够用的,这时候就要求我们自己去扩展自己的用户体系,如使用角色来区分用户的权限。JBPM允许外挂一个用户体系。这时我们需要修改一些配置,如下:

一、修改spring-jbpm4.cfg.xml(该文件在配置Spring文件时引入的)。

1、注释<import resource="jbpm.identity.cfg.xml" />
2、增加如下代码:

<transaction-context>
        <hibernate-session current="true"/>    
        <object  class="jbpm.service.IMyJbpmServiceImpl"/>    
</transaction-context>

说明:此步操作是为了让JBPM操作时,调用自己编写的方法,其中jbpm.service.IMyJbpmServiceImpl为我们自己编写的service代码。

二、 建立IMyJbpmServiceImpl类

该类需要实现org.jbpm.pvm.internal.identity.spi.IdentitySession接口。并重写里面的方法,本人测试时使用的方法为findGroupsByUser,所以只重写了该方法。

        注:在编写的过程中,如果需要使用我们自己定义的接口,则获得接口的方法与通过Spring注入时获得的方法不同,需要使用EnvironmentImpl.getFromCurrent方法获得。
       如:

private IUserRightService userRightService =  EnvironmentImpl.getFromCurrent(IUserRightService.class);

 

三、 重写findGroupsByUser方法:

重写时,需要将你自己的分组对应的类实现org.jbpm.api.identity.Group接口,如:我测试时使用的为Role类,则将此类实现Group接口,在findGroupsByUser方法中直接返回查找出来的Role信息。
也可以不需要实现Group接口,直接将你自己查找出的分组信息封装到JBPM的Group中去。
如:

public List<Group> findGroupsByUser(String arg0) {
        List<TRole> list =  new ArrayList<TRole>();
        try {
            list = userRightService.findRoleByUserId(Integer.parseInt(arg0));
        }catch (Exception e) {
            e.printStackTrace();
        }
        List<Group> gList = new ArrayList<Group>();
        for(final TRole r : list){
            if(r == null){
                continue;
            }
            Group g = new Group() {
               
                @Override
                public String getType() {
                    return null;
                }
               
                @Override
                public String getName() {
                    return r.getName();
                }
               
                @Override
                public String getId() {
                    return r.getId().toString();
                }
            };
            gList.add(g);
        }
        return gList;
    }

如此配置后,调用List<Task> taskList = taskService.findGroupTasks(user.getId().toString());时,系统则会执行上面重写的方法。

1
1
分享到:
评论
8 楼 awtqty_zhang 2013-01-10  
cdh111007 写道
请问为什么按照你的方法,运行总是出错;
EnvironmentImpl.getFromCurrent(DbSession.class);
报错信息为:no environment to get org.jbpm.pvm.internal.session.DbSession

不好意思,我对这方面理解还不到家,所以不能帮你解释这个问题~~
7 楼 awtqty_zhang 2013-01-10  
田里禾栽 写道
注:在编写的过程中,如果需要使用我们自己定义的接口,则获得接口的方法与通过Spring注入时获得的方法不同,需要使用EnvironmentImpl.getFromCurrent方法获得。--------------------------帮了我大忙了,多谢

我也是使用的时候在网上找了相关资料看后写的,相互学习。
6 楼 xiaobojava 2012-12-11  
cdh111007 写道
请问为什么按照你的方法,运行总是出错;
EnvironmentImpl.getFromCurrent(DbSession.class);
报错信息为:no environment to get org.jbpm.pvm.internal.session.DbSession



我也报错,后来是用了:
EnvironmentImpl.getFromCurrent("配置在Spring里面的bean的名称");没有报错,你试试。
5 楼 cdh111007 2012-10-29  
请问为什么按照你的方法,运行总是出错;
EnvironmentImpl.getFromCurrent(DbSession.class);
报错信息为:no environment to get org.jbpm.pvm.internal.session.DbSession
4 楼 田里禾栽 2012-10-22  
注:在编写的过程中,如果需要使用我们自己定义的接口,则获得接口的方法与通过Spring注入时获得的方法不同,需要使用EnvironmentImpl.getFromCurrent方法获得。--------------------------帮了我大忙了,多谢
3 楼 peng_joy 2012-06-21  
awtqty_zhang 写道
不好意思啊,最近几天没有上网没有即时回复,对于这个我也还不是很理解,只是刚接触到,你说的这种方法我没有去研究过

呵呵,谢谢,我试过了,应该是不影响的,楼主加油,互相学习!
2 楼 awtqty_zhang 2012-06-21  
不好意思啊,最近几天没有上网没有即时回复,对于这个我也还不是很理解,只是刚接触到,你说的这种方法我没有去研究过
1 楼 peng_joy 2012-06-17  
楼主,如果此时是候选者即candidate-users="userID1,userID2,userID3",那么taskService.findGroupTasks("userID2")时,也会执行自定义的findGroupsByUser方法,此时还能取到本应该取到的任务吗?

相关推荐

    jBPM4.4.rar_jbpm4.4_jbpm4.4 PDF

    《jBPM4.4开发指南》与《jBPM4.4中文用户手册》是深入理解jBPM4.4这一开源工作流管理系统的重要参考资料。jBPM,全称Java Business Process Management,是一个用于执行业务流程的轻量级、灵活的开源框架,它为业务...

    jbpm-4.4.zip part03

    【jbpm-4.4.zip part03】这个压缩文件是关于jbpm 4.4...jbpm 4.4版本是其历史版本中的一个重要里程碑,尽管可能不如最新版本那样拥有最新的特性和改进,但对于学习和理解工作流管理系统的运作机制仍然具有很高的价值。

    jbpm4.4文档+学习资料

    三、jbpm4.4学习路径 1. 基础概念:首先需要了解BPM的基本概念,如流程实例、任务、事件、信号等。 2. 工具使用:学习使用jbpm提供的图形化建模工具,创建和编辑流程模型。 3. API及编程接口:深入理解jbpm的API,如...

    jBPM 4.4用户手册 中文PDF

    《jBPM 4.4 用户手册》中文版提供了全面的指南,涵盖了从安装、配置、建模、执行到监控的各个环节,是学习和使用jBPM 4.4的重要参考资料。通过阅读这份手册,开发者和业务分析师可以深入了解jBPM的功能和用法,快速...

    jBPM4.4开发指南

    #### 三、jBPM4.4环境配置示例 **1. jBPM4.4所需环境** - JDK (Java Development Kit) 5 或更高版本 - Apache Ant 1.7.0 或更高版本 **2. 下载相关资源** - jBPM:[jBPM 官方下载]...

    jbpm4.4下载地址

    3. **用户界面**:为了便于非技术背景的用户使用,jBPM 4.4提供了图形化的设计工具,允许用户通过拖放操作来构建复杂的业务流程,而无需编写任何代码。 4. **事件驱动架构**:jBPM 4.4采用了事件驱动的架构,这意味...

    jbpm4.4开发用户指南

    通过深入学习这两份指南,无论是开发者还是最终用户,都能获得全面的jBPM 4.4知识,从而有效地实施和管理业务流程。对于想要利用jBPM进行企业流程优化或自动化的人来说,这些都是不可或缺的参考资料。

    JBPM4.4流程管理Demo(附学习资料)

    【JBPM4.4流程管理Demo】是一个基于JBPM4.4版本的示例项目,主要展示了如何在实际业务场景中应用工作流引擎进行流程管理,特别是报销流程的管理。这个Demo不仅包含了可运行的代码,还附带了学习资料和SQL文件,方便...

    jBPM4.4开发实例

    通过这个入门实例,开发者可以学习到如何使用jBPM4.4进行流程设计、部署和执行的基本操作,并逐步掌握其在实际项目中的应用。在实践中不断探索和深入,才能更好地利用jBPM4.4实现业务流程自动化,提高工作效率。

    jbpm_4.4完整架包

    通过下载并解压“jbpm_4.4完整架包”,用户可以获得jbpm所有必要的JAR文件、示例、文档以及配置文件,从而开始进行开发和部署基于jbpm的工作流系统。在实际使用中,开发人员需要了解jbpm的相关概念和API,以便有效地...

    jbpm4.4-demo

    【jbpm4.4-demo】是一个基于jbpm4.4版本的完整演示项目,它包含了所有必要的组件和配置,使得用户可以直接下载并运行,体验一个请假流程的示例。jbpm(Java Business Process Management)是一个开源的工作流和业务...

    jbpm4.4入门编程小例子

    **jbpm4.4入门编程小例子** ...通过学习这个入门编程小例子,你可以了解如何使用jbpm4.4定义流程、启动流程实例、执行任务以及监控流程状态。这将为你在实际项目中应用工作流管理打下坚实的基础。

    jbpm4.4 shh2 项目示例

    jbpm4.4 shh2 项目示例是基于jbpm4.4版本与SSH2(Struts2、Spring和Hibernate)集成的一个实战项目。jbPM(Business Process Management)是一款开源的工作流管理系统,用于实现业务流程自动化。SSH2是Java开发中的...

    jbpm4.4中文开发指南

    **jbpm4.4中文开发指南**作为官方翻译版,为中文用户提供了详细的学习资料,涵盖了jbpm4.4的所有核心概念和技术,是新手入门和进阶的理想参考。通过阅读《jbpm4.4开发指南.doc》,读者可以系统了解jbpm的工作原理、...

    jbpm-4.4.zip

    通过解压jbpm-4.4.zip,你可以得到jbpm 4.4的完整安装包,包括源码、文档、示例以及相关的库文件,这对于学习、开发和部署基于jbpm的工作流应用非常有帮助。在深入研究之前,建议先熟悉BPMN 2.0标准,理解工作流的...

    jbpm4.4用户手册中文版

    【jbpm4.4用户手册中文版】是针对企业级工作流管理系统的详细介绍,主要针对jbpm 4.4版本。这个手册旨在帮助开发者、系统管理员以及业务分析师理解和使用jbpm来实现工作流程自动化。jbpm是一个开源的业务流程管理...

    JBPM4.4资料的其他补充

    JBPM4.4是JBPM的其中一个稳定版本,发布于2009年,它提供了强大的工作流服务,包括流程定义、流程实例管理、任务管理和监控等功能。在JBPM4.4版本中,开发者可以利用其提供的API和工具来设计、部署和执行复杂的业务...

    jbpm4.4学习教程

    jbpm4.4学习教程是一套专为初学者设计的教育资源,旨在帮助用户掌握jbpm这一业务流程管理(Business Process Management)框架的第4.4版本。jbpm是一款开源的Java平台工具,它允许开发者设计、执行和管理业务流程,...

    JBPM4.4例子

    在JBPM4.4中,通常会结合jsp(JavaServer Pages)和servlet来构建用户界面和服务器端逻辑。以下是一般步骤: - **环境搭建**: 首先,你需要从JBPM官网下载对应版本的jar包,包括jbpm-runtime、jbpm-gwt-console-...

Global site tag (gtag.js) - Google Analytics