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

jbpm4 java节点动态传参

    博客分类:
  • jbpm
阅读更多
在jbpm4 beta2上实践了两天向java node传递参数,都无果而终,6月5日 jbpm4 CR1 版本发布了,并且解决了无法向java节点传递参数的bug
JBPM4 CR1 releasedhttp://www.jboss.org/feeds/post/jbpm_4_0_cr1_released
JBPM-2279 https://jira.jboss.org/jira/browse/JBPM-2279
今天参考Schema实践了一把,终于找到了能将上下文中参数传递到java节点中的方法,流程源文件(对源文件进行了少许修改,如有错误请自行调试)如下

1. 流程定义文件:
<?xml version="1.0" encoding="UTF-8"?>

<process name="test">
   <start g="208,15,92,52" name="start">
      <transition to="doCreate"/>
   </start>
   <java class="com.synnex.jbpm.test.java.TestOperator" g="330,79,92,52" method="doCreate" name="doCreate" var="ret">
      <transition to="end"/>
<!-- 关键就在这个地方,直接将变量名赋值给ref元素的object属性,在java节点中既可以取道对象的值-->
      <arg><ref object="batchNo"/></arg>
      <arg><ref object="list"/></arg>
   </java>
   <end g="223,546,48,48" name="end"/>
</process>


2. java节点文件:
package com.synnex.jbpm.test.java;

import java.util.List;

import org.apache.log4j.Logger;
import org.jbpm.pvm.internal.env.ExecutionContext;

public class TestOperator {
	
	public boolean doCreate(String batchNo, List l){
		try{
			System.out.println("----------------------------------------------batchNo = " + batchNo);
			System.out.println("----------------------------------------------list[1] = " +(String)l.get(0));
			
		}catch(Exception e){
			e.printStackTrace();
		}
		return true;
	}
}



3. Main:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.jbpm.api.Configuration;
import org.jbpm.api.ExecutionService;
import org.jbpm.api.HistoryService;
import org.jbpm.api.ManagementService;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.ProcessInstance;
import org.jbpm.api.RepositoryService;
import org.jbpm.api.TaskService;


public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {		
		Test test = new Test();
		test.deploy();
		test.start();
	}

	ProcessEngine processEngine = new Configuration()
      .buildProcessEngine();
	
	RepositoryService repositoryService = processEngine.getRepositoryService();
	ExecutionService executionService = processEngine.getExecutionService();
	TaskService taskService = processEngine.getTaskService();
	HistoryService historyService = processEngine.getHistoryService();
	ManagementService managementService = processEngine.getManagementService();
//发布流程	
	public void deploy(){
		
		long deploymentDbid = repositoryService.createDeployment()
	    .addResourceFromClasspath("com/synnex/jbpm/test/processes/test.jpdl.xml")
	    .deploy();
		System.out.println(deploymentDbid);
	}
//启动流程
	public void start(){
		Map<String,Object> variables = new HashMap<String,Object>();
//设置两个变量,一个字符串,一个List,传给Java节点
		List l = new ArrayList();
		l.add("Hello, I am a String~");
		variables.put("batchNo", "12");
		variables.put("list", l);
		ProcessInstance pi = executionService.startProcessInstanceByKey("test", variables);
	}

}

2
0
分享到:
评论

