快捷搜索:   nginx

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

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

 

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

 

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

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


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

 

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


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

 

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

 

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


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


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

 

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

顶(1)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论