摘要:本文重点讲解flowable中dataObject的使用,Flowable框架中强化了dataObject元素的作用,在Flowable中的modler设计器中,已经支持该元素的添加操作。这个相对于activiti而言已经进步了不少。dataObject可以在process中配置、可以在任务节点中配置,也可以在子流程中进行配置。下面我们开始讲解如何在process中配置dataObject。
配置dataObject
流程文档如下:
<process id="valuedDataObjectModel" name="Data Object Model" isExecutable="true">
<dataObject id="dObj1" name="StringTest" itemSubjectRef="xsd:string">
<extensionElements>
<activiti:value><![CDATA[Testing1&2&3]]></activiti:value>
</extensionElements>
</dataObject>
<startEvent id="start1"></startEvent>
<endEvent id="end1"></endEvent>
上面的文档中,我们在process里面配置了一个dataObject,id是dObj1,类型是字符。
启动流程实例观察数据
下面,我们开始部署上述的流程文档,并启动流程实例,示例代码如下:
@Test
public void deploy() {
Deployment deploy = repositoryService
.createDeployment()
.addClasspathResource("com/shareniu/shareniu_network_flowable/test/valueddataobjectmodel.bpmn")
.category("ExclusiveGateWay")
.name("费用报销流程")
.key("ExclusiveGateWay")
.deploy();
Map<String, Object> variables=new HashMap<String, Object>();
variables.put("money", 700);
ProcessInstance pi = runtimeService.startProcessInstanceByKey("valuedDataObjectModel", variables);
System.out.println(pi.getId());
}
数据库中ACT_RU_VARIABLE表新增了几个变量,如下图所示:
总结
在process中配置的 dataObject元素值可以作为全局的变量进行使用,支持的类型如下:
xsd:string
xsd:boolean
xsd:datetime
xsd:double
xsd:int
xsd:long
xsd:datetime
转载请注明:分享牛 » flowable中dataObject使用