web工作流管理系统开发之十五 流程变量与表达式

工作流系统和业务系统的结合,不仅仅是表之间的关联(即流程实例id和业务数据的关联),还有很多 变量的关联。
变量的关联表现在很多方面,通常都是在流程定义时,需要引入这些变量,辅助流程的定义。

如,流程在运行时,需要获取具体业务数据某个关键字段的值。

费用报销申请流程中,需要将用户的报销金额获取,流程按照报销金额的大小来决定是否需要2级审核。

还有的需要获取流程上下文中的流程定义信息,操作用户等,流程定义信息包含流程名称,流程中文描述名,流程版本,节点的名称等等。


例如流程实例运行时,需要在生成的任务提醒中获取流程中文描述,如,您需要审核 "某某" 填写的 "费用报销申请"。某某为流程实例运行时的操作用户,费用报销申请为流程中文名。

变量还分为临时变量持久化变量,这有点类似局部变量和全局变量的意思;临时变量仅存在于一次流程运转过程,提交返回后,就失效了;


持久化变量通常为一些业务变量,因为持久化到数据库中的,所以只要发生过,无论什么时候都能获取到值。

综合一下,流程中需要使用的变量类型:
业务变量
: 业务关键字段的值,通常作为显示或条件判断用,为持久化变量。
流程上下文变量:获取流程运行时的执行者信息,流程定义信息,流程实例信息,通常为临时变量。
业务数据字典等变量:业务变量的延伸,code对应中文名称,通常用表达式来转换出中文名称。

在eworkflow工作流系统中,变量的使用场合通常是,流程定义文件的自定义参数,自定义脚本中,通过表达式来引入这些变量。


工作流引擎在解释流程定义文件时,根据实时的情况,解释表达式,得到变量的值。


如,
引入用户名称的表达式:${oCaller.name}
引入业务关键字段信息,如审核结果: ${result}; 审核结果数据字典(中文): ${result.审核结果}
引入流程实例id: ${entry.id}

在自定义脚本中还可以如编写java代码一样,来作为变量引用,就更加的灵活和多样了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值