CN104216912B - 一种无侵入式的业务表单工作流化的实现方法与装置 - Google Patents
一种无侵入式的业务表单工作流化的实现方法与装置 Download PDFInfo
- Publication number
- CN104216912B CN104216912B CN201310217986.3A CN201310217986A CN104216912B CN 104216912 B CN104216912 B CN 104216912B CN 201310217986 A CN201310217986 A CN 201310217986A CN 104216912 B CN104216912 B CN 104216912B
- Authority
- CN
- China
- Prior art keywords
- workflow
- business form
- template
- database
- business
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000009415 formwork Methods 0.000 title claims abstract description 18
- 230000036651 mood Effects 0.000 title claims abstract description 15
- 238000005243 fluidization Methods 0.000 title claims abstract description 10
- 238000012545 processing Methods 0.000 claims description 29
- 230000009471 action Effects 0.000 claims description 18
- 238000013507 mapping Methods 0.000 claims description 7
- 239000003999 initiator Substances 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 6
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 238000012986 modification Methods 0.000 claims description 5
- 230000004048 modification Effects 0.000 claims description 5
- 238000011017 operating method Methods 0.000 claims description 3
- 238000007792 addition Methods 0.000 claims description 2
- 235000013399 edible fruits Nutrition 0.000 claims description 2
- 230000033772 system development Effects 0.000 abstract description 3
- 230000000977 initiatory effect Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011835 investigation Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000005308 sum rule Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明属于业务表单应用技术领域,具体公开了一种无侵入式的业务表单工作流化的实现方法与装置。该装置包括:业务表单数据库,用于预存多种类型的、异构结构的业务表单;工作流模板数据库,用于预存多种工作流模板;工作流关系匹配数据库,用于存储工作流模板与业务表单之间的匹配关系信息;以及关联配置器,用于读取所述业务表单库和工作流模板库中数据,将其中的工作流模板与业务表单进行两两关联,并将关联信息存入所述工作流关系匹配数据库中。本发明方法主要就是将业务表单数据库中的业务表单与工作流模板数据库中的工作流模板建立两两关联关系,然后执行和调用数据完成工作流。采用本发明,可以提高业务表单应用***开发效率。
Description
技术领域
本发明属于业务表单应用技术领域,具体涉及一种无侵入式的业务表单工作流化的实现方法与装置。
背景技术
工作流(Work Flow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。我们可以将整个业务过程看作是一条河,其中流过的河水就是待审核的业务表单。
工作流引擎(Work Flow Engine)是为了实现工作流的操纵方式,将流程操作处理进行了封装,对应用***提供服务,使得业务***能够实现工作流的操作方式。
业务表单,也可以叫电子表单,是采用信息化的手段对现实世界中纸张表单(比如请假单、报销单)的抽象。它是应用***中进行数据采集和展示的主要方式和手段,也是工作流***中主要处理对象,主要包含三部分内容:
(1)表单标签:这里面包含了处理表单数据所用CGI/JSP/ASP等程序的URL以及数据提交到服务器的方法。
(2)表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。
(3)表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI/JSP/ASP等脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。其中提交按钮就对应着表单的新建、修改、删除等操作。
许多公司采用纸张表单,手工传递的方式,一级一级审批签字,工作效率非常低下,对于统计报表功能则不能实现。而采用工作流引擎,使用者只需在电脑上填写有关业务表单,会按照定义好的流程模板自动往下跑,下一级审批者将会收到相关资料,并可以根据需要进行修改、跟踪、管理、查询、统计、打印等,大大提高了效率,实现了知识管理,提升了公司的核心竞争力。
目前的应用***的业务表单的实现方式,一般是针对每一个业务表单,都单独定义一个工作流模板,并且将业务表单处理逻辑与工作流处理逻辑混在一起。在个性化需求不断丰富的今天,一个电子表单***需要的表单将越来越多,那么开发时需要定义的工作流也随之增加,从而使得电子表单***开发工作量不断加大。
举例说明如下
(1)请假者请假3天,他需要走的工作流程是:
请假者发起请假3天的请求表单—直属领导审批—审批结果(批准或拒绝)--结束。
(2)请假者请假3天以上,他需要走的工作流程是:
请假者发起请假3天以上的请求表单—直属领导审批—审批结果拒绝--结束
—审批结果批准—上一级领导审批—审批结果(批准或拒绝)--结束。即是请假3天以上要比请假3天多一级领导审批。
(3)财务报销1000元以内,他需要走的工作流程是:
报销者发起请求表单—直属领导审批—审批结果(批准或拒绝)--结束。
(4)财务报销1000元以上,他需要走的工作流程是:
报销者发起请求表单—直属领导审批—审批结果拒绝--结束
—审批结果批准—上一级领导审批—审批结果(批准或拒绝)--结束。即是报销1000元以上要比报销1000元以内多一级领导审批。
以上四种不同表单,需要分别开发四个工作流模板来进行一一对应,使得工作流模板无法被复用,也使得业务开发人员不能专注于业务逻辑本身的开发,造成开发效率低下。
造成这种问题的本质原因是在已有的支持工作流的业务表单***中,每个业务表单的业务逻辑都与工作流引擎进行了紧密耦合,使得编写业务逻辑时需要直接地调用底层的工作流引擎。
发明内容
为了解决上述问题,本发明的目的在于提供一种无侵入式的业务表单工作流化的实现方法与装置,以提高业务表单应用***开发效率。
本发明所谓的无侵入式的含义,就是在不改动业务表单原有的表单标签、表单域、表单按钮的情况下,使得业务表单能够在工作流中进行处理,从而减少应用***编程的开发。
为了实现上述发明目的,本发明采用的技术方案如下:
一种无侵入式的业务表单工作流化的实现装置,该装置包括:
业务表单数据库,用于预存多种类型的、异构结构的业务表单;
工作流模板数据库,用于预存多种工作流模板;
工作流关系匹配数据库,用于存储工作流模板与业务表单之间的匹配关系信息;以及
关联配置器,用于读取所述业务表单库和工作流模板库中数据,将其中的工作流模板与业务表单进行两两关联,并将关联信息存入所述工作流关系匹配数据库中。
进一步的,该装置还包括:
方法调用堆栈库,用于对业务表单操作的后端操作逻辑的方法执行堆栈进行存储;
URL截取器,用于截取用户对业务表单操作产生的URL***;
方法截取器,用于截取URL***对应后端的执行方法的上下文信息;
工作流判定器,用于根据URL***和方法截取器传入的URL***、业务表单、业务表单操作类型参数,从工作流关系匹配数据库中查询是否有关联的工作流模板id存在,如果存在关联的工作流模板id,则利用工作流模板id从工作流模板数据库中查询出来传输给工作流发起器;
工作流发起器,用于根据传入的工作流模板id和业务表单,调用工作流引擎来发起工作流;
工作流引擎,用于根据工作流运行实例数据库中的工作流运行实例信息,将业务表单数据库中的业务表单分派给相应的节点处理人进行处理;
调用堆栈保存器,用于将方法截取器截取的上下文信息进行处理并存入方法调用堆栈库中;以及
工作流完成处理器,用于处理工作流结束工作。
进一步的,所述上下文信息包括URL***、业务表单和操作类型。
进一步的,所述工作流完成处理器处理工作流结束工作,具体是:如工作流以失败结束,则从方法调用堆栈库中删除之前存入的方法执行堆栈,业务表单操作失败;如工作流以成功结束,则从方法调用堆栈库中调出之前存入的方法执行堆栈,采用反射的方式恢复之前的运行场景并继续执行,使得业务表单操作成功完成。
进一步的,所述工作流关系匹配数据库的数据结构中主要包括四个字段,分别是业务表单类型、业务表单的id、业务表单的操作类型和工作流模板id;所述业务表单类型,用于区分不同类型的业务表单;所述业务表单的id,用于对同一类型的业务表单进行区分;所述业务表单的操作类型,包括添加、修改和删除三种类型;工作流模板id,用于唯一标识工作流程模板。
进一步的,所述工作流关系匹配数据库的数据结构中还包括表单属性过滤表达式,用于根据当前业务表单信息来自动进行工作流模板的选择。
进一步的,所述关联配置器将工作流模板与业务表单进行两两关联,具体是:将业务表单数据库中的业务表单的标识id与工作流模板数据库中的工作流模板的标识id建立映射关系,使得输入业务表单的标识id可以调出工作流模板的标识id或者输入工作流模板的标识id可以调出业务表单的标识id。
进一步的,所述工作流模板包含工作流的节点、节点中的处理人和节点处理人的权限。
一种无侵入式的业务表单工作流化的实现方法,包括以下步骤:
将业务表单数据库中的业务表单与工作流模板数据库中的工作流模板建立两两关联关系;
接收用户点击业务表单按钮的命令,执行后端的业务逻辑操作;
截取业务表单操作的上下文信息;
根据截取的所述上下文信息,查询该业务表单是否存在与其具有关联关系的工作流模板;
如不存在,则业务表单操作完成;
如存在,则停止业务表单的操作,并将该操作的调用堆栈信息进行保存,并顺序执行后续步骤;
调用工作流引擎,并根据查询到的工作流模板生成工作流实例;
利用工作流引擎根据工作流模板的定义,调度给不同的节点处理人进行工作流处理;
判断工作流是否结束,如未结束则返回上一步循环执行;如结束,则顺序执行后续步骤;
判断工作流是否成功结束;
如是,则丢弃之前存入方法调用堆栈中的信息,并以失败结束业务表单的操作;
如否,则获取之前存入方法调用堆栈中的信息,继续执行业务表单的操作方法,使得业务表单的操作成功完成。
进一步的,所述将业务表单数据库中的业务表单与工作流模板数据库中的工作流模板建立关联关系,具体是:将业务表单数据库中的业务表单的标识id与工作流模板数据库中的工作流模板的标识id建立映射关系,使得输入业务表单的标识id可以调出工作流模板的标识id或者输入工作流模板的标识id可以调出业务表单的标识id。
进一步的,所述上下文信息包括URL***、业务表单和操作类型。
通过本发明装置或方法,针对现有技术中的请假3天、3天以上,报销1000元以内和1000元以上的流程处理情况,仅仅需要在表单数据库中建立一个请假表单和一个报销表单即可,不需要在表单处理方法中添加判断3天和1000元的逻辑。在工作流模板数据库中建立两级审批和三级审批两个工作流,通过关联配置器建立二者的关联关系即可。如请假两天就调用两级审批流程,报销800元也调用相同的两级审批流程。同样,请假三天以上和报销1000元以上都调用三级审批流程即可。进而将传统的业务表单和工作流分离,改变传统业务表单和工作流一对一绑定的关系,根据实际应用的需要将不同表单与工作流关联起来即可完成多种不同类型的业务。
本发明在包含有多个工作流的工作流数据库基础上,可以方便的设定多个不同的业务表单。甚至工作流数据库中预设有足够数量的工作流时,在此基础上程序开发员甚至可以不用特别去设计工作流,直接根据实际需要进行调用和配置即可,比如:工作流模板数据库中有一个二级审批的工作流,那么无论是请假3天以下,还是报销1000元以内都可以直接调用该工作流模板即可。不需要对每一个业务类型定义一个工作流,进而大大提高应用程序开发效率,缩小程序编写的时间,缩短了表单在实际中应用的时间。
本发明实现了业务表单与工作流的分离,支持它们的多对多对应关系,并且实现了无侵入式的将业务表单操作工作流化的方案。
本发明成果将达到以下效果:
(1)业务表单与工作流模板可以分开定义,并且支持它们之间的任意配对;
(2)业务表单的新建、修改和删除操作都能在不改动代码的情况下,通过配置实现是否走工作流、在什么时候走工作流、走什么工作流的逻辑;
(3)业务表单操作与工作流进行了解耦,使得业务表单操作代码的开发无需了解底层到底是由什么工作流引擎驱动,可与任何工作流引擎结合;
(4)提高了业务***开发的效率,降低了缺陷产生率。
附图说明
此附图说明所提供的图片用来辅助对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的不当限定,在附图中:
图1为配置定义阶段流程示意图;
图2为工作流发起阶段流程示意图;
图3为工作流处理阶段流程示意图;
图4为配置定义模块***结构示意图;
图5为工作流发起模块***结构示意图;
图6为工作流处理模块***结构示意图。
具体实施方式
本实施例公开了一种无侵入式的业务表单工作流化的实现方法,方法包括三个阶段的处理流程:配置定义阶段流程、工作流发起阶段流程和工作流处理阶段流程。
如图1所示,为本发明方法的配置定义阶段流程,包括以下两个子步骤:
步骤S110,读取业务表单数据库中的业务表单和工作流模板数据库中的工作流模板;
步骤S120,将工作流模板与业务表单建立两两关联关系。将业务表单数据库中的业务表单的标识id与工作流模板数据库中的工作流模板的标识id建立映射关系,使得输入业务表单的标识id可以调出工作流模板的标识id或者输入工作流模板的标识id可以调出业务表单的标识id。比如,请假表单的标识id为a1,工作流模板标识id为b1,本步骤的作用就是建立a1与b1的映射关系,使得输入a1可以调出b1,或者输入b1可以调出a1。
如图2所示,为本发明方法的工作流发起阶段所示,包括以下子步骤:
步骤S210,接收用户点击业务表单按钮的命令,执行后端的业务逻辑操作;比如,用户点击请假表单的“提交”按钮,那么后端的逻辑会将该请假表单的数据存入到数据库中;
步骤S220,截取业务表单操作的上下文信息,所示上下文信息包括URL、业务表单、操作类型;
步骤S230,根据截取的上下文信息,判断业务表单是否与某个工作流模板进行了关联,即查询该业务表单是否存在与其具有关联关系的工作流模板;
步骤S240,如果无法查询到与该业务表单相关联的工作流模板,则业务表单操作成功完成,无需进行步骤S250和S260。
步骤S250,如果能够查询到与该业务表单相关联的工作流模板,则停止业务表单的操作,并将该操作的调用堆栈信息进行保存;其中,方法调用堆栈信息是一种数据结构,其中可以包括调用方法名、方法参数对象等;如果是面向对象的语言比如Java编写的,方法调用堆栈中还包括调用类的名称;
步骤S260,执行发起工作流操作,也就是调用工作流引擎,传入步骤S250中查询到的工作流模板的id,并根据模板生成工作流实例的过程;工作流引擎可以采用任意一种工作流引擎。
如图3所示,为本发明方法工作流处理阶段示意图,包括以下步骤:
步骤S310,利用工作流引擎根据工作流模板的定义,调度给不同的节点处理人进行工作流处理;
步骤S320,判断工作流是否结束,如没有结束则返回S310循环执行;如结束,则执行步骤S330;
步骤S330,判断工作流是否成功结束,如果是成功结束,则执行S340,否则执行S350;
步骤S340,丢弃之前存入方法调用堆栈中的信息,并以失败结束业务表单的操作。
步骤S350,获取之前存入方法调用堆栈中的信息,继续执行业务表单的操作方法,使得业务表单的操作成功完成。
本实施例还公开了一种业务表单无侵入式的添加工作流的装置,该装置主要包含相关的数据库表、配置定义模块、工作流发起模块和工作流处理模块。
其中,数据库表包括业务表单数据库、工作流模板数据库、工作流关系匹配数据库、工作流运行实例数据库、方法调用堆栈库,见图4,图5,图6.。
其中,业务表单库410存储了任意类型的、异构结构的业务表单。所谓的异构结构的含义是表单域、表单标签和表单按钮不同。比如请假表单包含表单标签“请假时间”,报销表单包含表单标签“报销金额”。
其中,工作流模板库420存储了工作流模板。工作流模板包含工作流的节点、节点中的处理人、节点处理人的权限等信息。比如两级审批的工作流模板包含两个工作流节点,并且是顺序执行的。
其中,工作流关系匹配库430存储了工作流模板与业务表单之间的匹配关系信息,使得在进行业务表单操作时,可以为其他模块提供业务表单是否走工作流的依据。工作流关系匹配数据结构中主要包括四个字段,分别是业务表单类型、业务表单的id、业务表单的操作类型、工作流模板id。
其中,业务表单类型,区分不同的业务表单,比如请假单和报销单。
其中,业务表单的id用来进一步区分不同的业务表单,比如请假天数为3天的请假单id为100,请假天数为5天的请假单id为101。
其中,业务表单的操作类型分为添加、修改和删除这三种类型。比如添加请假单的操作,也就是提出请假申请的操作。当添加请假单操作完成时,也就是请假完成了。比如修改请假单的操作,也就是基于之前已经通过的请假单,进行修改之后,再次发起请假申请。比如将请假天数从3天修改为5天,当修改后的请假单通过时,则请假完成了。比如删除请假单的操作,也就是取消请假。比如将5天的请假单删除,则取消请假完成。
其中,工作流模板id是工作流模板的唯一身份标识。
为了实现同一个业务表单可以与多个工作流模板进行绑定,可以在工作流关系匹配数据结构中添加字段“属性过滤表达式”来根据当前业务表单相关的信息等自动进行工作流模板的选择。比如,根据请假表单的“属性过滤表达式”进行工作流模板选择过滤的示例。请假表单中有属性days,表示请假的天数。***有两个工作流模板,其中工作流模板1的id为100,包括直属上司和部门领导两级流程审批节点。工作流模板2的id为200,包括直属上司、部门领导和单位领导三级流程审批节点。建立工作流关系匹配数据结构A,设置属性业务表单类型=请假单,业务表单的操作类型=新建,工作流模板id=100,属性过滤表达式=“days<=3”。建立工作流关系匹配数据结构B,设置属性业务表单类型=请假单,业务表单的操作类型=新建,工作流模板id=200,属性过滤表达式=“days>3”。用户发起请假单申请,当请假天数days为2天时,在流程发起阶段将匹配出工作流模板id=100来发起工作流。当用户请假天数为4天时,将匹配出工作流模板id=200来发起工作流。
其中,工作流运行实例库450存储了一系列的根据工作流模板生成的实例。工作流运行实例是工作流引擎执行的依据,实例中明确了节点的处理人、节点的处理权限、节点的流向等信息。比如两级审批的工作流模板包含两个工作流节点,将其生成工作流运行实例后,也将包含两个节点,并且节点处理人可能会根据工作流发起时的信息不同而不同。比如,部门A的请假单的第一个节点的处理人是甲,而部门B的请假单的第一个节点的处理人是乙。
其中,方法调用堆栈库440对业务表单操作的后端操作逻辑的方法执行堆栈进行了存储,主要包括调用类、调用方法名、调用方法名参数集合信息。比如新建请假表单的后端操作逻辑的执行方法为:LeaveFormService.newLeaveForm(LeaveForm form),则调用类为LeaveFormService,调用方法名为newLeaveForm,调研方法名参数集合为LeaveFormform。
如图4所示,配置定义模块包含关联配置器110,关联配置器110从业务表单数据库410和工作流模板数据库420中读取数据,将其中的工作流模板与业务表单进行两两关联,并将关联信息存入工作流关系匹配库430中,具体的关联方法还是将业务表单数据库中的业务表单的标识id与工作流模板数据库中的工作流模板的标识id建立映射关系,使得输入业务表单的标识id可以调出工作流模板的标识id或者输入工作流模板的标识id可以调出业务表单的标识id。
如图5所示,工作流发起模块包含URL***210、方法截取器220、工作流判定器230、工作流发起器240、调用堆栈保存器250和工作流引擎260。
用户点击业务表单按钮后,会产生一个对后台的URL***,URL***210对该URL进行拦截,作为后面的工作流判定器230的参数。
URL截取器210将利用Java Servlet Filter或者其他类似的技术来对访问请求进行截取,抽取其中的URL参数,形如:*/leaveForm.do?action=submit。
用户点击业务表单按钮后,会产生一个对后台的URL***,该URL链接对应后端的一个执行方法,方法截取器220对该方法的上下文信息进行截取。该上下文信息包括业务表单、调用类、调用方法名、调用方法名参数集合、业务表单操作类型。
方法截取器220可以采用面向方面编程(Aspect Oriented Programming,AOP)的技术来截取执行方法的上下文信息。
根据URL***210和方法截取器220传入的URL、业务表单、业务表单操作类型参数,工作流判定器230从工作流关系匹配库430中查询是否有关联的工作流模板id存在。如果存在关联的工作流模板id,则利用工作流模板id从工作流模板库420中查询出来。
工作流发起器240。根据传入的工作流模板id和业务表单,调用工作流引擎260来发起工作流。
调用堆栈保存器250。方法截取器220中截取的上下文信息被调用堆栈保存器250进行处理后存入方法调用堆栈库440中。
如图6所示,工作流处理模块包含工作流完成处理器310。
工作流引擎260根据工作流运行实例库450中的工作流运行实例信息,将业务表单库410中的业务表单分派给相应的节点处理人进行处理。
如果工作流以失败结束,则从方法调用堆栈库440中删除之前存入的方法执行堆栈,业务表单操作失败。如果工作流以成功结束,则从方法调用堆栈库440中调出之前存入的方法执行堆栈,采用反射的方式恢复之前的运行场景并继续执行,使得业务表单操作成功完成。
比如,方法执行堆栈中调用类为LeaveFormService,调用方法名为newLeaveForm,调研方法名参数集合为LeaveForm form。则采用反射方法后,将继续执行LeaveFormService.newLeaveForm(LeaveForm form)操作。
上述方法和装置,将业务表单和工作流分别定义和存储,应用时只需要根据需要将二者关联起来即可,可以实现多对多的关联关系,彻底改变目前业务表单和工作流一一绑定的方式,可以在包含有多个工作流的工作流数据库基础上,可以方便地设定多个不同的业务表单。甚至在工作流数据库中预设有足够数量的工作流时,在此基础上程序开发员甚至是用户可以不用特别去设计工作流,直接根据实际需要进行调用和配置即可,进而大大提高应用程序开发效率,缩小程序编写的时间,缩短了表单在实际中应用的时间。
以上详细描述了本发明的较佳具体实施例,应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域中技术人员依本发明构思在现有技术基础上通过逻辑分析、推理或者根据有限的实验可以得到的技术方案,均应该在由本权利要求书所确定的保护范围之中。
Claims (10)
1.一种无侵入式的业务表单工作流化的实现装置,其特征在于该装置包括:
业务表单数据库,用于预存多种类型的、异构结构的业务表单;
工作流模板数据库,用于预存多种工作流模板;
工作流关系匹配数据库,用于存储工作流模板与业务表单之间的匹配关系信息;
关联配置器,用于读取所述业务表单数据库和工作流模板数据库中数据,将其中的工作流模板与业务表单进行两两关联,并将关联信息存入所述工作流关系匹配数据库中;
方法调用堆栈库,用于对业务表单操作的后端操作逻辑的方法执行堆栈进行存储;
URL截取器,用于截取用户对业务表单操作产生的URL***;
方法截取器,用于截取URL***对应后端的执行方法的上下文信息;
工作流判定器,用于根据URL***和方法截取器传入的URL***、业务表单、业务表单操作类型参数,从工作流关系匹配数据库中查询是否有关联的工作流模板id存在,如果存在关联的工作流模板id,则利用工作流模板id从工作流模板数据库中查询出来传输给工作流发起器;
工作流发起器,用于根据传入的工作流模板id和业务表单,调用工作流引擎来发起工作流;
工作流引擎,用于根据工作流运行实例数据库中的工作流运行实例信息,将业务表单数据库中的业务表单分派给相应的节点处理人进行处理;
调用堆栈保存器,用于将方法截取器截取的上下文信息进行处理并存入方法调用堆栈库中;以及
工作流完成处理器,用于处理工作流结束工作。
2.根据权利要求1所述的业务表单工作流化的实现装置,其特征在于:
所述上下文信息包括URL***、业务表单和操作类型。
3.根据权利要求1所述的业务表单工作流化的实现装置,其特征在于,所述工作流完成处理器处理工作流结束工作,具体是:
如工作流以失败结束,则从方法调用堆栈库中删除之前存入的方法执行堆栈,业务表单操作失败;
如工作流以成功结束,则从方法调用堆栈库中调出之前存入的方法执行堆栈,采用反射的方式恢复之前的运行场景并继续执行,使得业务表单操作成功完成。
4.根据权利要求1至3中任一项所述的业务表单工作流化的实现装置,其特征在于:
所述工作流关系匹配数据库的数据结构中主要包括四个字段,分别是业务表单类型、业务表单的id、业务表单的操作类型和工作流模板id;
所述业务表单类型,用于区分不同类型的业务表单;
所述业务表单的id,用于对同一类型的业务表单进行区分;
所述业务表单的操作类型,包括添加、修改和删除三种类型;
工作流模板id,用于唯一标识工作流程模板。
5.根据权利要求4所述的业务表单工作流化的实现装置,其特征在于:
所述工作流关系匹配数据库的数据结构中还包括表单属性过滤表达式,用于根据当前业务表单信息来自动进行工作流模板的选择。
6.根据权利要求1至3中任一项所述的业务表单工作流化的实现装置,其特征在于,所述关联配置器将工作流模板与业务表单进行两两关联,具体是:
将业务表单数据库中的业务表单的标识id与工作流模板数据库中的工作流模板的标识id建立映射关系,使得输入业务表单的标识id可以调出工作流模板的标识id或者输入工作流模板的标识id可以调出业务表单的标识id。
7.根据权利要求1至3中任一项所述的业务表单工作流化的实现装置,其特征在于:
所述工作流模板包含工作流的节点、节点中的处理人和节点处理人的权限。
8.一种无侵入式的业务表单工作流化的实现方法,其特征在于包括以下步骤:
将业务表单数据库中的业务表单与工作流模板数据库中的工作流模板建立两两关联关系;
接收用户点击业务表单按钮的命令,执行后端的业务逻辑操作;
截取业务表单操作的上下文信息;
根据截取的所述上下文信息,查询该业务表单是否存在与其具有关联关系的工作流模板;
如不存在,则业务表单操作完成;
如存在,则停止业务表单的操作,并将该操作的调用堆栈信息进行保存,并顺序执行后续步骤;
调用工作流引擎,并根据查询到的工作流模板生成工作流实例;
利用工作流引擎根据工作流模板的定义,调度给不同的节点处理人进行工作流处理;
判断工作流是否结束,如未结束,则返回上一步循环执行;如结束,则顺序执行后续步骤;
判断工作流是否成功结束;
如是,则丢弃之前存入方法调用堆栈中的信息,并以失败结束业务表单的操作;
如否,则获取之前存入方法调用堆栈中的信息,继续执行业务表单的操作方法,使得业务表单的操作成功完成。
9.根据权利要求8所述的无侵入式的业务表单工作流化的实现方法,其特征在于,所述将业务表单数据库中的业务表单与工作流模板数据库中的工作流模板建立关联关系,具体是:
将业务表单数据库中的业务表单的标识id与工作流模板数据库中的工作流模板的标识id建立映射关系,使得输入业务表单的标识id可以调出工作流模板的标识id或者输入工作流模板的标识id可以调出业务表单的标识id。
10.根据权利要求8所述的无侵入式的业务表单工作流化的实现方法,其特征在于:
所述上下文信息包括URL***、业务表单和操作类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310217986.3A CN104216912B (zh) | 2013-06-04 | 2013-06-04 | 一种无侵入式的业务表单工作流化的实现方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310217986.3A CN104216912B (zh) | 2013-06-04 | 2013-06-04 | 一种无侵入式的业务表单工作流化的实现方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104216912A CN104216912A (zh) | 2014-12-17 |
CN104216912B true CN104216912B (zh) | 2017-10-27 |
Family
ID=52098413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310217986.3A Active CN104216912B (zh) | 2013-06-04 | 2013-06-04 | 一种无侵入式的业务表单工作流化的实现方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104216912B (zh) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105183447A (zh) * | 2015-07-13 | 2015-12-23 | 国云科技股份有限公司 | 一种轻量级的流程引擎实现方法 |
CN105427030B (zh) * | 2015-11-06 | 2017-04-05 | 中国南方电网有限责任公司 | 一种预警信息的差异化处理方法及*** |
CN105701641A (zh) * | 2015-12-31 | 2016-06-22 | 合肥大多数信息科技有限公司 | 一种贴合传统纸质化办公的工作流程生成方法 |
CN107451789A (zh) * | 2016-05-31 | 2017-12-08 | 北京京东尚科信息技术有限公司 | 业务流程处理方法与*** |
CN106296131A (zh) * | 2016-08-17 | 2017-01-04 | 浪潮通用软件有限公司 | 所见即所得的单据审批***及单据审批方法 |
CN108346028B (zh) * | 2017-01-24 | 2022-05-06 | 阿里巴巴集团控股有限公司 | 一种业务审批处理方法、装置及*** |
CN107122173A (zh) * | 2017-03-28 | 2017-09-01 | 成都优易数据有限公司 | 一种适配activiti、可拖拽的表单生成方法 |
CN107038533B (zh) * | 2017-04-18 | 2020-10-30 | 北京思特奇信息技术股份有限公司 | 一种实现可配置化流程审批的方法及*** |
CN107180338A (zh) * | 2017-05-22 | 2017-09-19 | 深圳市小牛在线互联网信息咨询有限公司 | 业务执行方法、装置、存储介质及计算机设备 |
CN107357882A (zh) * | 2017-07-10 | 2017-11-17 | 成都牵牛草信息技术有限公司 | 基于依据字段设置审批流程的方法 |
CN107392499A (zh) | 2017-08-10 | 2017-11-24 | 成都牵牛草信息技术有限公司 | 对使用者进行审批流程及其审批节点授权的方法 |
CN107665421A (zh) * | 2017-09-08 | 2018-02-06 | 金蝶软件(中国)有限公司 | 单据审批方法、装置、存储介质和计算机设备 |
CN107705201B (zh) * | 2017-10-24 | 2021-06-18 | 深圳麦亚信科技股份有限公司 | 一种用于优化信贷业务流程与数据关系的方法及其*** |
CN107943465B (zh) * | 2017-12-29 | 2021-07-02 | 北京奇虎科技有限公司 | 一种生成html表单的方法及装置 |
CN108920474A (zh) * | 2018-02-28 | 2018-11-30 | 大连智能创世科技有限公司 | 一种基于Flowable的业务流管理方法及*** |
CN108510240A (zh) * | 2018-03-26 | 2018-09-07 | 科大国创软件股份有限公司 | 一种文书动态配置***及其配置方法 |
CN109144647B (zh) * | 2018-08-21 | 2021-11-16 | 深圳博沃智慧科技有限公司 | 一种表单设计方法与装置、终端设备以及存储介质 |
CN109165856B (zh) * | 2018-08-31 | 2023-08-08 | 平安科技(深圳)有限公司 | 审批链的动态配置方法、装置及存储介质 |
CN109389299B (zh) * | 2018-09-26 | 2023-10-31 | 中国平安人寿保险股份有限公司 | 工作流流程部署方法、装置、计算机设备和存储介质 |
CN109614409A (zh) * | 2018-10-29 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 业务数据处理方法、装置和服务器 |
CN109523157B (zh) * | 2018-11-14 | 2023-06-23 | 北京中电普华信息技术有限公司 | 一种业务流程的处理方法及*** |
CN109636320A (zh) * | 2018-11-27 | 2019-04-16 | 平安科技(深圳)有限公司 | 流程审批方法及终端设备 |
CN109858727B (zh) * | 2018-11-28 | 2021-05-04 | 深圳中广核工程设计有限公司 | 一种用户控件及其构建方法以及工作流控制方法 |
CN110135595A (zh) * | 2019-04-12 | 2019-08-16 | 中国运载火箭技术研究院 | 基于任务模板的装备信息操作的方法和*** |
CN112101885A (zh) * | 2019-06-17 | 2020-12-18 | 北京奎牛科技有限公司 | 内嵌业务逻辑的电子文件的生成和处理方法 |
CN110489657B (zh) * | 2019-07-05 | 2022-08-26 | 五八有限公司 | 一种信息过滤方法、装置、终端设备及存储介质 |
CN110503385B (zh) * | 2019-07-15 | 2022-08-12 | 招联消费金融有限公司 | 业务处理方法、装置、计算机设备和存储介质 |
CN110414842A (zh) * | 2019-07-30 | 2019-11-05 | 杭州一骑轻尘信息技术有限公司 | 风控管理方法及*** |
CN110490558A (zh) * | 2019-08-26 | 2019-11-22 | 珠海格力电器股份有限公司 | 流程签审平台、方法及存储介质 |
CN110544075A (zh) * | 2019-09-16 | 2019-12-06 | 世纪海航(厦门)科技有限公司 | 一种资产管理流程配置方法、装置及设备 |
CN110782234B (zh) * | 2019-11-07 | 2020-10-02 | 殷步九 | 一种基于事务逻辑的信息管理方法及*** |
CN111143866B (zh) * | 2019-12-27 | 2022-02-15 | 远光软件股份有限公司 | 基于多场景模式的权限变更方法、装置、设备及介质 |
CN112068911B (zh) * | 2020-07-31 | 2023-12-26 | 广东飞企互联科技股份有限公司 | 电子表单的生成方法、装置、***、设备以及介质 |
CN112882699B (zh) * | 2021-02-09 | 2024-05-07 | 成都新希望金融信息有限公司 | 基于流程配置引擎的业务处理方法、装置、设备及介质 |
CN113034253A (zh) * | 2021-03-18 | 2021-06-25 | 上海嵩恒网络科技股份有限公司 | 预警方法、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101359290A (zh) * | 2008-09-11 | 2009-02-04 | 中兴通讯股份有限公司 | 一种基于元数据的定制业务单据的方法及装置 |
CN101706914A (zh) * | 2009-12-01 | 2010-05-12 | 北京九恒星科技股份有限公司 | 工作流生成方法和装置 |
CN102508702A (zh) * | 2011-10-20 | 2012-06-20 | 北京金和软件股份有限公司 | 一种基于aop技术进行拦截来处理业务通用逻辑的方法 |
CN102663554A (zh) * | 2012-04-11 | 2012-09-12 | 北京航空航天大学 | 项目管理中一种用于流程定制的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060069605A1 (en) * | 2004-09-29 | 2006-03-30 | Microsoft Corporation | Workflow association in a collaborative application |
-
2013
- 2013-06-04 CN CN201310217986.3A patent/CN104216912B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101359290A (zh) * | 2008-09-11 | 2009-02-04 | 中兴通讯股份有限公司 | 一种基于元数据的定制业务单据的方法及装置 |
CN101706914A (zh) * | 2009-12-01 | 2010-05-12 | 北京九恒星科技股份有限公司 | 工作流生成方法和装置 |
CN102508702A (zh) * | 2011-10-20 | 2012-06-20 | 北京金和软件股份有限公司 | 一种基于aop技术进行拦截来处理业务通用逻辑的方法 |
CN102663554A (zh) * | 2012-04-11 | 2012-09-12 | 北京航空航天大学 | 项目管理中一种用于流程定制的方法 |
Non-Patent Citations (2)
Title |
---|
"Activiti工作流表单设计及开发";man1900;《http://www.iteye.com/topic/1127730》;20121113;第1-10页 * |
"基于表单和关系型数据库的工作流管理***";肖宇 等;《华中科技大学学报(自然科学版)》;20041130;第32卷(第11期);第1-2章,图3、4 * |
Also Published As
Publication number | Publication date |
---|---|
CN104216912A (zh) | 2014-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104216912B (zh) | 一种无侵入式的业务表单工作流化的实现方法与装置 | |
CN106445556B (zh) | 一种可视化代码生成方法及*** | |
US8645175B1 (en) | Workflow system and method for single call batch processing of collections of database records | |
CN103425462B (zh) | 一种工作流数据持久化的方法和装置 | |
US7899787B2 (en) | Object-oriented system and method using shadowing object for approval control | |
US8412813B2 (en) | Customizable asset governance for a distributed reusable software library | |
CN101388904B (zh) | Gis服务聚合方法、装置及*** | |
US11106743B2 (en) | Binding traits to case nodes | |
CN111176867B (zh) | 数据共享交换及开放应用平台 | |
CN101373474A (zh) | 海量数据实时处理架构及用于该架构的实时随需处理平台 | |
CN110471949A (zh) | 数据血缘分析方法、装置、***、服务器及存储介质 | |
CN112835985B (zh) | 一种基于分布式账本的空间数据共享***及方法 | |
CN104660435A (zh) | 面向智能管道的事务型网管引擎及其网管事务处理方法 | |
CN101819551A (zh) | 记录企业信息***的服务交互数据的方法和*** | |
CN107423223A (zh) | 测试管理*** | |
CN111143391A (zh) | 一种数据共享交换方法及*** | |
CN115480810A (zh) | 一种基于云原生的低代码平台 | |
CN114168117A (zh) | 一种基于设计器的信创低代码开发工具和存储设备 | |
CN108228762A (zh) | 用于配置主数据库通用模板的方法和*** | |
CN109858905B (zh) | 跨***的电子凭证处理方法及装置 | |
CN107133040A (zh) | 一种标准产品业务装置及业务模块扩展置换方法 | |
US20060136924A1 (en) | Workflow process management system including shadow process instances | |
Fang et al. | Using object oriented analysis design workflow engine for manufacturing industry in IoT | |
CN114880387A (zh) | 数据集成脚本生成方法及装置、存储介质及电子设备 | |
CN110032703A (zh) | 一种企业网站托管方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |