一种工作流处理方法、装置及工作流引擎与流程

文档序号:11829112阅读:151来源:国知局
一种工作流处理方法、装置及工作流引擎与流程

本发明涉及计算机技术领域,具体涉及一种工作流处理方法、装置及工作流引擎。



背景技术:

由于Web应用系统的灵活性,使得客户对于业务流程的个性化需求异常丰富,同一个Web应用系统针对不同的客户往往会有不同的业务流程实现。

开发Web应用系统过程中,为了满足客户业务流程的个性化需求,业务流程需要针对不同项目做个性化配置或开发,对于jbpm、osworkflow、shark等主流工作流引擎,其开发、部署过程比较复杂,这使得Web应用系统的开发成本居高不下。



技术实现要素:

本发明所要解决的技术问题是如何提供一种工作流处理方法、装置及工作流引擎,以解决现有的工作流开发工作量较大的问题。

为此目的,第一方面,本发明提出一种工作流处理方法,所述方法包括:

在检测到业务系统启动时,获取存储单元中的流程参数表,并根据所述流程参数表生成流程对象,以使缓存单元缓存所述流程对象,所述流程参数表中包含所述业务系统预设的流程参数信息;

在检测到工作流启动时,从所述缓存单元中的流程对象中,获取与所述工作流对应的流程对象,并在处理所述流程对象之后,更新所述存储单元中的业务表以及流程记录表;所述流程记录表为所述存储单元中存储的用于记录流程流转的表;

在检测到工作流查询时,从所述缓存单元中的流程对象中,获取 与所述工作流对应的流程对象,根据所述流程对象以及所述存储单元中的流程记录表,拼装流程图并显示拼装的流程图。

可选的,所述在检测到工作流启动时,从所述缓存单元中的流程对象中,获取与所述工作流对应的流程对象,并在处理所述流程对象之后,更新所述存储单元中的业务表以及流程记录表,包括:

在检测到工作流启动时,获取所述工作流的流程编码与业务记录标识;

从所述缓存单元缓存的流程对象中,获取与所述流程编码对应的流程对象;

从所述存储单元中的业务表中,获取与所述业务记录标识对应的业务信息;

查看所述流程对象与所述业务信息是否匹配,如果不匹配,则发送错误提示信息;如果匹配,则在所述存储单元中的流程记录表中增加流程记录,并更新所述业务表。

可选的,所述在检测到工作流查询时,从所述缓存单元中的流程对象中,获取与所述工作流对应的流程对象,根据所述流程对象以及所述存储单元中的流程记录表,拼装并显示流程图,包括:

在检测到工作流查询时,获取所述工作流的流程编码与业务记录标识;

从所述缓存单元缓存的流程对象中,获取与所述流程编码对应的流程对象;

从所述存储单元中的业务表中,获取与所述业务记录标识对应的业务信息;

通过所述流程对象、所述业务信息以及所述存储单元中的流程记录表,拼装并显示流程图。

第二方面,本发明还提出一种工作流引擎,所述工作流引擎包括:

生成单元,用于在检测到业务系统启动时,获取存储单元中的流 程参数表,并根据所述流程参数表生成流程对象,以使缓存单元缓存所述流程对象,所述流程参数表中包含所述业务系统预设的流程参数信息;

处理单元,用于在检测到工作流启动时,从所述缓存单元中的流程对象中,获取与所述工作流对应的流程对象,并在处理所述流程对象之后,更新所述存储单元中的业务表以及流程记录表;所述流程记录表为所述存储单元中存储的用于记录流程流转的表;

查询单元,用于在检测到工作流查询时,从所述缓存单元中的流程对象中,获取与所述工作流对应的流程对象,根据所述流程对象以及所述存储单元中的流程记录表,拼装流程图并显示拼装的流程图。

可选的,所述处理单元,包括:

第一获取子单元,用于在检测到工作流启动时,获取所述工作流的流程编码与业务记录标识;

第二获取子单元,用于从所述缓存单元缓存的流程对象中,获取与所述流程编码对应的流程对象;

第三获取子单元,用于从所述存储单元中的业务表中,获取与所述业务记录标识对应的业务信息;

处理子单元,用于查看所述流程对象与所述业务信息是否匹配,如果不匹配,则发送错误提示信息;如果匹配,则在所述存储单元中的流程记录表中增加流程记录,并更新所述业务表。

