JBPM学习(五):流程变量

最近发现这篇文章挺多人看的,也挺多人有疑问,我很想帮你们解答,但是很无奈,这篇文章只是我当时在自学时看的一个教程的记录,当时对JBPM也没有深入去学习,并且到现在也已经快4年了,这期间我都没用过JBPM,因此JBPM的东西我也忘得差不多了。庆幸的是我把当时看的教程保存了下来,因此如果对此文章有疑问的可以直接看JBPM的教程。另外,通过我分享的视频大家也能看到这是一个OA教程,我当时刚入门自学Java时就看过这个教程,这是一个使用Spring+Struts 2 +Hibernate框架搭建OA的教程,我自己觉得是一个很不错的教程,讲师的声音很好听,听了让人很舒服,特别适合新手。因此如果你想要关于这个OA教程的其他内容,可以关注我的公众号【程序员囧辉】,发送【资料】自行获取,不仅有JBPM、OA,还有各种BAT一线大厂面试题,自学教程等资料。

 

作者更新于2020-06-04

 

 

1.启动流程实例

 

// 启动流程实例
@Test
public void startProcessInstance() {
	// 使用指定key的最新版本的流程定义启动流程实例
	ProcessInstance pi = processEngine.getExecutionService().startProcessInstanceByKey("test");
	System.out.println("processInstanceId=" + pi.getId());
}

 

 

 

2.设置流程变量

a) 一个设置流程变量实例

 

//设置流程变量
@Test
public void setVariable() {
	String executionId = "test.140001";
	String name = "请假天数";
	Integer value = 3;

	//将name为"请假天数",value=3的流程变量设置到executionId为test.140001的执行对象上
	processEngine.getExecutionService().setVariable(executionId, name, value);
}
 

 

b) 所有设置流程变量方法

用到变量的类型:

 

Object value = "";
String executionId = "";
String taskId = "";
String name = "";
String processDefinitionKey = "";
String variableName = "";
Set<String> variableNames = new HashSet<String>();
Map<String, Object> variablesMap = new HashMap<String, Object>();

 

具体方法:

 

// 根据Execution设置一个流程变量
processEngine.getExecutionService().setVariable(executionId, name, value);
// 根据Execution设置多个流程变量(需要先把流程变量放到一个Map中)
processEngine.getExecutionService().setVariables(executionId, variablesMap);

// 根据Task设置多个流程变量(需要先把流程变量放到一个Map中,通过Task方法,它会先找到它所属的Execution然后设置流程变量)
processEngine.getTaskService().setVariables(taskId, variablesMap);

// 使用指定key的最新版本的流程定义启动流程实例,并设置一些流程变量
processEngine.getExecutionService().startProcessInstanceByKey(processDefinitionKey, variablesMap);
// 办理完指定的任务,并设置一些流程变量
processEngine.getTaskService().completeTask(taskId, variablesMap);
 

 

3.获取流程变量

a) 一个获取流程变量实例

 

//获取流程变量
@Test
public void getVariable() {
	String executionId = "test.140001";
	String variableName = "请假天数";

	//从executionId为test.140001的执行对象上取出流程变量名为"请假天数"的流程变量的value
	Integer value = (Integer) processEngine.getExecutionService().getVariable(executionId, variableName);
	System.out.println(variableName + " = " + value);
}
 

 

b) 所有获取流程变量方法

用到变量的类型:

 

String executionId = "";
String taskId = "";
String variableName = "";
Set<String> variableNames = new HashSet<String>();

 

具体方法:

 

// 根据Execution获取指定名称的一个流程变量
processEngine.getExecutionService().getVariable(executionId, variableName);
// 根据Execution获取所有流程变量的名称
processEngine.getExecutionService().getVariableNames(executionId);
// 根据Execution获取指定名称的所有流程变量
processEngine.getExecutionService().getVariables(executionId, variableNames);

// 根据Task获取指定名称的一个流程变量
processEngine.getTaskService().getVariable(taskId, variableName);
// 根据Task获取所有流程变量的名称
processEngine.getTaskService().getVariableNames(taskId);
// 根据Task获取指定名称的所有流程变量
processEngine.getTaskService().getVariables(taskId, variableNames);
 

 

4.流程变量所支持的值的类型(jBPM User Guide,7.2. Variable types)

jBPM supports following Java types as process variables:

 

  • java.lang.String 
  • java.lang.Long 
  • java.lang.Double 
  • java.util.Date 
  • java.lang.Boolean 
  • java.lang.Character 
  • java.lang.Byte 
  • java.lang.Short 
  • java.lang.Integer 
  • java.lang.Float 
  • byte[] (byte array) 
  • char[] (char array) 
  • hibernate entity with a long id 
  • hibernate entity with a string id 
  • serializable

 

For persistence of these variable, the type of the variable is checked in the order of this list. The first match will determine how the variable is stored. 

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
2017年jBPM 正式发布了全新的 7版本。jBPM 是一个完全开源的业务流程管理(BPM)和案例管理解决方案。它支持流程和案例的完整生命周期,从编写工具到执行一直到监控和管理。 在核心引擎之上,提供了许多功能和工具来支持整个生命周期中的业务流程: 基于Eclipse和基于Web的编辑器,用于支持业务流程的图形化创建(拖放)。 基于JPA / JTA的可插拔持久性和事务。 基于WS-HumanTask的可插拔人工任务服务,用于包含需要由人类执行者执行的任务。 管理控制台支持流程实例管理,任务列表和任务表单管理以及报告。 部署流程的可选流程仓库(和其他相关知识)。 历史记录(用于查询/监视/分析)。 与Seam,Spring,OSGi等集成 BPM通过以业务用户和开发人员喜欢的方式提供流程管理功能和工具,从而实现业务分析师,开发人员和最终用户之间的桥梁。域特定的节点可以插入调色板,使业务用户更容易理解这些过程。 jBPM支持自适应和动态过程,需要灵活性来模拟复杂的现实生活中的情况,这些情况不能用刚性过程轻松描述。我们通过允许他们控制进程的哪些部分来执行,动态地偏离进程等,使控制回到终端用户。 jBPM也不仅仅是一个独立的流程引擎。复杂的业务逻辑可以被建模为业务流程与业务规则和复杂事件处理的组合。jBPM可以与Drools项目相结合,以支持将这些范例集成到一起的统一环境,您可以将业务逻辑作为过程,规则和事件的组合进行建模。 工作是MAVEN+eclipse jBPM jars也可以在中央maven仓库中使用 (也可以在JBoss maven仓库中)。 如果您使用Maven,只需添加一个依赖关系pom.xml: org.jbpm jbpm-test 7.3.0.Final 这与Gradle,Ivy和Buildr类似。
JBPM(Java Business Process Management)是一个基于Java的开源业务流程管理框架,结合Idea(智慧,创意)可以提供一种更强大的业务流程管理解决方案。 集成JBPM能够帮助企业更好地管理和优化业务流程,提高工作效率,实现业务自动化。利用JBPM流程引擎,可以将复杂的业务流程分解为一系列简单的任务和决策节点,通过流程图的形式直观地展示整个流程的执行路径。这种可视化的方式使得流程的定义、执行和监控更加方便和直观。 通过集成JBPM和Idea,可以实现以下功能和优势: 1. 流程设计和优化:通过Idea的创意和智慧,可以更好地设计和优化业务流程。基于JBPM流程引擎,可以快速创建和调整流程,根据实际需求进行灵活的修改和优化。 2. 流程自动化:借助JBPM的工作流引擎,可以将人工操作和决策节点与系统集成,实现业务流程的自动化。这样可以节省大量人工操作的时间和精力,提高工作效率。 3. 流程监控和跟踪:通过JBPM流程监控功能,可以实时跟踪流程的执行状态和进度。结合Idea的创意,可以提供更多的监控指标和报表,帮助管理者更好地掌握和分析流程的运行情况,及时发现问题并进行调整。 4. 异常处理和决策支持:JBPM可以支持在流程中进行异常处理和决策,通过Idea的智慧,可以实现更加灵活和智能的异常处理和决策支持。这可以帮助企业快速响应和处理异常情况,提高业务的灵活性和应变能力。 综上所述,通过集成JBPM和Idea,可以提供一个更强大和智能的业务流程管理解决方案。这不仅可以提高企业的工作效率和运营质量,还可以帮助企业更好地适应和应对市场变化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员囧辉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值