分享

Activiti中的流程变量

 vnxy001 2019-06-24
步骤:
1绘制流程定义图2部署流程3启动流程4测试
①流程图
在这里插入图片描述
②部署流程定义
在这里插入图片描述
③启动流程实例
在这里插入图片描述
④设置流程变量
在这里插入图片描述
在这里插入图片描述
说明:
1)流程变量的作用域就是流程实例,所以只要设置就行了,不用管在哪个阶段设置
2)基本类型设置流程变量,在taskService中使用任务ID,定义流程变量的名称,设置流程变量的值。
3)Javabean类型设置流程变量,需要这个javabean实现了Serializable接口
4)设置流程变量的时候,向act_ru_variable这个表添加数据
⑤获取流程变量
在这里插入图片描述
说明:
1)流程变量的获取针对流程实例(即1个流程),每个流程实例获取的流程变量时不同的
2)使用基本类型获取流程变量,在taskService中使用任务ID,流程变量的名称,获取流程变量的值。
3)Javabean类型设置获取流程变量,除了需要这个javabean实现了Serializable接口外,还要求流程变量对象的属性不能发生变化,否则抛出异常。解决方案,固定序列化ID
⑥2.2.6.模拟流程变量的设置和获取的场景
在这里插入图片描述
在这里插入图片描述
说明:
1)RuntimeService对象可以设置流程变量和获取流程变量
2)TaskService对象可以设置流程变量和获取流程变量
3)流程实例启动的时候可以设置流程变量
4)任务办理完成的时候可以设置流程变量
5)流程变量可以通过名称/值的形式设置单个流程变量
6)流程变量可以通过Map集合,同时设置多个流程变量
Map集合的key表示流程变量的名称
Map集合的value表示流程变量的值
(3)流程变量类型
如图是从官网列出来的流程变量的类型:
在这里插入图片描述
从图中可以看出包括了大部分封装类型和Date、String和实现了Serializable接口的类的类型。如果想用javabean 作为流程变量,有两种情况:
1、是hibernate的实体类型(持久化类、映射文件)
主键的类型必须是long或者string
2、实现Serializable接口即可-讲解
在这里插入图片描述
①实现了Serializable的JavaBean
步骤如下:
1)加一个javabean,这个javabean实现了Serializable接口
在这里插入图片描述
在这里插入图片描述
2)添加流程变量
在这里插入图片描述
3)获取流程变量
在这里插入图片描述
![在这里插在这里插入图片描述
②hibernate的实体类
2.3.2.hibernate的实体类、
步骤:
1)增加持久化类Form
注意:这个是实体类必须为final
2)增加映射文件Form.hbm.xml
3)在jbpm.hibernate.cfg.xml中添加映射文件
在这里插入图片描述
4)查询时用下面的方法:
在这里插入图片描述
(4)疑问
流程变量表没有存储taskid,那么我们之前怎么通过TaskId获取的流程变量数据??
在这里插入图片描述

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多