业务流程运行过程中的变量管理
JBPM支持变量类型
l java.lang.String
l java.lang.Long
l java.lang.Double
l java.util.Date
l java.lang.Boolean
l java.lang.Character
l java.lang.Byte
l java.lang.Short
l java.lang.Integer
l java.lang.Float
l byte[] (byte array)
l char[] (char array)
l hibernate entity with a long id(自增主键)
l hibernate entity with a string id (UUID主键)
l serializable (任何对象只要实现Serializable接口,都可以保存到jbpm)
变量保存 jbpm4_variable 数据表中
1、在流程启动时,设置变量
2、 查询变量 ,通过ExecutionService根据 executionId查询
3、 通过TaskService 保存变量
注:变量保存和流程实例编号绑定到一起,只要该流程实例相关的Service都可以读写流程实例的变量数据。
获取变量,通过TaskService 根据 taskId 获取
1、 对于Serializable对象变量保存
在 jbpm4_variable表插入变量数据 ,CLASS: blob, CONVERTER: ser-bytes
在 jbpm4_lob存入 java对象序列化后字符串
2、 保存持久化对象PO
注:JBPM4.4 集成 hibernate3.3.1无法用注解
在 jbpm4_variable表插入变量数据 CLASS: hib-long,
CLASSNAME : cn.itcast.domain.Product , LONG_VALUE : 1
注:保存PO对象,JBPM只保存对象持久化的标识OID