`
peng_joy
  • 浏览: 109972 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

jbpm4 开发拾遗

 
阅读更多

      现在项目开发又用到jbpm4了,也算是第二次搞这个了,第一次比较匆忙也没人指导,只能自己鼓捣,虽然项目是完成了,但还是留了不少疑惑。这一次再拾起来回顾了好久,也看了好些文章,总算有点体会了,上一次留下的问题也大体弄明白了,心中思路也清晰了起来。好记性不如烂笔头,功能又比较零碎,这次索性把一些常用到的东西和解决问题的思路记录下来,下次再用的时候就方便了。

 

1. 根据流程定义获取所有的流程节点Activity


          由于我对Task的执行人和表单的权限控制是单独存放的,跟流程文件没有关系,所以在部署流程成功后,需要针对  流程定义的各个Activity尤其是Task进行权限控制等操作,所以需要取到该流程定义的所有Activity,以下是代码:

RepositoryService repositoryService = processEngine.getRepositoryService();

ProcessDefinition definition = repositoryService.createProcessDefinitionQuery().processDefinitionId(definitionId).uniqueResult();

ProcessDefinitionImpl definitionimpl = (ProcessDefinitionImpl)definition;

List<? extends Activity> list = definitionimpl.getActivities();

for (Activity activity : list) {

System.out.println(activity.getName()+"--"+activity.getType());

}

  关键:把ProcessDefinition 强行转换为其实现类:ProcessDefinitionImpl ,然后调用getActivities()方法即可获取。

 

2. 对jbpm4中xxxImpl的使用

 

jBPM4本身维护的IoC容器就可以看到一个Environment。不打开Environment,里边的各种组件都没法使用。所以,如果使用ActivityImpl或者TaskImpl等impl类的话,必须要在Environment环境下进行。

启用Environment主要有两种方式:

1)

 

EnvironmentImpl env = ((EnvironmentFactory)processEngine).openEnvironment();
try{
  // do sonething;
} finally{
   env.close();
}
 

  注意:直接openEnvironment不会自动维护其中的事务,如果报session closed错误,请检查是否启用spring事务或者环境是否关闭。

2)

 

 processEngine.execute(new Command() {
    public Object execute(Environment env) {
        // do something:
    }
});
 

  注意:Command会自动打开Environment并维护其中的事务执行传入的回调方法,结束后再自动将Environment关闭。

如果只是需要获得environment中的某个组件,不需要访问数据库,就可以使用openEnvironment()。

 

例:获取当前任务的节点的Transitions集合

	/ * 获取当前任务的节点的Transitions集合 
	 * @param ExecutionId 当前流程实例id
	 * @return
	 */
	public List<Transition> getTransitions(final String ExecutionId) {
		final List<Transition> listadd = new ArrayList<Transition>();
		processEngine.execute(new Command() {
			public Object execute(Environment env) {

				ExecutionImpl e = (ExecutionImpl) executionService
						.findExecutionById(ExecutionId);

				ActivityImpl clerkOpinionActivityImpl = e.getActivity();

				List<? extends Transition> list = clerkOpinionActivityImpl
						.getOutgoingTransitions();
				for (Iterator iterator = list.iterator(); iterator.hasNext();) {
					Transition ts = (Transition) iterator.next();
					listadd.add(ts);
				}
				return list;

			}
		});
		return listadd;
	}
 

 

 

 

 

 

 

分享到:
评论

相关推荐

    JBPM4 开发文档 实例 流程

    **JBPM4 开发文档详解** JBPM4(Java Business Process Management 4)是一个轻量级的开源工作流管理系统,基于J2EE架构,旨在帮助开发者实现复杂的业务流程自动化。该项目于2004年10月18日发布2.0版本,并随后成为...

    jBPM4工作流应用开发指南.pdf

    - **环境准备:** 讲述如何搭建jBPM4开发环境,包括下载jBPM4的发行包,配置开发工具和运行时环境。 - **基础概念:** 介绍工作流、BPMN(业务流程建模符号)、jBPM4中的关键术语和概念,帮助开发者建立基础知识...

    JBPM4介绍开发步骤简介

    ### JBPM4开发步骤详解与服务接口功能解析 JBPM4是JBPM系列的一个版本,专注于提供一个轻量级的工作流引擎,适用于企业级应用的流程自动化。它以简单直观的方式设计,使得开发者能够轻松地定义、部署和执行业务流程...

    jbpm4jbpm5

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

    jbpm4 开发手册

    **jbpm4 开发手册** jbpm4 是一个开源的工作流管理系统,用于设计、执行和管理业务流程。这个开发手册集合了多个版本的文档,...无论你是新手还是有经验的开发者,这套完整的jbpm4开发手册都是不可或缺的学习资源。

    JBPM4开发实例

    【JBPM4开发实例】是关于使用JBPM4进行工作流开发的一个具体实践教程,适合初学者进行入门学习。JBPM4是一个开源的工作流管理系统,它允许开发者设计、执行和管理业务流程。在这个实例中,我们将详细介绍如何设置...

    jbpm jbpm3 jbpm4 用户和开发指南+教程+最佳实践全套

    "jbpm开发指南.pdf"可能是对jbpm4或更高版本的开发者指南,涵盖了jbpm的编程模型、API使用、集成策略等深入内容,帮助开发者构建基于jbpm的业务流程应用。这通常会包括如何使用jPDL(jbpm Process Definition ...

    jBPM4开发指南.pdf

    jBPM4是一款开源的工作流程管理系统,...总的来说,jBPM4提供了一套完整的解决方案,帮助开发人员实现灵活的业务流程管理。了解并掌握这些知识点,能有效地在项目中运用jBPM4,提升业务流程自动化水平,提高工作效率。

    JBPM4开发指南代码

    **JBPM4开发指南代码详解** JBPM4(Java Business Process Management 4)是一款开源的工作流管理系统,它提供了完整的企业级业务流程管理解决方案。本指南将深入解析JBPM4的开发过程,帮助开发者理解并掌握如何...

    jBPM4.4开发指南

    ### jBPM4.4开发指南关键知识点解析 #### 一、工作流基础与概念 **1. 工作流定义** 工作流是指业务过程的部分或整体在计算机应用环境下的自动化,其目的是为了使在多个参与者之间按照某种预定义的规则传递文档、...

    JBPM5.3开发指南

    ### JBPM5.3开发指南知识点详解 #### 一、概述 JBPM是Java Business Process Management的缩写,是一款开源的工作流引擎。本教程旨在帮助开发者快速掌握JBPM5.3的基本使用方法,包括下载安装、环境搭建以及通过具体...

    jBPM4.4开发实例

    **jBPM4.4开发实例** jBPM(Java Business Process Management)是一个开源的工作流管理系统,用于管理和执行业务流程。jBPM4.4是该框架的一个版本,它提供了强大的工作流服务,包括流程定义、流程实例管理、任务...

    jBPM4工作流应用开发指南.rar

    **jBPM4工作流应用开发指南** jBPM4是一款强大的开源工作流管理系统,它为业务流程管理和执行提供了一套完整的解决方案。本指南将深入探讨jBPM4的特性和使用方法,帮助开发者实现高效的工作流应用开发。 **1. jBPM...

    jbpm4.3 开发手册

    jbpm4.3 开发手册,chm格式文档,方便查看。

    Jbpm4学习文档chm

    **JBPM4学习文档CHM**是一份专为学习和理解JBPM4设计的工作流引擎技术文档,适合那些对工作流框架感兴趣的Java开发者,特别是希望将JBPM与Spring框架集成的人员。JBPM是一个开源的工作流程管理系统,它提供了一整套...

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

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

    jbpm4案例源码

    《jBPM4工作流应用开发指南.pdf》这本书则进一步阐述了如何利用jbpm4来构建工作流应用。 jbpm4的核心功能包括流程定义、流程执行、任务管理、事件处理和监控等。流程定义是通过Business Process Definition ...

Global site tag (gtag.js) - Google Analytics