流程变量

  • 数据存储
  • 设计方法
  • Snaker的流程变量
  • 变量数据获取

流程引擎在设计的过程中,需要考虑数据的分类存储

数据存储

业务数据

一般保存在业务表中

流程数据

一般保存在流程引擎的表中,如`wf_process` `wf_order` `wf_task`等

关联数据

流程变量保存的就是关联数据

设计方法

变量表

目前主流的流程引擎如Jbpm、Activiti都常用变量表方式,其优点是支持丰富的变量类型,变量值无长度限制,支持查询。缺点是很多使用者过于依赖变量表,将大部分业务数据保存在变量表中,数据过多时性能急剧下降。

变量字段

变量字段方式适用于中小型流程平台,只支持少量字段的存储,强制用户适用业务表保存业务数据,流程变量仅保存少量的关联数据。变量数据随实例、任务记录一次查询即可获得。但是缺点也很明显,不支持关联数据的查询,如果需要查询,只能将关联数据在业务表重复保存一份。

snaker的流程变量

snaker使用变量字段保存关联数据的方式,并支持在运行时动态添加全局变量数据

全局变量

全局变量的作用域是流程实例从启动至结束的所有过程

局部变量

局部变量的作用域是任务执行的单个过程

动态添加全局变量数据,可通过addVariable方法完成。

engine.order().addVariable(String orderId, Map<String, Object> args)

变量数据获取

变量数据取可通过实例对象OrderHistoryOrder、任务对象TaskHistoryTaskgetVariableMap()方法获取

results matching ""

    No results matching ""