一种基于二维数据表的审批工作流实现
- 格式:doc
- 大小:29.00 KB
- 文档页数:4
一种基于二维数据表的审批工作流实现【摘要】为了使大多数系统中审批流程得以实现和便于维护,本文对工作流技术的深入研究,在设计的过程中结合相关数据库技术,通过对二维数据表设计来动态实现审批流程的配置、管理和使用。
【关键词】数据库技术;工作流;二维数据表;流程模型1.工作流概述工作流是一类能够完全或者部分自动执行的业务过程,它根据一系列过程规则,文档信息或任务能够在不同的执行者之间传递和执行。
它是实现业务过程管理与控制的一项关键性技术。
其要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。
简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。
我们可以将整个业务过程看作是一条河,其中流过的河水就是工作流[1]。
2.审批工作流的过程模型过程模型用来定义工作流的过程逻辑,包括组成工作流的所有活动以及活动之间的依赖关系。
在日常的各项审批活动中,业务处理是按照用户所选择的固定流程进行流转,过程模型如图1。
图1 审批工作流过程模型图3.审批工作流二维表的设计通过对功能需求的分析,信息文件按照选择的流程进行流转审批,因此首先得考虑存储流程规则信息的二维数据表,每一个流程信息实体应该包括流程编号(FlInId,主键,数值类型)、名称(FlInName,字符型)、类别编号(FlClId,数值型)、版本(FlInVersion,数值型)、状态(FlInStat,字符型)等字段属性。
FlInId 字段存储流程编号信息,作为主键设置,控制流程信息的唯一性。
FlClId 字段存储流程类别代码信息,考虑系统扩展性,用数字代码的形式进行存储,另设计存储类别信息的二维表,以便于使流程信息可进行多层次分类。
FlInVersion 字段存储流程版本信息,记录流程修改的次数。
FlInState字段存储的流程状态信息,可设计为发布和停止两种状态。
每个流程按照固定的步骤进行流动,系统必须设计存储相应步骤信息的二维数据表,一个流程可拥有多个步骤,每一个步骤实体应包括步骤编号(AcInId,主键,数值型)、步骤名称(AcInName,字符型)、步骤排序号(AcInSortNo,数值型)和步骤所属的流程编号(FlInId,数值型)等字段属性,为了考虑有的步骤可以有多人处理,系统设计了步骤处理人的数据表,包括序号(AcUsId,主键,数值型),处理人代号(AcUsUserId,字符型)、步骤序号(AcInId,数值型)等字段属性。
(10)申请公布号(43)申请公布日 (21)申请号 201510617573.3(22)申请日 2015.09.24G06Q 10/06(2012.01)G06Q 10/10(2012.01)(71)申请人鲁能集团有限公司地址250001 山东省济南市市中区经三路14号申请人山东鲁能软件技术有限公司(72)发明人冯涛 王凯 杜忠勋 丁书耕王立峰 郑一(74)专利代理机构济南圣达知识产权代理有限公司 37221代理人张勇(54)发明名称基于SAP 平台的审批工作流动态配置方法及系统(57)摘要本发明公开了一种基于SAP 平台的审批工作流动态配置方法及系统,包括:将工作流分为不同的审批类型;确定每一种审批类型的审批节点,将每一级审批节点与审批人数据进行关联,并将审批类型与审批节点进行关联;创建审批节点配置表;配置整个工作流:根据审批类型将配置表中的数据按照审批节点数字设定的顺序进行排序;审批结果返回申请人。
本发明有益效果:通过创建审批节点配置表,将不同的审批类型及其相关数据维护进配置表中,在审批工作流需要调整时,只要修改相应的配置表中的审批类型或审批节点就可在生产系统实现,免去了从开发系统调整代码到测序系统进行测试再到生产系统传输的过程,提高了系统实时性的要求。
(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书4页 附图2页CN 105404952 A 2016.03.16C N 105404952A1.一种基于SAP平台的审批工作流动态配置方法,其特征是,包括以下步骤:步骤1:根据业务的不同,基于SAP业务对象原理将工作流分为不同的审批类型;步骤2:确定每一种审批类型的审批节点,将每一级审批节点与审批人数据进行关联,并将审批类型与审批节点进行关联;步骤3:创建审批节点配置表,将步骤1和步骤2中的审批类型、审批节点、审批人数据维护进配置表中;步骤4:配置整个工作流:根据审批类型将配置表中的数据按照审批节点数字设定的顺序进行排序,所述排序的顺序即为审批节点的执行顺序;步骤5:审批结束,审批结果返回申请人。
一种基于二维数据表的审批工作流实现
【摘要】为了使大多数系统中审批流程得以实现和便于维护,本文对工作流技术的深入研究,在设计的过程中结合相关数据库技术,通过对二维数据表设计来动态实现审批流程的配置、管理和使用。
【关键词】数据库技术;工作流;二维数据表;流程模型
1.工作流概述
工作流是一类能够完全或者部分自动执行的业务过程,它根据一系列过程规则,文档信息或任务能够在不同的执行者之间传递和执行。
它是实现业务过程管理与控制的一项关键性技术。
其要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。
简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。
我们可以将整个业务过程看作是一条河,其中流过的河水就是工作流[1]。
2.审批工作流的过程模型
过程模型用来定义工作流的过程逻辑,包括组成工作流的所有活动以及活动之间的依赖关系。
在日常的各项审批活动中,业务处理是按照用户所选择的固定流程进行流转,过程模型如图1。
图1 审批工作流过程模型图
3.审批工作流二维表的设计
通过对功能需求的分析,信息文件按照选择的流程进行流转审批,因此首先得考虑存储流程规则信息的二维数据表,每一个流程信息实体应该包括流程编号(FlInId,主键,数值类型)、名称(FlInName,字符型)、类别编号(FlClId,数值型)、版本(FlInVersion,数值型)、状态(FlInStat,字符型)等字段属性。
FlInId 字段存储流程编号信息,作为主键设置,控制流程信息的唯一性。
FlClId 字段存储流程类别代码信息,考虑系统扩展性,用数字代码的形式进行存储,另设计存储类别信息的二维表,以便于使流程信息可进行多层次分类。
FlInVersion 字段存储流程版本信息,记录流程修改的次数。
FlInState字段存储的流程状态信息,可设计为发布和停止两种状态。
每个流程按照固定的步骤进行流动,系统必须设计存储相应步骤信息的二维数据表,一个流程可拥有多个步骤,每一个步骤实体应包括步骤编号(AcInId,主键,数值型)、步骤名称(AcInName,字符型)、步骤排序号(AcInSortNo,数值型)和步骤所属的流程编号(FlInId,数值型)等字段属性,为了考虑有的步骤可以有多人处理,系统设计了步骤处理人的数据表,包括序号(AcUsId,主键,数值型),处理人代号(AcUsUserId,字符型)、步骤序号(AcInId,数值
型)等字段属性。
当用户添加信息后,系统根据信息的类别选择了相应的流程,使用过程中要考虑信息流动的过程和流动的状态,以提示各个步骤处理人能操作自己需要处理的数据,因此系统设计了与信息相关的表,即任务表,主要用来存储本信息选用的流程、目前的处理的步骤、目前需要处理的用户等信息,每一个人物实体应包括任务序号(TaInId,主键,数值型),信息序号(ItInId,数值型),步骤序号(AcInId,数值型),处理人号(TaInDealUserId,字符型),任务状态(TaInState,字符型),任务版本(任务版本,字符型)等字段属性。
在用户进行审批操作后,应记录相应的任务处理记录,便于用户查看已处理的操作信息或进行撤销操作,因此系统设计了相应的任务操作记录表,每一个人物操作实体应包括任务记录序号(TaHiId,主键,数值型),信息序号(ItInId,数值型),步骤序号(AcInId,数值型),信息类型(ItStClId,数值型),签名数据(TaHiSignData,字符型),任务记录标志(TaHiFlag,字符型),任务记录备注(TaHiBz,字符型)等字段属性。
4.审批工作流核心功能实现
在前面数据库表的设计中,我们已经设计了4个表存储数据流实现的相关信息,通过这些表,可实现多种审批需求的业务。
下面以财务报销审批业务为例,展示流程配置管理和信息流审批具体应用及其实现过程。
4.1流程配置管理实现
系统在流程管理模块实现流程的添加、删除、更新等维护工作。
具体添加的实现过程是先定义流程信息对象,将界面的表单数据赋予对象的相关属性,通过对象的AdaByObject方法将其写入数据库并返回插入的主键值。
再通过循环语句将表单中的步骤和处理人分别插入至相应的表中。
主要的实现代码如下:
Dim oAFlowInfo As New AFlowInfo ‘定义流程实体对象
……
根据表单对oAFlowInfo进行赋值
……
For Each nItem As GridViewRow In gvPurview.Rows ‘获取流程访问权限
Dim nCbxChecked As New CheckBox
nCbxChecked = nItem.FindControl(“cbxChecked”)
……
Next
……
nRetrunFlInId = oAFlowInfo.AddByObject(oAFlowInfo) ‘根据AdaByObject 方法将流程信息写入数据库
If nRetrunFlInId > 0 Then ‘大于0表示写入成功,则写入步骤信息
For Each nItem As GridViewRow In gvActorInfo.Rows
Dim oAActorInfo As New AActorInfo
……
nRetrunAcInId = oAActorInfo.AddByObject(oAActorInfo)
If nRetrunAcInId > 0 Then ‘大于0表示写入成功,则写入步骤处理人
Dim oActorUser As New AActorUser
……
oActorUser.AddByObject(oActorUser)
End If
Next
End If
4.2流程审批实现
在工作流的审批过程中,用户主要是通过修改TaInDealUserId字段的值来完成数据的传递操作,TaInDealUserId字段存储的是待处理用户的用户编号,用户登录系统后进入审核模块自动检测用户编号和数据的此字段值是否一致,如果一致表示则显示在待审批信息表中,等待用户的审批,用户审批后,系统根据既定流程修改TaInDealUserId的值。
具体的实现过程是先获取当前步骤信息,并检测是否存在下一步骤,再根据结果向任务表写入相关数据完成审批过程。
主要的实现代码如下:
……
oActorInfo = oActorInfo.GetToObject(“FlInId=“ & nFlInId_Present & “ and Ac InSortNo=“ & nAcInSortNo_Present)‘获取当前的步骤实体信息……
oActorInfo = oActorInfo.GetToObject(“FlInId=“ & nFlInId_Present & “ and AcInSortNo=“ & nAcInSortNo_Present + 1) ‘检测下一步骤实体信息
If Not oActorInfo Is Nothing Then ‘判断步骤实体信息是否存在
oTaskInfo.AcInSortNo=nAcInSortNo_Present + 1
oTaskInfo.TaInDealUserId=oAActorUser.AcUsUserId
Else
oTaskInfo.AcInSortNo=0
oTaskInfo.TaInDealUserId=““
end if
oTaskInfo.UpdateByObject(oTaskInfo)
……
Return “审批成功!”
【参考文献】
[1]刘志明.基于工作流技术的项目管理系统设计与实现[D].湖南:湖南大学教育技术学,2009.
[2]闫晓薇.基于数据库表示的工作流管理系统的设计与实现[J].科技资讯,2009(12).
[3]蔡戟,王泽兵,冯雁.基于数据库的工作流技术在电力物资管理系统中的实现[J].计算机工程与应用,2002,(03).。