CN115048103A - 工作流实现方法、装置及系统 - Google Patents
工作流实现方法、装置及系统 Download PDFInfo
- Publication number
- CN115048103A CN115048103A CN202210410988.3A CN202210410988A CN115048103A CN 115048103 A CN115048103 A CN 115048103A CN 202210410988 A CN202210410988 A CN 202210410988A CN 115048103 A CN115048103 A CN 115048103A
- Authority
- CN
- China
- Prior art keywords
- flow
- task node
- node
- monitor
- template
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
Abstract
本发明提供一种工作流实现方法、装置及系统,所述方法包括:在接收到流程设计用户的流程模板激活指令的情况下,激活所述流程设计用户提交的流程模板,并对所述流程模板进行解析和修改,保存经过解析和修改后的流程模板中的各任务节点,并生成符合业务流程建模标记BPMN规范的xml格式的数据和通用数据格式的数据;接收业务用户的流程发起请求,所述流程发起请求用于请求执行所述流程模板对应的流程实例,响应于所述流程发起请求,通过监听器控制所述流程实例按照所述流程模板的处理逻辑进行流转。本发明可以让一套系统适配多种业务场景和需求,减少了开发的成本及时间,避免了资源浪费。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种工作流实现方法、装置及系统。
背景技术
工作流(Workflow),又称为流程,是对工作流程及其各操作步骤之间业务规则的抽象、概括、描述,为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或任务。属于计算机支持的协同工作的一部分。简单来说,就是将一系列连贯的业务处理抽象成一个流程,由此定义一个工作流。
现有的工作流相关解决方案存在“一个业务场景,一个管理系统”的问题。现有的工作流管理,是根据业务需要提出需求,由开发人员根据所提需求设计、定义工作流,再根据定义的工作流开发相对应的应用。也就是说,其解决方案是针对某一特定需求或应用场景,专门定制一个应用。但当业务需求或业务场景发生变化,整套工作流及工作流管理系统就要随之进行变更,工作量大,新系统投入使用所需的周期长,并且大概率会进行基于同一基本逻辑的重复性开发,容易产生资源浪费。
发明内容
本发明提供一种工作流实现方法、装置及系统,用以解决现有技术中当业务需求或业务场景发生变化时需要重新开发相应的工作流管理系统,耗时且耗力的缺陷。
本发明提供一种工作流实现方法,包括:
在接收到流程设计用户的流程模板激活指令的情况下,激活所述流程设计用户提交的流程模板,并对所述流程模板进行解析和修改,保存经过解析和修改后的流程模板中的各任务节点,并生成符合业务流程建模标记BPMN规范的xml格式的数据和通用数据格式的数据;
接收业务用户的流程发起请求,所述流程发起请求用于请求执行所述流程模板对应的流程实例,响应于所述流程发起请求,通过监听器控制所述流程实例按照所述流程模板的处理逻辑进行流转。
根据本发明提供的一种工作流实现方法,所述对所述流程模板进行解析和修改,包括:
将所述流程模板转换为程序可读的代码和参数,得到解析后的流程模板;
将前序定义的所述监听器绑定到所述解析后的流程模板上,并将预定义的服务类绑定到所述解析后的流程模板中的服务节点。
根据本发明提供的一种工作流实现方法,所述响应于所述流程发起请求,通过监听器控制所述流程实例按照所述流程模板的处理逻辑进行流转,包括:
响应于所述流程发起请求,流程发起监听器被触发,所述流程发起监听器将所述流程发起请求包含的参数存储至数据库中;
所述流程发起监听器的操作完成后,自动完成节点监听器被触发,自动完成节点监听器将所述流程发起请求中所提交的表单参数绑定至发起节点,并在所述自动完成节点监听器的操作完成后,流程进入到第一个任务节点;
每到达一个需要用户操作的任务节点时,任务节点创建监听器被触发,所述任务节点创建监听器在所述数据库中插入当前任务节点的信息,并为所述当前任务节点分配处理人;
在接收到用户提交的参数以及选择的下一步处理人的信息后,任务节点完成监听器被触发,所述任务节点完成监听器更新所述数据库中所述当前任务节点的信息,并将实际处理人信息记录至所述数据库中,以及将所述流程实例从发起节点到当前任务节点的路径保存至流程参数中,流程进入到下一任务节点,并再次触发所述任务节点创建监听器;
在最后一个任务节点完成之后,流程结束监听器被触发,所述流程结束监听器更新所述数据库中所述流程实例的状态。
根据本发明提供的一种工作流实现方法,所述为所述当前任务节点分配处理人,包括:
根据流程模板中的指定处理人信息,为所述当前任务节点分配处理人;或者,
根据传递到当前任务节点的参数,按照字段名称以及对应的数值匹配相应的处理人,为所述当前任务节点分配匹配到的处理人。
本发明还提供一种工作流实现装置,包括:
流程模板处理模块,用于在接收到流程设计用户的流程模板激活指令的情况下,激活所述流程设计用户提交的流程模板,并对所述流程模板进行解析和修改,保存经过解析和修改后的流程模板中的各任务节点,并生成符合业务流程建模标记BPMN规范的xml格式的数据和通用数据格式的数据;
流程实例化模块,用于接收业务用户的流程发起请求,所述流程发起请求用于请求执行所述流程模板对应的流程实例,响应于所述流程发起请求,通过监听器控制所述流程实例按照所述流程模板的处理逻辑进行流转。
根据本发明提供的一种工作流实现装置,所述对所述流程模板进行解析和修改,包括:
将所述流程模板转换为程序可读的代码和参数,得到解析后的流程模板;
将前序定义的所述监听器绑定到所述解析后的流程模板上,并将预定义的服务类绑定到所述解析后的流程模板中的服务节点。
根据本发明提供的一种工作流实现装置,所述流程实例化模块,用于:
响应于所述流程发起请求,流程发起监听器被触发,所述流程发起监听器将所述流程发起请求包含的参数存储至数据库中;
所述流程发起监听器的操作完成后,自动完成节点监听器被触发,自动完成节点监听器将所述流程发起请求中所提交的表单参数绑定至发起节点,并在所述自动完成节点监听器的操作完成后,流程进入到第一个任务节点;
每到达一个需要用户操作的任务节点时,任务节点创建监听器被触发,所述任务节点创建监听器在所述数据库中插入当前任务节点的信息,并为所述当前任务节点分配处理人;
在接收到用户提交的参数以及选择的下一步处理人的信息后,任务节点完成监听器被触发,所述任务节点完成监听器更新所述数据库中所述当前任务节点的信息,并将实际处理人信息记录至所述数据库中,以及将所述流程实例从发起节点到当前任务节点的路径保存至流程参数中,流程进入到下一任务节点,并再次触发所述任务节点创建监听器;
在最后一个任务节点完成之后,流程结束监听器被触发,所述流程结束监听器更新所述数据库中所述流程实例的状态。
根据本发明提供的一种工作流实现装置,所述为所述当前任务节点分配处理人,包括:
根据流程模板中的指定处理人信息,为所述当前任务节点分配处理人;或者,
根据传递到当前任务节点的参数,按照字段名称以及对应的数值匹配相应的处理人,为所述当前任务节点分配匹配到的处理人。
本发明还提供一种工作流实现系统,包括如前所述的工作流实现装置,所述系统还包括:
前端可视化编辑界面,用于提供基于BPMN规范的用于创建、编辑流程模板的元素,以供流程设计用户创建、编辑并提交流程模板;
表单模块,用于供流程设计用户定义流程中要传递的参数,创建表单,存储所述流程设计用户自定义的表单结构和数据,并在所述流程实例的流转过程中接收用户提交的表单数据和展示表单内容。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述工作流实现方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述工作流实现方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述工作流实现方法。
本发明提供的工作流实现方法、装置及系统,通过对用户提交的流程模板进行解析和修改,并响应用户的请求,通过监听器控制流程实例按照流程模板的处理逻辑进行流转,由于本发明使用了由一系列监听器组成的框架,并且流程中任务的处理人以及任务参数都是支持自定义的,整个流程的流转不需要依据业务逻辑做处理,是与流程所对应的需求完全隔离开的。因此可以让一套系统适配多种业务场景和需求,让用户自己定义流程,减少了业务提出需求后技术人员理解、沟通并设计、定义流程的过程,后续的适配改动也仅限于其他部分,监听器组成的主框架是固定的,减少了开发的成本及时间,避免了资源浪费。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的工作流实现方法的流程示意图之一;
图2为本发明实施例提供的一个流程示例图;
图3为本发明实施例提供的工作流实现方法的流程示意图之二;
图4为本发明实施例提供的工作流实现装置的结构示意图;
图5为本发明实施例提供的工作流实现系统的结构示意图;
图6为本发明实施例提供的一种电子设备的实体结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的流程管理方案基本使用了Activiti工作流引擎处理基本的工作流流转。Activiti自带可视化工具,可以生成工作流文件,也可以自行编写xml格式的工作流文件。在运行过程中,Activiti提供简单的页面供用户进行流程流转,但并不支持查找及嵌入系统的处理权限管理,或是复杂的数据流转和逻辑处理。
现有的使用Activiti工作流引擎的技术方案是根据特定的需求或应用场景进行开发,因此,过程中使用到的参数以及处理逻辑都是特别针对业务场景的。那么,对于不同的需求或场景,就需要多次重新开发,重新与业务沟通需求,重新设计并定义流程,不仅时间、人工成本高,在重新开发的过程中,容易产生错误代码,进一步延长了开发周期,导致从需求提出到投入使用需要耗费大量时间及人工。
为了解决上述问题,本发明实施例提供了一种工作流实现方法、装置及系统。
图1为本发明实施例提供的工作流实现方法的流程示意图之一。如图1所示,该方法包括以下步骤:
步骤100、在接收到流程设计用户的流程模板激活指令的情况下,激活所述流程设计用户提交的流程模板,并对所述流程模板进行解析和修改,保存经过解析和修改后的流程模板中的各任务节点,并生成符合业务流程建模标记BPMN规范的xml格式的数据和通用数据格式的数据;
需要理解的是,流程设计用户是指设计流程的用户,流程设计用户可以在前端可视化编辑界面上创建、编辑并提交流程模板。
所述流程模板为所述流程设计用户自定义的工作流文件。
其中,前端可视化编辑界面提供了基于BPMN规范的用于创建、编辑流程模板的元素。
流程设计用户可以在前端可视化编辑界面上新建模板,输入模板信息如模板名称、描述等,接着在新建的模板中进行可视化编辑,流程设计用户在新建的模板中进行可视化编辑后,可以激活模板。
后台服务器在接收到流程设计用户的流程模板激活指令的情况下,激活所述流程设计用户提交的流程模板。
在激活模板的同时,需要对所述流程模板进行解析和修改。
其中,解析是指将流程设计用户提交的可视化的流程模板转为程序可读的代码和参数,得到解析后的流程模板。
修改是指将前序定义的监听器绑定到解析后的流程模板上,并将预定义的服务类绑定到解析后的流程模板中的服务节点。
此处,前序是指监听器不根据业务逻辑的改变而改变,不需要由用户自己定义,也不需要根据用户定义的模板改动。
可选地,所述对所述流程模板进行解析和修改,包括:
将所述流程模板转换为程序可读的代码和参数,得到解析后的流程模板;
将前序定义的所述监听器绑定到所述解析后的流程模板上,并将预定义的服务类绑定到所述解析后的流程模板中的服务节点。
需要说明的是,存在一些不需要人工操作完成的逻辑,比如权限申请审批通过后自动赋权,就可以单独写一个类,不需要嵌入原有的框架,在流程到达服务节点后,自动调用这个类。
其中,服务节点是指不需要用户操作的节点,只提供一个服务,比如自动赋权这样的,到达节点后执行需要执行的服务就可以完成节点,不需要用户操作去完成节点。
之后,保存经过解析和修改后的流程模板中的各任务节点,并记录版本号,方便后续的版本追溯。
其中,任务节点是指需要用户操作的节点,比如提交、审批这些需要用户在该节点进行一些人为操作后完成节点。
并生成符合业务流程建模标记(Business Process Modeling Notation,BPMN)规范的xml格式的数据和通用数据格式的数据。
其中,通用数据格式的数据用于存储扩展的节点属性。
扩展的节点属性是指有一些框架需要的节点属性,例如节点的候选处理人有哪些、节点处理的时候前端页面上的按钮有哪些、服务节点需要绑定的服务类是什么,诸如此类的不存在于BPMN当中的属性,没有办法储存在符合BPMN规范的xml数据中,因此另外保存一份通用数据格式的数据,这样用户创建的模板就可以支持更多的定制化功能,不仅仅局限于bpmn原有的那些。
值得说明的是,通用数据格式的数据是依赖xml格式数据生成的,因此,并不存在需要同一属性维护两份数据的问题。
在一些可选的实施例中,通用数据格式的数据为Json格式的数据,可以轻松转换成java程序中的实体。
步骤101、接收业务用户的流程发起请求,所述流程发起请求用于请求执行所述流程模板对应的流程实例,响应于所述流程发起请求,通过监听器控制所述流程实例按照所述流程模板的处理逻辑进行流转。
业务用户是指执行流程的用户,比如请假流程中申请和审批的员工。
图2为本发明实施例提供的一个流程示例图。
可以理解的是,业务用户提交流程发起请求,所述流程发起请求用于请求执行所述流程模板对应的流程实例,后台服务器接收业务用户的流程发起请求,响应于所述流程发起请求,通过监听器控制所述流程实例按照所述流程模板的处理逻辑进行流转。
其中,流程实例的处理逻辑包括发起流程,流程任务的分配、分发,流程的正常流转、跳转、删除、终止等。由一系列固定的监听器控制所述流程实例按照所述流程模板的处理逻辑进行流转。
本发明提供一种通用的工作流实现解决方案的设计。基于BPMN规范,搭建一套适配多种应用场景及需求的流程处理框架,由5个特别设计开发的监听器组成,实现“一个管理系统,多种业务场景”。该解决方案的开发流程跳过了由开发人员设计、定义工作流的步骤,支持由用户直接自定义工作流,并且自定义的工作流可以完全适配统一的管理系统,不需要多次定制开发。
其中,5个监听器具体包括:
1)流程发起监听器startProcessListener,在流程被发起的时候,在数据库中插入记录,包括流程名称、发起人、发起时间、流程的模板、流程的状态,以及可能出现的流程之间的层级关系。
需要说明的是,子流程附属于另一个流程,就是说一个流程在进行到某一步骤时,有可能需要触发多个同时存在的流程,例如一个由总部发起的问题反馈流程,在反馈的步骤需要多个分部分别反馈,但是分部反馈的步骤又是统一的,那么在分部反馈的部分就可以定义成一个子流程,总体看来就像一个流程产生了多个相同的分支后又汇总到一个流程。
2)流程结束监听器endProcessListener,在流程结束的时候更新数据库中流程的状态
3)任务节点创建监听器createTaskListener,在数据库中插入一条记录,并将可以处理该节点的人绑定到节点上,可选地,在模板定义的时候可以选择发送通知给处理人,在绑定处理人之后就会发送通知告知他需要进行处理操作。
4)任务节点完成监听器completeTaskListener,更新数据库中任务节点的完成时间、实际操作完成该节点的人、保存提交的表单数据。
5)自动完成节点监听器autoCompleteTaskListener(即某些节点可以不需要任何操作,自动跳过/完成),在发起流程的时候可以指定忽略某些节点,这样同样的流程模板在仅有些微步骤差别时可以被重新利用,比如同样是问题反馈流程,可能有总部先发给分部、分部反馈之后又有分部二次确认步骤的流程,也有总部发给分部后分部直接反馈给总部的流程。在这样的情况下,可以只设计一个流程,在第二种情况发起时选择跳过二次确认的节点,那么流程进行到二次确认时会自动完成,直接进行到后面的节点。
需要说明的是,在本发明实施例中,流程如何流转,包括有哪些节点,以及节点之间是怎么流转的,是由流程设计人员自己定义的,本发明并不关心流程设计人员设计出来的流程具体细节是什么。这里的流程设计人员通常指的是业务的管理者,比如一家公司需要一个请假流程,那么由该公司的专门负责管理系统的人员(称为“管理用户”,也即流程设计用户)去设计专属的请假流程,可能需要区别于流程完成任务节点的那些用户(“业务用户”)。
现有技术的问题在于一个业务逻辑可能就要设计一套处理方案,包括前端的页面展示、后台程序和数据库的处理。对于开发人员来说,需要不断的根据“管理用户”提出的需求,开发不同的应用。整个过程包括了需求提出-需求分析-开发设计-开发-测试等一系列的步骤,从需求提出到实际部署应用可能需要耗费数月。而本发明因为提供了一个通用化的框架,只需要部署一次,就可以适配多种业务,极大程度地缩短了业务应用投入使用所需的时间。这一框架的“通用化”更多是面向开发人员的,哪怕有特殊场景需要特别定制处理逻辑,也是独立于整体框架之外的,不需要在后续开发中考虑流程运行的逻辑处理,从而降低了开发成本,对于“管理用户”来说,也降低了他们需要投入的成本。
在完成流程模板的定义并激活之后,流程实例可以多次发起。
本发明实施例提供的工作流实现方法,通过对用户提交的流程模板进行解析和修改,并响应用户的请求,通过监听器控制流程实例按照流程模板的处理逻辑进行流转,由于本发明使用了由一系列监听器组成的框架,并且流程中任务的处理人以及任务参数都是支持自定义的,整个流程的流转不需要依据业务逻辑做处理,是与流程所对应的需求完全隔离开的。因此可以让一套系统适配多种业务场景和需求,让用户自己定义流程,减少了业务提出需求后技术人员理解、沟通并设计、定义流程的过程,后续的适配改动也仅限于其他部分,监听器组成的主框架是固定的,减少了开发的成本及时间,避免了资源浪费。
可选地,所述响应于所述流程发起请求,通过监听器控制所述流程实例按照所述流程模板的处理逻辑进行流转,包括:
响应于所述流程发起请求,流程发起监听器被触发,所述流程发起监听器将所述流程发起请求包含的参数存储至数据库中;
所述流程发起监听器的操作完成后,自动完成节点监听器被触发,自动完成节点监听器将所述流程发起请求中所提交的表单参数绑定至发起节点,并在所述自动完成节点监听器的操作完成后,流程进入到第一个任务节点;
每到达一个需要用户操作的任务节点时,任务节点创建监听器被触发,所述任务节点创建监听器在所述数据库中插入当前任务节点的信息,并为所述当前任务节点分配处理人;
在接收到用户提交的参数以及选择的下一步处理人的信息后,任务节点完成监听器被触发,所述任务节点完成监听器更新所述数据库中所述当前任务节点的信息,并将实际处理人信息记录至所述数据库中,以及将所述流程实例从发起节点到当前任务节点的路径保存至流程参数中,流程进入到下一任务节点,并再次触发所述任务节点创建监听器;
在最后一个任务节点完成之后,流程结束监听器被触发,所述流程结束监听器更新所述数据库中所述流程实例的状态。
图3为本发明实施例提供的工作流实现方法的流程示意图之二。具体地,用户提交发起流程的请求,流程发起监听器(StartProcessListener)被触发,在流程管理系统的数据库中存储请求包含的参数。由于可能存在子流程及子流程的子流程等,数据库中保存了父子流程之间的层级关系,以及从最上层父流程到最末端叶子流程的路径。如果当前发起的流程为子流程,则主流程的参数会被传递至子流程。由于流程设计中可能存在退回到发起的情景,而流程中的第一个节点,开始节点,是一个标识性的节点,并不处理业务逻辑,因此默认第一个业务节点,即开始节点后的第一个节点为发起节点。在StartProcessListener执行结束后,会触发自动完成节点监听器(AutoCompleteTaskListener),请求中所提交的表单参数会传输并绑定至发起节点,操作完成后,发起节点会自动完成。流程进入下一节点。每到达一个需要用户操作的业务节点(称为用户节点)时,创建任务节点的监听器(CreateTaskListener)会被触发,在数据库中插入当前任务节点的信息,并更新所在流程的状态。
其中,当前任务节点的信息包括:
节点定义信息,例如,节点名称等,是在流程进行中根据定义该流程的模板信息读取的;
节点的操作信息,包括流程到达节点的时间等,直接读取系统时间得到。
接下来,分配处理人,并通知处理人。为方便提醒处理人处理任务,配置节点时,可以选择是否通知处理人,以及通知的方法,包括系统消息及邮件。如果配置了通知,在CreateTaskListener中,分配完处理人之后,会将处理人加入到通知列表中,系统会对该通知列表进行定时批量处理。用户处理任务。用户处理任务,提交参数并选择下一步处理人后,任务节点完成监听器(CompleteTaskListener)会被触发。这一步骤主要负责更新数据库中保存的这一节点的信息,以及将实际处理人记录到数据库中,同时保存当前流程从发起节点到当前节点的路径在流程参数中。在CompleteTaskListener完成执行后,流程又会到达下一节点,并再次触发CreateTaskListner。
当最后一个任务节点完成之后,流程结束的监听器(EndProcessListener)会被触发,更新数据库中该流程的状态。需要注意的是,如果当前流程是子流程,那么又会重新回到主流程的下一个节点。
其中,实际处理人即实际完成任务的用户。因为实际应用中,可能有某一群体或者多个用户都有权限可以处理同一个任务节点,为了方便追溯,需要记录具体是谁处理了这一节点。
可选地,所述为所述当前任务节点分配处理人,包括:
根据流程模板中的指定处理人信息,为所述当前任务节点分配处理人;或者,
根据传递到当前任务节点的参数,按照字段名称以及对应的数值匹配相应的处理人,为所述当前任务节点分配匹配到的处理人。
可以理解的是,一种实施方式中,可以根据流程模板中的指定处理人信息,为所述当前任务节点分配处理人。
在本发明实施例中,除了在流程模板中指定处理人外,还可以通过一定的规则自动匹配处理人,自动匹配的操作也是在上述任务节点完成监听器CreateTaskListener中完成。规则中包含字段名称及数值和需要分配的处理人,流程中传递到当前节点的参数会按照规则查找字段及对应的数值,如果有匹配的,就会自动将处理人分配到当前任务节点。
其中,自动匹配是指“数据分发”这一类特定的业务场景中,根据用户提交的数据中数据项的名称和数据项的值对处理人进行匹配。例如提交的数据中有userId(用户ID)这一数据项,那么可以根据userId的值,把对应的数据分配给对应userId的用户,但是这个userId-用户的分配规则需要事先定义。
需要注意的是,如果当前节点是由后续节点退回的,自动查找在上一次到达当前任务节点时分配的处理人,并将其设置为当前节点的处理人,而判断是否为退回的节点,是通过保存在流程参数中的路径(路径会在CompleteTaskListener中更新)分析得出的。
假设有一个流程是有退回操作的,即某一个节点的操作可以指向在这个节点之前进行过的一个节点,那么在再次到达这个之前进行过的节点(A)时,默认这个之前进行过的节点(A)的处理人就是之前处理A节点的用户。例如请假流程,用户A提交了请假申请,选择领导B为审批人(通常情况下可以选择的选项只有一个),领导B在审批该申请时认为A提交的信息不正确,选择退回该申请,那么这一流程又回到了A的申请步骤,为了简化领导B的操作,领导B不需要选择/指定退回后应该由谁处理,系统自动默认之前提交申请的人就是退回后的处理人,即A。可以理解,流程的流转是需要在完成一个节点时指定下一步的处理人,但是对于退回这一操作从实际使用的角度出发一般不需要指定下一步处理人,只需要退回到之前处理的用户。
本发明实施例提供的工作流实现方法,通过对用户提交的流程模板进行解析和修改,并响应用户的请求,通过监听器控制流程实例按照流程模板的处理逻辑进行流转,由于本发明使用了由一系列监听器组成的框架,并且流程中任务的处理人以及任务参数都是支持自定义的,整个流程的流转不需要依据业务逻辑做处理,是与流程所对应的需求完全隔离开的。因此可以让一套系统适配多种业务场景和需求,让用户自己定义流程,减少了业务提出需求后技术人员理解、沟通并设计、定义流程的过程,后续的适配改动也仅限于其他部分,监听器组成的主框架是固定的,减少了开发的成本及时间,避免了资源浪费。
下面对本发明提供的工作流实现装置进行描述,下文描述的工作流实现装置与上文描述的工作流实现方法可相互对应参照。
图4为本发明实施例提供的工作流实现装置的结构示意图。如图4所示,该工作流实现装置400包括:
流程模板处理模块410,用于在接收到流程设计用户的流程模板激活指令的情况下,激活所述流程设计用户提交的流程模板,并对所述流程模板进行解析和修改,保存经过解析和修改后的流程模板中的各任务节点,并生成符合业务流程建模标记BPMN规范的xml格式的数据和通用数据格式的数据;
流程实例化模块420,用于接收业务用户的流程发起请求,所述流程发起请求用于请求执行所述流程模板对应的流程实例,响应于所述流程发起请求,通过监听器控制所述流程实例按照所述流程模板的处理逻辑进行流转。
可选地,所述对所述流程模板进行解析和修改,包括:
将所述流程模板转换为程序可读的代码和参数,得到解析后的流程模板;
将前序定义的所述监听器绑定到所述解析后的流程模板上,并将预定义的服务类绑定到所述解析后的流程模板中的服务节点。
可选地,所述流程实例化模块,用于:
响应于所述流程发起请求,流程发起监听器被触发,所述流程发起监听器将所述流程发起请求包含的参数存储至数据库中;
所述流程发起监听器的操作完成后,自动完成节点监听器被触发,自动完成节点监听器将所述流程发起请求中所提交的表单参数绑定至发起节点,并在所述自动完成节点监听器的操作完成后,流程进入到第一个任务节点;
每到达一个需要用户操作的任务节点时,任务节点创建监听器被触发,所述任务节点创建监听器在所述数据库中插入当前任务节点的信息,并为所述当前任务节点分配处理人;
在接收到用户提交的参数以及选择的下一步处理人的信息后,任务节点完成监听器被触发,所述任务节点完成监听器更新所述数据库中所述当前任务节点的信息,并将实际处理人信息记录至所述数据库中,以及将所述流程实例从发起节点到当前任务节点的路径保存至流程参数中,流程进入到下一任务节点,并再次触发所述任务节点创建监听器;
在最后一个任务节点完成之后,流程结束监听器被触发,所述流程结束监听器更新所述数据库中所述流程实例的状态。
可选地,所述为所述当前任务节点分配处理人,包括:
根据流程模板中的指定处理人信息,为所述当前任务节点分配处理人;或者,
根据传递到当前任务节点的参数,按照字段名称以及对应的数值匹配相应的处理人,为所述当前任务节点分配匹配到的处理人。
在此需要说明的是,本发明实施例提供的工作流实现装置,能够实现上述工作流实现方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
图5为本发明实施例提供的工作流实现系统的结构示意图,该系统包括:如上述实施例所述的工作流实现装置400,所述系统500还包括:
前端可视化编辑界面510,用于提供基于BPMN规范的用于创建、编辑流程模板的元素,以供流程设计用户创建、编辑并提交流程模板;
表单模块520,用于供流程设计用户定义流程中要传递的参数,创建表单,存储所述流程设计用户自定义的表单结构和数据,并在所述流程实例的流转过程中接收用户提交的表单数据和展示表单内容。
表单模块负责创建、存储自定义表单的结构及数据,让用户能够完全灵活定义流程中要传递的参数,并在流程实例流转的过程中提交和展示表单内容。
其中,表单是负责传递业务参数的。例如,一个请假的流程,表单就可以包含请假的时间、请假的原因等,网页展现出来的是多个输入框或者选择框,让用户填写这些信息。并且在用户填写提交后,后续可以查看展示这些信息。自定义表单方便流程的制定者根据需要配置该流程业务所需的参数项。
可选地,工作流实现系统支持处理和审批两种类型的业务节点,用户可以直接看到待自己处理或者审批及批量审批的任务。流程实例查询时,可以按层级一层层展开列表,方便查看流程与流程之间的层级关系。
可选地,工作流实现系统支持跳转功能,即当一个任务不再需要处理时,(有权限的)用户可以选择需要直接跳转到的节点。
本发明实施例提供的工作流实现系统,用户可以通过前端可视化编辑界面,创建编辑并提交流程模板,工作流实现装置通过对用户提交的流程模板进行解析和修改,并响应用户的请求,通过监听器控制流程实例按照流程模板的处理逻辑进行流转,由于本发明使用了由一系列监听器组成的框架,并且流程中任务的处理人以及任务参数都是支持自定义的,整个流程的流转不需要依据业务逻辑做处理,是与流程所对应的需求完全隔离开的。因此可以让一套系统适配多种业务场景和需求,让用户自己定义流程,减少了业务提出需求后技术人员理解、沟通并设计、定义流程的过程,后续的适配改动也仅限于其他部分,监听器组成的主框架是固定的,减少了开发的成本及时间,避免了资源浪费。
图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(Communications Interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行工作流实现方法,该方法包括:在接收到流程设计用户的流程模板激活指令的情况下,激活所述流程设计用户提交的流程模板,并对所述流程模板进行解析和修改,保存经过解析和修改后的流程模板中的各任务节点,并生成符合业务流程建模标记BPMN规范的xml格式的数据和通用数据格式的数据;接收业务用户的流程发起请求,所述流程发起请求用于请求执行所述流程模板对应的流程实例,响应于所述流程发起请求,通过监听器控制所述流程实例按照所述流程模板的处理逻辑进行流转。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的工作流实现方法,该方法包括:在接收到流程设计用户的流程模板激活指令的情况下,激活所述流程设计用户提交的流程模板,并对所述流程模板进行解析和修改,保存经过解析和修改后的流程模板中的各任务节点,并生成符合业务流程建模标记BPMN规范的xml格式的数据和通用数据格式的数据;接收业务用户的流程发起请求,所述流程发起请求用于请求执行所述流程模板对应的流程实例,响应于所述流程发起请求,通过监听器控制所述流程实例按照所述流程模板的处理逻辑进行流转。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的工作流实现方法,该方法包括:在接收到流程设计用户的流程模板激活指令的情况下,激活所述流程设计用户提交的流程模板,并对所述流程模板进行解析和修改,保存经过解析和修改后的流程模板中的各任务节点,并生成符合业务流程建模标记BPMN规范的xml格式的数据和通用数据格式的数据;接收业务用户的流程发起请求,所述流程发起请求用于请求执行所述流程模板对应的流程实例,响应于所述流程发起请求,通过监听器控制所述流程实例按照所述流程模板的处理逻辑进行流转。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种工作流实现方法,其特征在于,包括:
在接收到流程设计用户的流程模板激活指令的情况下,激活所述流程设计用户提交的流程模板,并对所述流程模板进行解析和修改,保存经过解析和修改后的流程模板中的各任务节点,并生成符合业务流程建模标记BPMN规范的xml格式的数据和通用数据格式的数据;
接收业务用户的流程发起请求,所述流程发起请求用于请求执行所述流程模板对应的流程实例,响应于所述流程发起请求,通过监听器控制所述流程实例按照所述流程模板的处理逻辑进行流转。
2.根据权利要求1所述的工作流实现方法,其特征在于,所述对所述流程模板进行解析和修改,包括:
将所述流程模板转换为程序可读的代码和参数,得到解析后的流程模板;
将前序定义的所述监听器绑定到所述解析后的流程模板上,并将预定义的服务类绑定到所述解析后的流程模板中的服务节点。
3.根据权利要求1所述的工作流实现方法,其特征在于,所述响应于所述流程发起请求,通过监听器控制所述流程实例按照所述流程模板的处理逻辑进行流转,包括:
响应于所述流程发起请求,流程发起监听器被触发,所述流程发起监听器将所述流程发起请求包含的参数存储至数据库中;
所述流程发起监听器的操作完成后,自动完成节点监听器被触发,自动完成节点监听器将所述流程发起请求中所提交的表单参数绑定至发起节点,并在所述自动完成节点监听器的操作完成后,流程进入到第一个任务节点;
每到达一个需要用户操作的任务节点时,任务节点创建监听器被触发,所述任务节点创建监听器在所述数据库中插入当前任务节点的信息,并为所述当前任务节点分配处理人;
在接收到用户提交的参数以及选择的下一步处理人的信息后,任务节点完成监听器被触发,所述任务节点完成监听器更新所述数据库中所述当前任务节点的信息,并将实际处理人信息记录至所述数据库中,以及将所述流程实例从发起节点到当前任务节点的路径保存至流程参数中,流程进入到下一任务节点,并再次触发所述任务节点创建监听器;
在最后一个任务节点完成之后,流程结束监听器被触发,所述流程结束监听器更新所述数据库中所述流程实例的状态。
4.根据权利要求3所述的工作流实现方法,其特征在于,所述为所述当前任务节点分配处理人,包括:
根据流程模板中的指定处理人信息,为所述当前任务节点分配处理人;或者,
根据传递到当前任务节点的参数,按照字段名称以及对应的数值匹配相应的处理人,为所述当前任务节点分配匹配到的处理人。
5.一种工作流实现装置,其特征在于,包括:
流程模板处理模块,用于在接收到流程设计用户的流程模板激活指令的情况下,激活所述流程设计用户提交的流程模板,并对所述流程模板进行解析和修改,保存经过解析和修改后的流程模板中的各任务节点,并生成符合业务流程建模标记BPMN规范的xml格式的数据和通用数据格式的数据;
流程实例化模块,用于接收业务用户的流程发起请求,所述流程发起请求用于请求执行所述流程模板对应的流程实例,响应于所述流程发起请求,通过监听器控制所述流程实例按照所述流程模板的处理逻辑进行流转。
6.根据权利要求5所述的工作流实现装置,其特征在于,所述对所述流程模板进行解析和修改,包括:
将所述流程模板转换为程序可读的代码和参数,得到解析后的流程模板;
将前序定义的所述监听器绑定到所述解析后的流程模板上,并将预定义的服务类绑定到所述解析后的流程模板中的服务节点。
7.根据权利要求5所述的工作流实现装置,其特征在于,所述流程实例化模块,用于:
响应于所述流程发起请求,流程发起监听器被触发,所述流程发起监听器将所述流程发起请求包含的参数存储至数据库中;
所述流程发起监听器的操作完成后,自动完成节点监听器被触发,自动完成节点监听器将所述流程发起请求中所提交的表单参数绑定至发起节点,并在所述自动完成节点监听器的操作完成后,流程进入到第一个任务节点;
每到达一个需要用户操作的任务节点时,任务节点创建监听器被触发,所述任务节点创建监听器在所述数据库中插入当前任务节点的信息,并为所述当前任务节点分配处理人;
在接收到用户提交的参数以及选择的下一步处理人的信息后,任务节点完成监听器被触发,所述任务节点完成监听器更新所述数据库中所述当前任务节点的信息,并将实际处理人信息记录至所述数据库中,以及将所述流程实例从发起节点到当前任务节点的路径保存至流程参数中,流程进入到下一任务节点,并再次触发所述任务节点创建监听器;
在最后一个任务节点完成之后,流程结束监听器被触发,所述流程结束监听器更新所述数据库中所述流程实例的状态。
8.根据权利要求7所述的工作流实现装置,其特征在于,所述为所述当前任务节点分配处理人,包括:
根据流程模板中的指定处理人信息,为所述当前任务节点分配处理人;或者,
根据传递到当前任务节点的参数,按照字段名称以及对应的数值匹配相应的处理人,为所述当前任务节点分配匹配到的处理人。
9.一种工作流实现系统,其特征在于,包括如权利要求5-8中任一项所述的工作流实现装置,
所述系统还包括:
前端可视化编辑界面,用于提供基于BPMN规范的用于创建、编辑流程模板的元素,以供流程设计用户创建、编辑并提交流程模板;
表单模块,用于供流程设计用户定义流程中要传递的参数,创建表单,存储所述流程设计用户自定义的表单结构和数据,并在所述流程实例的流转过程中接收用户提交的表单数据和展示表单内容。
10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任一项所述工作流实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210410988.3A CN115048103A (zh) | 2022-04-19 | 2022-04-19 | 工作流实现方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210410988.3A CN115048103A (zh) | 2022-04-19 | 2022-04-19 | 工作流实现方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115048103A true CN115048103A (zh) | 2022-09-13 |
Family
ID=83158481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210410988.3A Pending CN115048103A (zh) | 2022-04-19 | 2022-04-19 | 工作流实现方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115048103A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117215545A (zh) * | 2023-11-09 | 2023-12-12 | 江西三叉数信息科技有限公司 | 业务流程化应用开发方法、系统及设备 |
-
2022
- 2022-04-19 CN CN202210410988.3A patent/CN115048103A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117215545A (zh) * | 2023-11-09 | 2023-12-12 | 江西三叉数信息科技有限公司 | 业务流程化应用开发方法、系统及设备 |
CN117215545B (zh) * | 2023-11-09 | 2024-01-26 | 江西三叉数信息科技有限公司 | 业务流程化应用开发方法、系统及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102763126B (zh) | 用于基于web的结构化数据解决方案的数据绑定的方法和系统 | |
US11218484B2 (en) | Hierarchical permissions model within a document | |
US10296305B2 (en) | Method and device for the automated production and provision of at least one software application | |
US20130117064A1 (en) | Business process analysis combining modeling, simulation and collaboration with web and cloud delivery | |
Kurz et al. | Leveraging CMMN for ACM: examining the applicability of a new OMG standard for adaptive case management | |
Capilla et al. | An enhanced architectural knowledge metamodel linking architectural design decisions to other artifacts in the software engineering lifecycle | |
CN114625353A (zh) | 模型框架代码生成系统及方法 | |
Kosanke et al. | CIMOSA modelling processes | |
Cabanillas et al. | A template-based approach for responsibility management in executable business processes | |
CN111784108A (zh) | 一种主数据管理平台的建模方法和装置 | |
Chua et al. | Integrated production scheduler for construction look-ahead planning | |
CN115840745A (zh) | 基于动态表单的调度方法、装置、计算机设备及存储介质 | |
CN115048103A (zh) | 工作流实现方法、装置及系统 | |
US20180039921A1 (en) | Generating domain-specific process studios | |
Deljouyi et al. | MDD4REST: Model-Driven Methodology for Developing RESTful Web Services. | |
Fogli et al. | End-user development of e-government services through meta-modeling | |
Fatolahi et al. | Towards a Semi-Automated Model-Driven Method for the Generation of Web-based Applications from Use Cases. | |
Durdik | Architectural Design Decision Documentation through Reuse of Design Patterns | |
CN115222345A (zh) | 一种审核作业方法及装置 | |
Zimmermann et al. | Architectural knowledge in an SOA infrastructure reference architecture | |
Matthes et al. | Enterprise architecture management tool survey 2014 update | |
Wautelet et al. | Revisiting the product configuration systems development procedure for scrum compliance: An i* driven process fragment | |
US8839097B2 (en) | System and method for information encapsulation for providing multiple deliverable formats from one information source | |
Ameller | Non-functional requirements as drivers of software architecture design | |
Stoitsev et al. | Enabling end-user driven business process composition through programming by example in a collaborative task management system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |