web工作流管理系统开发之十一 流程数据与业务数据的交互

通常工作流系统在设计之初,都会明确的区分流程数据和业务数据。工作流引擎只关心流程数据,为实现工作流的流转,会为工作流引擎设计一套工作流的表结构,来辅助流程引擎的实现。

 

业务数据是千变万化的,为实现各自的业务,会设计一系列业务表。业务表,工作流系统是不关心的。

 

但是工作流数据和业务数据又是交互的关联的。

 

1. 流程和业务数据的基本关联:

为了将业务数据和流程数据关联起来,会有一个关联表,将流程实例和业务数据关联。

 

在eworkflow中,这层关系的设置在 流程实例表(wf_wfentry)中。

 


每个流程实例都会和具体的一张业务表关联,(流程需要实现的主业务表),并指明业务表的id字段和描述字段,描述字段可有可无。


每个业务表中都多设置一个流程实例wf_id字段,此字段即=wf_wfentry.id。

通过设置 业务表.wf_id = wf_wfentry.id  和 wf_wfentry.bs_table wf_wfentry.bs_id_field = 业务表.id   将流程和业务关联起来;

 


2. 流程和业务数据的交互:

在流程定义和运行的上下文中经常会需要引入业务数据。
比如报销流程中的,流程定义和运行时,都需要取 报销金额 做为判断几级审核的条件,上级审核,也需要取审核结果作为流转到下一步的依据。

 

这样就势必在流程上下文中引入业务数据:


在eworkflow中,是这样引入的:


在业务数据的维护模块,即业务自定义表单中:业务数据集,将业务关键字段勾选为 “流程用”。即将此业务关键字标识为可供流程上下文使用了。

 

 

 

 

在流程定义时:动作(关联到的业务表单的动作)的前缀函数设置一个ActionPreFunction此类负责将业务表单中,勾选的流程用的关键字段 持久化到流程上下文中。然后动作的结果中,就可以运用业务关键了。

 

 

 

 


动作结果中设置:


 关键字段类型不同,做判断的规则和写法略不同,遵循java的语法规则

 字符型的变量比较
   propertySet.getString("关键字名").equals("值")
   
 整数型
   propertySet.getLong("关键字名")==3 操作符号==,>,<

  实数型的
   propertySet.getDouble("关键字名")>3.5 操作符号==,>,<
  日期型的   
   java.util.Date.compareTo(propertySet.getDate("关键字名"),anotherDate) 操作符号


   
 //另外:propertySet还可以在前置后置函数中 propertySet.setString("caller", caller);设置变量值 

 

 

 

 

 

相关连接

web工作流管理系统开发之一 工作流概念

web工作流管理系统开发之二 工作流引擎
web工作流管理系统开发之三 可视化流程设计器
web工作流管理系统开发之四 集成工作流与自定义表单
web工作流管理系统开发之五 开源osworkflow之用户系统改造

web工作流管理系统开发之六 表单权限与流程的权限控制

web工作流管理系统开发之七 最新修改的版本下载 

web工作流管理系统开发之八 开源osworkflow之任务管理 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值