步骤: 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获取的流程变量数据?? |
|