可选的,所述查询单元,包括:

第四获取子单元,用于在检测到工作流查询时,获取所述工作流的流程编码与业务记录标识;

第五获取子单元,用于从所述缓存单元缓存的流程对象中,获取与所述流程编码对应的流程对象;

第六获取子单元,用于从所述存储单元中的业务表中,获取与所述业务记录标识对应的业务信息;

显示子单元,用于通过所述流程对象、所述业务信息以及所述存储单元中的流程记录表,拼装并显示流程图。

第三方面,本发明还提出一种工作流处理装置,所述装置包括:工作流引擎、缓存单元以及存储单元;

所述缓存单元,用于缓存所述工作流引擎生成的流程对象;

所述存储单元,用于存储流程参数表、业务表以及流程记录表。

可选的,所述存储单元中的流程参数表包括业务系统预设的流程参数信息,所述流程参数信息包括:流程模板信息、流程状态信息和/或角色信息;

所述流程模板信息包括:流程编码、流程名称、关联的业务表名、关联的业务表主键列名、业务表当前处理人列名、业务表当前状态列名和/或关联的流程记录表名;

所述流程状态信息包括:所属流程编码、状态编码、状态名称、对应角色编码和/或下一步状态编码集合;

所述角色信息包括:角色编码和角色名称,所述角色编码关联业务系统中用户和权限,用于权限控制。

可选的,所述流程模板信息、流程状态信息以及角色信息的对应关系为:

一个所述流程模板对应N个所述流程状态,N为正整数;

一个所述角色信息对应N个所述流程状态。

可选的,所述流程记录表包括:流程记录标识、业务记录标识、操作人、操作时间、当前状态编码、下一步状态编码、当前处理人和/或下一步处理人。

相比于现有技术,本发明的工作流处理方法、装置及工作流引擎通过定义少量参数的方式快速实现流程定义的目的,通过基于状态的流程控制,即流程状态关联角色,角色关联权限和人员,从而简单清晰的界定工作流程,同时提供了流程流转处理及流程记录检 索等功能。更为重要的是,通过灵活的高可配置度的参数信息可以满足客户的大部分流程需求,并可通过扩展参数信息的方式扩展流程功能。核心代码简单清晰、高扩展、高可用。克服了现有工作流定义、开发、部署的工作量较大的问题,提高了工作流开发效率,同时提高Web应用系统的产品化程度。

附图说明

图1为本发明实施例提供的一种工作流处理方法流程图;

图2为本发明实施例提供的一种工作流引擎结构图;

图3为本发明实施例提供的一种处理单元结构图;

图4为本发明实施例提供的一种查询单元结构图;

图5为本发明实施例提供的一种工作流处理装置结构图;

图6为本发明实施例提供的一种工作流处理装置的工作流程图;

图7为本发明实施例提供的通过流程记录检索所获取的数据生成的工作流流程记录的列表网页效果图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本实施例公开一种工作流处理方法,所述方法可包括以下步骤:

101、在检测到业务系统启动时,获取存储单元中的流程参数表,并根据所述流程参数表生成流程对象,以使缓存单元缓存所述流程对象,所述流程参数表中包含所述业务系统预设的流程参数信息;

其中,流程参数信息包括:流程模板信息、流程状态信息以及角 色信息;

流程模板信息用于记录流程相关的参数信息,至少包括:流程编码、流程名称、关联的业务表名、关联的业务表主键列名、业务表当前处理人列名、业务表当前状态列名以及关联的流程记录表名;

流程状态信息用于记录流程状态相关的参数信息,至少包括:所属流程编码、状态编码、状态名称、对应角色编码以及下一步状态编码集合;

角色信息用于记录业务系统角色相关的参数信息,至少包括:角色编码和角色名称,角色编码关联业务系统中用户和权限,用于权限控制。

流程模板信息、流程状态信息以及角色信息的对应关系为:

一个流程模板对应N个流程状态,N为正整数;

一个角色信息对应N个流程状态。

102、在检测到工作流启动时,从所述缓存单元中的流程对象中,获取与所述工作流对应的流程对象,并在处理所述流程对象之后,更新所述存储单元中的业务表以及流程记录表;

其中,业务表包括:业务信息、流程当前状态以及处理人;

流程记录表用于记录流程流转的信息,至少包括:流程记录标识、业务记录标识、操作人、操作时间、当前状态编码、下一步状态编码、当前处理人以及下一步处理人。其中,下一步状态编码是指当前状态可变更为哪几个状态,通过下一步状态编码可约束流程流转规则,可构建出流程图。

103、在检测到工作流查询时,从所述缓存单元中的流程对象中,获取与所述工作流对应的流程对象,根据所述流程对象以及所述存储单元中的流程记录表,拼装并显示流程图。

其中,步骤102还可包括以下图1中未示出的子步骤:

1021、在检测到工作流启动时,获取所述工作流的流程编码与业 务记录标识;

1022、从所述缓存单元缓存的流程对象中,获取与所述流程编码对应的流程对象;

1023、从所述存储单元中的业务表中,获取与所述业务记录标识对应的业务信息;

1024、查看所述流程对象与所述业务信息是否匹配,如果不匹配,则发送错误提示信息;如果匹配,则在所述存储单元中的流程记录表中增加流程记录,并更新所述业务表。

其中,步骤103还可包括以下图1中未示出的子步骤:

1031、在检测到工作流查询时,获取所述工作流的流程编码与业务记录标识;

1032、从所述缓存单元缓存的流程对象中,获取与所述流程编码对应的流程对象;

1033、从所述存储单元中的业务表中,获取与所述业务记录标识对应的业务信息;

1034、根据所述流程对象、所述业务信息以及所述存储单元中的流程记录表,拼装并显示流程图。

在具体应用中,流程模板信息还可扩展其他配置信息,比如参与信息统计(业务系统的另一个功能模块,即信息统计模块)的状态编码等。

在具体应用中,流程状态信息还可扩展其他配置信息,比如状态关联的菜单,即业务系统查看业务信息的导航菜单(点击菜单只显示处于关联该菜单的状态的业务记录)。

上述实施例采用配置化参数来存储自定义业务流程信息,提供了简单易用的流程流转处理及流程记录检索功能,所以克服了现有工作流定义、开发、部署的工作量较大的问题,提高了工作流开发效率。

上述实施例能够通过定义少量参数的方式快速实现流程定义的 目的,通过基于状态的流程控制,即流程状态关联角色,角色关联权限和人员,从而简单清晰的界定工作流程,同时提供了流程流转处理及流程记录检索等功能。更为重要的是,通过灵活的高可配置度的参数信息可以满足客户的大部分流程需求,并可通过扩展参数信息的方式扩展流程功能。核心代码简单清晰、高扩展、高可用。本实施例扩展了核心模块,增加了流程提交页面通用模块,流程记录查看页面通用模块,使得在具体项目中,可使用一套代码,仅通过配置流程定义参数的方式即可实现工作流流转、流程记录及进度查看等功能,所以克服了现有工作流定义、开发、部署的工作量较大的问题,提高了工作流开发效率,同时提高Web应用系统的产品化程度。

如图2所示,本实施例公开一种工作流引擎,所述工作流引擎可包括以下单元:生成单元21、处理单元22以及查询单元23;

生成单元21,用于在检测到业务系统启动时,获取存储单元中的流程参数表,并根据所述流程参数表生成流程对象,以使缓存单元缓存所述流程对象,所述流程参数表中包含所述业务系统预设的流程参数信息;

处理单元22,用于在检测到工作流启动时,从所述缓存单元中的流程对象中,获取与所述工作流对应的流程对象,并在处理所述流程对象之后,更新所述存储单元中的业务表以及流程记录表;

查询单元23,用于在检测到工作流查询时,从所述缓存单元中的流程对象中,获取与所述工作流对应的流程对象,根据所述流程对象以及所述存储单元中的流程记录表,拼装并显示流程图。

如图3所示,处理单元22还可包括以下子单元:

第一获取子单元221,用于在检测到工作流启动时,获取所述工作流的流程编码与业务记录标识;

第二获取子单元222,用于从所述缓存单元缓存的流程对象中,获取与所述流程编码对应的流程对象;

第三获取子单元223,用于从所述存储单元中的业务表中,获取与所述业务记录标识对应的业务信息;

处理子单元224,用于查看所述流程对象与所述业务信息是否匹配,如果不匹配,则发送错误提示信息;如果匹配,则在所述存储单元中的流程记录表中增加流程记录,并更新所述业务表。

如图4所示,查询单元23还可包括以下子单元:

第四获取子单元231,用于在检测到工作流查询时,获取所述工作流的流程编码与业务记录标识;

第五获取子单元232,用于从所述缓存单元缓存的流程对象中,获取与所述流程编码对应的流程对象;

第六获取子单元233,用于从所述存储单元中的业务表中,获取与所述业务记录标识对应的业务信息;

显示子单元234,用于根据所述流程对象、所述业务信息以及所述存储单元中的流程记录表,拼装并显示流程图。

本实施例的工作流引擎前述图1实施例所述的流程,本实施例不再详述。

如图5所示,本实施例公开一种工作流处理装置,所述装置包括图2实施例所述的工作流引擎51、缓存单元52以及存储单元53;

所述工作流引擎51包括生成单元21、处理单元22和查询单元23;

所述缓存单元52,用于缓存所述工作流引擎生成的流程对象;

所述存储单元53,用于存储流程参数表、业务表以及流程记录表。

如图6所示,本实施例公开图5中工作流处理装置实施例的工作流程,包括以下步骤:

601、工作流引擎51在检测到业务系统启动时,获取存储单元53中的流程参数表;

602、工作流引擎51根据流程参数表生成流程对象,以使缓存单元52缓存流程对象;流程参数表中包含业务系统预设的流程参数信息

603、工作流引擎51在检测到工作流启动时,从缓存单元52中的流程对象中,获取与工作流对应的流程对象;

604、工作流引擎51在处理流程对象之后,更新存储单元53中的业务表以及流程记录表;

605、工作流引擎51在检测到工作流查询时,从缓存单元52中的流程对象中,获取与工作流对应的流程对象;

606、工作流引擎51根据流程对象以及存储单元53中的流程记录表,拼装并显示流程图。

步骤601中工作流引擎51读取流程参数表中流程信息,依次读取流程模板记录,流程状态记录。具体为:首先获取所有流程模板信息,然后根据流程模板信息中的流程编码获取相应流程状态信息。

步骤602中工作流引擎51对每条流程模板记录生成一个流程对象,将流程编码、流程名称等相关信息作为该对象的属性,并将流程状态信息也作为该对象的属性。

步骤601和602称为初始化过程。

步骤603和604称为流程流转过程。

步骤603中工作流引擎51根据流程编码获取流程对象。

步骤604具体包括以下子步骤:

6041、根据业务记录标识获取业务表中与流程相关的信息,包括当前处理人、当前状态等。

6042、根据流程对象、业务表中流程相关信息,进行流程操作有效性校验,包括调用方法参数中当前处理人是否正确,当前状态是否正确,下一状态是否在当前状态对象的下一步状态编码集合中,其他特殊校验(通过操作参数控制启用何种特殊校验)。校验失败则返回错误提示,校验通过后继续。

6043、新增一条流程处理记录。

6044、更新业务表数据,包括当前处理人、当前状态、其他业务 信息。

步骤605和606称为流程记录检索过程。

步骤605中工作流引擎51根据流程编码获取流程对象。

步骤606具体包括以下子步骤:

6061、根据业务记录标识获取业务表中与流程相关的信息,包括当前处理人、当前状态等。

6062、根据流程对象拼装流程图信息(通过流程状态参数中流程编码和下一步状态编码集合可构建出流程图),返回流程图信息和操作记录信息。

图7示出了通过流程记录检索所获取的数据生成的工作流流程记录的列表网页效果图。

从以上实施例中可以看出,本发明实现了如下技术效果:

1、高可配置度,通过修改少量的流程配置参数即能够满足客户的大部分业务流程需求;

2、核心模块简单、可扩展,对于流程的特殊校验、特殊处理,只需开发相应的功能模块,在流程流转中做相应引用及开关,通过操作参数做相应控制;

3、控制版本分支,不同项目的个性化流程需求仅通过少量的流程配置信息来控制,而主体代码则保证只有一套。

这样,同一应用系统不同项目之间,由大量流程配置文件及业务处理代码转化为少量的流程参数差异,最大程度地释放了开发资源,甚至可由实施人员来进行流程配置,同时也降低了项目版本的差异,从而降低了项目成本。

需要说明的是,本文中的“第一”至“第六”仅用来区分不同实体,并不代表实体间的关系或顺序。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算 装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1