相关推荐

    JBPM4 java源代码分包详解JBPM4

    【JBPM4 Java源代码分包详解】 JBPM4是一个流行的开源工作流管理系统,它提供了一整套用于设计、执行和管理业务流程的工具。在深入研究JBPM4的源代码时,我们可以从其包结构中了解到框架的核心功能和设计理念。 1....

    JBPM采购申请系统——08_JBPM流程节点.7z

    JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM...

    jbpm4源码jbpm4源码jbpm4源码

    jbpm4是一款基于Java的企业级工作流管理系统,它提供了流程定义、执行、监控以及管理的一整套解决方案。源码分析是深入理解一个软件系统架构、设计模式和实现细节的重要途径。下面将对jbpm4的核心知识点进行详细阐述...

    JBPM例子源码 PM4.3流程实例的执行 任务与事件 用户、组与Java节点

    **JBPM4详解:流程实例执行、任务与事件、用户、组与Java节点** JBPM(Java Business Process Management)是一个开源的工作流管理系统,主要用于企业级业务流程自动化。在这个主题中,我们将深入理解JBPM4的核心...

    jbpm Java工作流 教程

    ### jbpm Java工作流 教程 #### 一、jbpm简介 JBPM(Java Business Process Model)是Red Hat提供的一款开源的工作流引擎,用于在Java应用程序中实现业务流程管理(BPM)。它基于规范化的BPMN 2.0标准,支持图形化...

    jbpm4leave.zip_DEMO_java4leave_jbpm4lea_jbpm4leave_jbpm4leave.zi

    【jbpm4leave.zip_DEMO_java4leave_jbpm4lea_jbpm4leave_jbpm4leave.zi】是一个包含Java实现的Jbpm Demo的压缩包,它主要用于展示如何利用Jbpm来设计和执行一个简单的请假流程。这个Demo是针对开发者和对业务流程...

    jbpm4jbpm5

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

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

    jBPM4作为该系列的一个版本,提供了一套完整的流程管理和执行框架,允许开发者构建灵活的工作流应用,以实现业务流程自动化。本指南由胡奇编写,旨在为开发者提供一个全面的参考,帮助他们快速学习和掌握使用jBPM4...

    jbpm jar java

    【jbpm jar java】——深入理解jbpm与Java的整合应用 jbpm,全称是JBoss Business Process Management,是一款开源的工作流管理系统,主要用于处理业务流程的建模、执行和监控。jbpm的设计目标是提供一个灵活且强大...

    jBPM4入门基础环境配置

    - **Java Development Kit (JDK)**:确保你的系统上安装了JDK 1.6或更高版本,因为jBPM4需要这个版本或以上来运行。 - **Eclipse IDE**:推荐使用Eclipse IDE,因为它有jBPM4的插件支持,可以方便地进行流程设计和...

    jbpm4之HelloWorld实例

    【jbpm4之HelloWorld实例】是一个初学者入门教程,主要介绍了如何在Java环境中使用jbpm4(Business Process Management Suite 4)框架构建一个简单的"Hello World"流程应用。jbpm4是一个开源的工作流和业务流程管理...

    基于java的jBPM4工作流引擎

    【基于Java的jBPM4工作流引擎】是企业级业务流程管理的重要工具,它提供了一种灵活且可扩展的方式来定义、执行和管理工作流。jBPM4是jBPM系列的一个版本,专为Java开发者设计,允许他们构建复杂的业务流程,通过编排...

    jbpm4流程提交及执行完整代码

    通过编写Java代码并与jbpm4引擎交互,可以实现流程的动态启动、任务分配、流程监控等功能,从而提高工作效率,规范业务流程。而上述提供的代码和文档,就是实现这一目标的基础。对于开发者来说,深入学习和理解这些...

    jBPM4工作流示例jbpmDemo

    jBPM4是一个Java平台上的业务流程管理(BPM)系统,它支持Business Process Execution Language (BPEL) 和 jPDL(jBPM特有的流程定义语言)。jPDL允许开发者使用XML来定义流程,包括任务、事件、规则和泳道等元素。...

    jbpm4.rar_jbpm_jbpm designer_jbpm4

    jbpm4.doc文件可能包含了关于jBPM 4的详细文档,包括如何安装和配置jBPM环境,使用jBPM Designer创建和编辑流程,以及如何集成jBPM到Java应用程序中的步骤。文档可能还涵盖了jBPM 4的新特性、最佳实践和常见问题解答...

    jBPM 4使用手记

    jBPM 4是基于Java的业务流程管理框架,它支持BPMN 2.0标准,使得业务流程的表示更加直观和通用。jBPM 4的核心特性包括流程建模、流程执行、持久化、事件处理、任务管理以及规则集成等。 ### 2. 流程建模 jBPM 4...

    jBPM4用户指南入门教程

    jBPM4是一个基于Java的企业级工作流管理系统,它为业务流程管理(BPM)提供了全面的解决方案。本教程将引导您逐步了解如何安装配置、使用流程设计器、部署业务归档以及利用服务和jpdl进行流程定义。 **第二章 安装...

    jBPM4完整例子

    8. **流程监控**:利用jBPM4提供的监控工具,查看流程实例的状态,如当前节点、历史记录等,帮助优化流程执行。 在"jbpm4.4_ssh2_lib.rar"文件中,包含了SSH框架和jBPM4所需的库文件,这些库文件是构建和运行项目的...

    ItcastOA.zip_itcastoa_itcastoa jbpm_java JBPM_jbpm_权限

    “ITcastOA_jbpm”和“java_jbpm”标签暗示了本项目中可能采用了Java语言和JBPM框架进行开发,这表明系统具备良好的可扩展性和可维护性。而“权限”标签则强调了对权限控制的重视,这是企业信息系统安全的基础。 总...

Global site tag (gtag.js) - Google Analytics