warm-flow 1.2.8版本更新,新增办理人变量表达式和条件表达式支持spel
-
【升级注意事项】
- 本次升级,内置json库snack3方式,改为spi方式加载,业务项目中存在哪种json就会使用哪种的实现,
支持顺序按顺序加载一种:snack3、jackson、fastjson、gson,并且目前只实现了这四种,可扩展 - 如在未集成snack3库的环境下,还需要使用snack3库,需要单独使用(原组件使用snack3库)
<dependency> <groupId>org.noear</groupId> <artifactId>snack3</artifactId> <version>3.2.88</version> </dependency>
- 本次升级,内置json库snack3方式,改为spi方式加载,业务项目中存在哪种json就会使用哪种的实现,
-
更新日志
- [feat] json库支持snack3、jackson、fastjson和gson,并且支持扩展
- [feat] 增加办理人变量表达式,支持${xxx}替换和spel,并支持扩展
- [feat] ListenerVariable监听器变量新增FlowParams字段,方便开始监听器全局传递参数
- [feat] 终止新增对开始和完成监听器的支持
- [update] springboot项目的条件表达式默认支持spel
- [update] 历史记录改为单条保存,删除重复代码
- [update] 修改FlowUserDao的bean名称
- [update] 中间节点拆分为或签,会签,票签
- [fix] 修复历史记录创建时间相等,导致流程图渲染异常
- [fix]修复Mybatis逻辑删除变成真实删除的缺陷 @xiarigang
- [refactor] 重构id生成器,支持orm默认策略,删除数据填充默认实现类,改为匿名类
部分更新内容介绍
1、增加办理人变量表达式
1.1、默认办理人变量策略
前端页面设置变量
- 比如:
@@default@@|${handler1},role:1,1
@@default@@|${handler1}
中@@default@@表示默认办理人变量策略,handler1是需要被流程变量中替换的标识role:1,1
表示办理人角色和具体办理人

后端代码设置变量
// 流程变量
Map<String, Object> variable = new HashMap<>();
variable.put("handler1", "100");
flowParams.variable(variable);
Instance instance = insService.skipByInsId(testLeave.getInstanceId(), flowParams);
1.2、spel办理人变量策略
前端页面设置变量
- 比如:
@@spel@@|#{@user.evalVar(#handler2)}
#{@user.evalVar(#handler2)}
是spel表达式,#handler2
是方法入参变量,可以不设置

后端代码设置变量
/**
* 用户类
*/
@Component("user")
public class User {
/**
* spel办理人变量表达式
* @param handler2 办理人
* @return String
*/
public String