在现有的应用上,接入jBPM,要修改的就是jBPM的用户体系。
jBPM的用户体系,在数据库中有以下几张表:
JBPM4_ID_USER : jBPM的用户表
JBPM4_ID_GROUP : jBPM的用户组表
JBPM4_MEMBERSHIP : 用户和用户组之间的关系
JBPM4_TASK : 任务表,其中的assignee_表示这个任务有谁来完成
JBPM4_PARTICIPATION : 可选的用户或者用户组,一个任务可以有一些用户/用户组中的成员来完成,记录在这个表中
JBPM4_SWIMLANE :泳道,现在还未仔细的看
-----------------------------------------------------------
jBPM4对外服务的时候,和用户、用户组相关的服务,都有IdentityService来进行(具体有IdentityServiceImpl来实现)。
通过Command模式,交由下层来进行具体的实现
具体的实现都是交给接口IdentitySession来进行的,
具体的实现有2个:IdentitySessionImpl,JBossIdmIdentitySessionImpl。
现在自己程序中,一般都有IdentitySessionImpl来进行处理。
-----------------------------------------------------------------
接入到自己的系统:
一般情况下,如果在自己的系统中,明确的每个任务都是由指定的人员来完成,或者在进入Task的时候,在AssignmentHandler中能够直接确定工作者,就不需要修改jBPM了。
如果需要使用到jBPM的taskService的findGroupTasks,或者需要通过jBPM的自动发邮件的功能,则需要对jBPM做一些修改,将jBPM获取用户的方式转接到自己的系统来。
现在考虑具体的实现,就是更换掉jBPM的 IdentitySessionImpl,用自己原有的方式来替换它。
----- 原来考虑替换 IdentityServiceImpl,看了一下jBPM内部的一些代码,发现在pvm中,有地方是直接获取IdentitySession的,所以替换IdentityServiceImpl不能实现要求。
获取接口IdentitySession,通过以下方式来的:
EnvironmentImpl.getFromcurrent(IdentitySession.class)
或者是:
environment.get(IdentitySession.class)
EnvironmentImpl 是保存在 ThreadLocal中的,
------------------------------------------------------------------------------------------------------------
jBPM4的IoC的方式见:以下链接:
http://www.opug.org.cn/node/87 或
http://www.iteye.com/topic/381607
Jbpm4透过WireParser具备从xml加载的能力,wire的相关配置文件为:jbpm.wire.bindings.xml,其中包含了对IdentitySession的定义:
<binding class="org.jbpm.pvm.internal.wire.binding.IdentitySessionBinding" />
在jBPM4中,缺省的是绑定:org.jbpm.pvm.internal.wire.binding.IdentitySessionBinding
public Object parse(Element element, Parse parse, Parser parser) {
ObjectDescriptor objectDescriptor = new ObjectDescriptor(IdentitySessionImpl.class);
objectDescriptor.addTypedInjection("session", Session.class);
return objectDescriptor;
}
IdentitySession的实现是: IdentitySessionImpl.class
同时给该类的session属性,注入Session.class
public class IdentitySessionImpl implements IdentitySession {
protected Session session;
如果要替换,只要自己继承IdentitySession,实现一个其功能的类。
同时自己在完成一个binding类,修改jBPM的配置即可。
---------
在identitySession中,使用到User和group接口(都在org.jbpm.api.identity),而且这个接口相对简单,如果自己要使用,可以在几个基础上再进行继承。
别人的文章:
1
分享到:
相关推荐
jbpm jbpm4.3.jar DDDDDDDD
### jbpm4服务接口方法汇总 #### Process Engine与Service组件概览 在JBPM框架中,`ProcessEngine`是核心的工厂类,负责提供一系列的服务接口。这些接口为流程管理和控制提供了必要的支持。通过初始化`...
jbpm4jbpm5是关于jbpm流程管理框架的专题,涵盖了jbpm4和jbpm5两个主要版本。jbpm是一个开源的工作流管理系统,用于帮助开发者实现业务流程自动化。以下是基于给定文件的信息,深入解析jbpm4和jbpm5的知识点: 1. *...
在JBPM中,这可能用于触发基于邮件的通知或工作流步骤,比如当某个任务完成或者需要用户介入时发送提醒。 这些JAR文件的组合表明,这个压缩包是为了支持JBPM 4.4的运行环境或者开发环境准备的。开发者或系统管理员...
- **jBPM4:** jBPM4 是一款轻量级的工作流管理系统,支持业务流程的建模、执行、监控和管理。它采用了一种基于Java的流程定义语言(jPDL),以及适合复杂和动态业务流程的图形化流程编辑器。 - **开发指南:** 该...
在实施基于JBPM的OA办公系统时,开发人员需要完成以下步骤: - **流程设计**:使用BPMN工具设计流程图,定义流程节点、转换条件、参与者角色等。 - **代码实现**:编写Java服务实现业务逻辑,与流程引擎交互,如...
**JBPM4_VARIABLE** - 上下文表 - **描述**: 存储流程执行过程中的变量信息。 - **字段说明**: 包括变量名、值、类型等。 - **操作信息**: 创建或修改变量时,此表新增或更新记录。 #### 11. **JBPM4_HIST_DETAIL*...
- **架构简介**:JBPM5基于Drools Flow构建,是JBPM系列的新版本,相较于JBPM4在架构上有较大的改变。它同样支持BPMN标准,并引入了规则引擎,提高了灵活性。 - **优势**: - 引入规则引擎,更好地应对业务规则...
**jBPM4用户指南入门教程** jBPM4是一个基于Java的企业级工作流管理系统,它为业务流程管理(BPM)提供了全面的解决方案。本教程将引导您逐步了解如何安装配置、使用流程设计器、部署业务归档以及利用服务和jpdl...
【jbpm4基本jar包】是企业级工作流管理系统Jboss Business Process Management Suite(简称jbpm)的一个核心组件集合。jbpm4是一个开源的工作流程管理框架,它提供了强大的业务流程建模、执行和监控能力,使得开发...
jbpm4是一个开源的工作流程管理系统,它为企业的业务流程自动化提供了强大的支持。这个"jbpm4案例源码"包含了jbpm4系统的核心组件和示例代码,帮助开发者深入理解jbpm4的工作原理和实践应用。《jBPM4工作流应用开发...
- **Java Development Kit (JDK)**:确保你的系统上安装了JDK 1.6或更高版本,因为jBPM4需要这个版本或以上来运行。 - **Eclipse IDE**:推荐使用Eclipse IDE,因为它有jBPM4的插件支持,可以方便地进行流程设计和...
1. **Spring配置JBPM4**:首先,我们需要在Spring的配置文件中声明对JBPM4的依赖,包括数据源、事务管理器以及JbpmContext的bean。数据源用于连接数据库存储的流程实例信息,事务管理器确保流程操作的原子性,而...
3. **设置环境变量**:为了方便后续的开发和调试,需要在系统环境变量中添加JBPM的相关路径。例如,可以设置`JBPM_HOME`指向解压后的目录,并将`PATH`变量包含`%JBPM_HOME%\bin`,以便于执行jbpm相关的命令。 4. **...
这个"jBPM4完整例子"是一个基于SSH(Struts2、Spring、Hibernate)框架集成jBPM4.4的请假流程应用,非常适合初学者了解如何在实际项目中运用jBPM4进行工作流开发。 首先,我们来详细了解一下SSH框架。SSH是Java Web...
JBPM4(Java Business Process Management 4)是一个轻量级的开源工作流管理系统,基于J2EE架构,旨在帮助开发者实现复杂的业务流程自动化。该项目于2004年10月18日发布2.0版本,并随后成为JBoss企业中间件平台的一...
**jbPM4工作流示例jbpmDemo**是一款基于jBPM4的工作流管理系统实例,旨在帮助用户深入了解和掌握jBPM4工作流引擎的使用方法。jBPM4是一款强大的开源工作流管理系统,它提供了流程建模、执行以及监控等功能,广泛应用...
在jbpm4web中,用户还可以进行流程控制操作,如驳回任务回到上一步骤,或者在某些情况下终止流程。这些控制功能有助于适应业务变化,确保流程的灵活性。 5. **流程监控**: 为了评估流程效率和找出改进点,jbpm4...
3. **持久化管理(Persistence)**:JBPM4利用Hibernate进行数据持久化,保证流程实例在系统重启后能够恢复。 4. **监听器(Listeners)**:允许在流程生命周期的不同阶段添加自定义行为,如开始、结束、任务分配等...