在jbpm4 beta2上实践了两天向java node传递参数,都无果而终,6月5日 jbpm4 CR1 版本发布了,并且解决了无法向java节点传递参数的bug
JBPM4 CR1 released
http://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);
}
}
分享到:
相关推荐
java源代码分包详解JBPM4 java源代码分包详解JBPM4
JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM...
jbpm教程、jbpm动态设置参与者、jbpm实例下载
jbpm4源码jbpm4源码jbpm4源码
jbpm java
jbpm工作流教程,4.1版本的Java工作流
5.1表JBPM4_DEPLOYMENT 7 5.2 表JBPM4_DEPLOYPROP 7 5.3 表JBPM4_EXECUTION 8 5.4 表JBPM4_HIST_ACTINST 9 5.5 表JBPM4_HIST_DETAIL 9 5.6 表JBPM4_HIST_PROCINST 10 5.7 表JBPM4_HIST_TASK 11 5.8 表JBPM4_HIST_VAR...
风中叶老师讲的OA工作流系统中JBPM4部分的源码, 源码实现部分包括jBPM4.3流程实例的执行 任务与事件 用户、组与Java节点
工作流实例 jbpm4.3 java 可以和SSH结合
jboss jbpm4最新开发包 采用了pvm框架
jbpm(java 企业工作流程管理)开了包(全)
jbpm应用开发指面(胡奇) jbpm4.3表结构和表字段说明 [jBPM开发指南].高杰.文字版 jBPM5_用户手册-中文版
jbpm4。4中表之间的关系,jbpm4 表关系
jBPM4工作流应用开发指南 胡奇写的,十分赞!!
java 实现的jbpm Demo,一个简单的请假流程
JBPM4 SSH EXTJS JBPM SSH EXTJS JBPM4 SSH EXTJS JBPM SSH EXTJS JBPM4 SSH EXTJS JBPM SSH EXTJS JBPM4 SSH EXTJS JBPM SSH EXTJS 希望对大家有帮助。
JBPm工作流,权限设计 JBPm工作流,权限设计
jBPM,全称是Java Business Process Management,是一种基于J2EE的轻量级工作流管理系统。jBPM是公开源代码项目,它使用要遵循 Apache License。jBPM在2004年10月18日,发布了2.0版本,并在同一天加入了JBoss,成为...
这是jbpm4的安装配置介绍文件,详细的介绍了jbpm4与eclipse的集成
,jbpm4的源码,分支,会签等一些中国特色建立下载《jBPM4工作流应用开发指南.pdf》这本书