工作流管理系统开发之十一 流程数据与业务数据的交互
2016-10-14 19:07
323 查看
通常工作流系统在设计之初,都会明确的区分流程数据和业务数据。工作流引擎只关心流程数据,为实现工作流的流转,会为工作流引擎设计一套工作流的表结构,来辅助流程引擎的实现。
业务数据是千变万化的,为实现各自的业务,会设计一系列业务表。业务表,工作流系统是不关心的。
但是工作流数据和业务数据又是交互的关联的。
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);设置变量值
业务数据是千变万化的,为实现各自的业务,会设计一系列业务表。业务表,工作流系统是不关心的。
但是工作流数据和业务数据又是交互的关联的。
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工作流管理系统开发之十一 流程数据与业务数据的交互
- 【COCOS2DX-LUA 脚本开发之十一】C/C++与Lua之间进行数据函数交互 推荐
- 【COCOS2DX-LUA 脚本开发之十一】C/C++与Lua之间进行数据函数交互以及解决“PANIC: unprotected error in call to Lua API (attempt t
- 流程数据和业务数据的交互
- 【COCOS2DX-LUA 脚本开发之十一】C/C++与Lua之间进行数据函数交互以及解决“PANIC: unprotected error in call to Lua API (转)
- 【COCOS2DX-LUA 脚本开发之十一】C/C++与Lua之间进行数据函数交互以及解决“PANIC: unprotected error in call to Lua API (attempt t
- 安卓智能地图开发与实施十一:业务数据查询 - ArcGIS Runtime SDK for Android(Version 100.0.0)
- windows mobile开发循序渐进(5)移动应用程序与webservice之间的数据交互
- BizTalk使用SQL适配器获取数据(上)----创建解决方案及业务流程
- 移动搜索被认为是一个新兴的搜索领域,但美国在开发无线数据业务方面相对落后?
- [黑莓开发之路][00][BlackBerry平台架构概述][08][数据传输流程][03][BIS]
- [黑莓开发之路][00][BlackBerry平台架构概述][08][数据传输流程][04][PIN]
- 业务系统(“增量迭代”)开发流程管理
- 《BREW进阶与精通――3G移动增值业务的运营、定制与开发》连载之22---BDS的分发流程
- WF 自定义活动开发常见问题(进入第二个流程状态,数据传递失败的解决方法)
- AP和PO交互的简单业务流程
- 设计自己的应用开发框架三(数据操作与业务实体)
- 学习"使用 Eclipse BPEL 插件开发和执行 WS-BPEL V2.0 业务流程"碰到的问题
- 职责链模式在业务流程开发中的应用