工作流的定制化装置及定制化方法与流程

文档序号:12672381阅读:370来源:国知局
工作流的定制化装置及定制化方法与流程

本发明涉及工作流技术领域,具体而言,涉及一种工作流的定制化装置和一种工作流的定制化方法。



背景技术:

工作流(Workflow)是指业务过程的部分或整体在计算机应用环境下的自动化。工作流系统便于开发人员直观地分析和设计业务流程,并可以借助工作流引擎将各个不同的应用系统连接在一起。在用户组织结构和业务发生变化时,工作流系统能够在很少修改甚至不修改原来应用的情况下,仅仅通过修改工作流程的定义就能适应变化的需要。因此,基于工作流技术的工作流系统为办公自动化、企业信息平台和企业业务系统的整合带来了强有力的支持。

目前,相关技术中提出的工作流定制化过程主要还是着重于流程的定制化上,例如实例化流程、流程流转和回滚等等,但是对于对接具体的业务系统,仍旧是定制化地开发,甚少有一个通用的模型将业务系统的主要行为和逻辑进行描述。

可见,现有的工作流定制化方法都不能很好的满足现阶段的企业要求,具有一定的局限性。



技术实现要素:

本发明正是基于上述技术问题至少之一,提出了一种新的工作流的定制化方案,可以将企业的业务系统与流程定制化结合在一起,方便了企业工作流的快速部署和升级,同时能够高效、便捷地创建出符合企业自身特点的业务流程。

有鉴于此,根据本发明的第一方面,提出了一种工作流的定制化装 置,包括:获取单元,用于获取用户设置的用于标识业务流程走向的流程模板;挂载单元,用于根据业务系统的业务需求,在所述流程模板中挂载任务节点和/或子流程模板,以得到基于所述业务系统的工作流;实例化单元,用于对基于所述业务系统的工作流进行实例化处理,以得到基于所述业务系统的工作流对象;处理单元,用于运行所述工作流对象。

在该技术方案中,通过获取用户设置的流程模板,并根据业务系统的业务需求,在流程模板上挂载任务节点和/或子流程模板,得到基于业务系统的工作流,进而实例化工作流并运行得到的工作流对象,使得能够将企业的业务系统与流程定制化很好的结合在一起,方便了企业工作流的快速部署和升级;同时,对于工作流的使用者,如任务管理员等,不需要具备专业的软件编程知识,只需要专注业务流程的定义上,便可以高效地、便捷地创建出符合企业自身特点的业务流程。

在上述技术方案中,优选地,所述流程模板包括至少一个流程节点,所述挂载单元具体用于:将一个所述子流程模板挂载在一个所述流程节点上;或将一个或多个所述任务节点挂载在一个所述流程节点上,

其中,所述任务节点包括:执行角色、动作和处理对象,所述动作包括通用动作和独立动作。

在该技术方案中,一个流程节点上只能挂载至少一个任务节点或一个子流程模板,即在一个流程节点上不能既挂载子流程模板,又挂载任务节点。其中,子流程模板的结构与上述的流程模板的结构相同。其中,通用动作可以动态指定对象,虽然对象不同,但是业务逻辑基本相同,如审批表单动作,对象可以是任务审批表单,也可以是采购审批表单,还可以是其它表单;独立业务动作具有一定的针对性,不可以任意指定对象,而是将对象直接绑定在业务逻辑内,比如固定资产入库动作,其对象就是固定资产报表,不可能是其它对象。

在上述任一技术方案中,优选地,所述实例化单元包括:第一执行单元,用于向所述工作流分配流程实例标识,并依次对所述工作流中的每个工作流节点进行实例化处理;以及

分配单元,用于根据所述工作流中的每个任务节点包括的执行角色, 为所述每个任务节点分配执行人。

其中,实例化处理即是在面向对象的编程中,用类创建对象的过程。

在上述任一技术方案中,优选地,所述处理单元包括:第二执行单元,用于根据所述工作流对象的执行流程,依次执行所述工作流对象中的每一个任务节点对应的任务;通知单元,用于在流转至所述工作流对象中的任一任务节点时,向所述任一任务节点的执行人发送通知消息。

在该技术方案中,由于每个任务节点均包含执行角色,而执行角色对应于执行人,因此在流转至工作流对象中的任一任务节点时,需要向任一任务节点的执行人发送通知消息,以通知其执行相应的任务。

在上述任一技术方案中,优选地,所述处理单元还包括:流程控制单元,用于在运行至所述工作流对象中的指定任务节点时,若检测到所述指定任务节点对应的任务被拒绝,则将对所述工作流对象的执行过程回滚至于所述指定任务节点所处的当前流程中的预设工作流节点。

其中,指定任务节点可以是审批任务节点。

在上述任一技术方案中,优选地,所述处理单元还包括:任务拆分单元,用于在接收到对所述工作流对象中的任一任务节点对应的任务进行拆分的指令时,对所述任一任务节点对应的任务进行拆分,并设定拆分后得到的子任务的动作和处理对象。

根据本发明的第二方面,还提出了一种工作流的定制化方法,包括:获取用户设置的用于标识业务流程走向的流程模板;根据业务系统的业务需求,在所述流程模板中挂载任务节点和/或子流程模板,以得到基于所述业务系统的工作流;对基于所述业务系统的工作流进行实例化处理,以得到基于所述业务系统的工作流对象;运行所述工作流对象。

在该技术方案中,通过获取用户设置的流程模板,并根据业务系统的业务需求,在流程模板上挂载任务节点和/或子流程模板,得到基于业务系统的工作流,进而实例化工作流并运行得到的工作流对象,使得能够将企业的业务系统与流程定制化很好的结合在一起,方便了企业工作流的快速部署和升级;同时,对于工作流的使用者,如任务管理员等,不需要具备专业的软件编程知识,只需要专注业务流程的定义上,便可以高效地、 便捷地创建出符合企业自身特点的业务流程。

在上述技术方案中,优选地,所述流程模板包括至少一个流程节点;根据业务系统的业务需求,在所述流程模板中挂载任务节点和/或子流程模板的步骤,具体包括:将一个所述子流程模板挂载在一个所述流程节点上;或将一个或多个所述任务节点挂载在一个所述流程节点上,

其中,所述任务节点包括:执行角色、动作和处理对象,所述动作包括通用动作和独立动作。

在该技术方案中,一个流程节点上只能挂载至少一个任务节点或一个子流程模板,即在一个流程节点上不能既挂载子流程模板,又挂载任务节点。其中,子流程模板的结构与上述的流程模板的结构相同。其中,通用动作可以动态指定对象,虽然对象不同,但是业务逻辑基本相同,如审批表单动作,对象可以是任务审批表单,也可以是采购审批表单,还可以是其它表单;独立业务动作具有一定的针对性,不可以任意指定对象,而是将对象直接绑定在业务逻辑内,比如固定资产入库动作,其对象就是固定资产报表,不可能是其它对象。

在上述任一技术方案中,优选地,对基于所述业务系统的工作流进行实例化处理的步骤具体包括:向所述工作流分配流程实例标识,并依次对所述工作流中的每个工作流节点进行实例化处理;以及根据所述工作流中的每个任务节点包括的执行角色,为所述每个任务节点分配执行人。

其中,实例化处理即是在面向对象的编程中,用类创建对象的过程。

在上述任一技术方案中,优选地,运行所述工作流对象的步骤具体包括:根据所述工作流对象的执行流程,依次执行所述工作流对象中的每一个任务节点对应的任务,且在流转至所述工作流对象中的任一任务节点时,向所述任一任务节点的执行人发送通知消息。

在该技术方案中,由于每个任务节点均包含执行角色,而执行角色对应于执行人,因此在流转至工作流对象中的任一任务节点时,需要向任一任务节点的执行人发送通知消息,以通知其执行相应的任务。

在上述任一技术方案中,优选地,运行所述工作流对象的步骤具体还包括:在运行至所述工作流对象中的指定任务节点时,若检测到所述指定 任务节点对应的任务被拒绝,则将对所述工作流对象的执行过程回滚至于所述指定任务节点所处的当前流程中的预设工作流节点;以及

在接收到对所述工作流对象中的任一任务节点对应的任务进行拆分的指令时,对所述任一任务节点对应的任务进行拆分,并设定拆分后得到的子任务的动作和处理对象。

其中,指定任务节点可以是审批任务节点。

通过以上技术方案,可以将企业的业务系统与流程定制化结合在一起,方便了企业工作流的快速部署和升级,同时能够高效、便捷地创建出符合企业自身特点的业务流程。

附图说明

图1示出了根据本发明的实施例的工作流的定制化装置的示意框图;

图2示出了根据本发明的实施例的工作流的定制化方法的示意流程图;

图3示出了根据本发明的实施例的定制化流程模板和挂载任务节点或子流程模板的示意流程图;

图4示出了根据本发明的实施例的在工作流节点上挂载子流程或任务节点的示意图;

图5示出了根据本发明的一个实施例的工作流的实例化过程的示意流程图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。

图1示出了根据本发明的实施例的工作流的定制化装置的示意框图。

如图1所示,根据本发明的实施例的工作流的定制化装置100,包括:获取单元102、挂载单元104、实例化单元106和处理单元108。

其中,获取单元102,用于获取用户设置的用于标识业务流程走向的流程模板;

挂载单元104,用于根据业务系统的业务需求,在所述流程模板中挂载任务节点和/或子流程模板,以得到基于所述业务系统的工作流;

实例化单元106,用于对基于所述业务系统的工作流进行实例化处理,以得到基于所述业务系统的工作流对象;

处理单元108,用于运行所述工作流对象。

在该技术方案中,通过获取用户设置的流程模板,并根据业务系统的业务需求,在流程模板上挂载任务节点和/或子流程模板,得到基于业务系统的工作流,进而实例化工作流并运行得到的工作流对象,使得能够将企业的业务系统与流程定制化很好的结合在一起,方便了企业工作流的快速部署和升级;同时,对于工作流的使用者,如任务管理员等,不需要具备专业的软件编程知识,只需要专注业务流程的定义上,便可以高效地、便捷地创建出符合企业自身特点的业务流程。

在上述技术方案中,优选地,所述流程模板包括至少一个流程节点,所述挂载单元104具体用于:将一个所述子流程模板挂载在一个所述流程节点上;或将一个或多个所述任务节点挂载在一个所述流程节点上,

其中,所述任务节点包括:执行角色、动作和处理对象,所述动作包括通用动作和独立动作。

在该技术方案中,一个流程节点上只能挂载至少一个任务节点或一个子流程模板,即在一个流程节点上不能既挂载子流程模板,又挂载任务节点。其中,子流程模板的结构与上述的流程模板的结构相同。其中,通用动作可以动态指定对象,虽然对象不同,但是业务逻辑基本相同,如审批表单动作,对象可以是任务审批表单,也可以是采购审批表单,还可以是其它表单;独立业务动作具有一定的针对性,不可以任意指定对象,而是将对象直接绑定在业务逻辑内,比如固定资产入库动作,其对象就是固定资产报表,不可能是其它对象。

在上述任一技术方案中,优选地,所述实例化单元106包括:第一执行单元1062,用于向所述工作流分配流程实例标识,并依次对所述工作流中的每个工作流节点进行实例化处理;以及

分配单元1064,用于根据所述工作流中的每个任务节点包括的执行角色,为所述每个任务节点分配执行人。

其中,实例化处理即是在面向对象的编程中,用类创建对象的过程。

在上述任一技术方案中,优选地,所述处理单元108包括:第二执行单元1082,用于根据所述工作流对象的执行流程,依次执行所述工作流对象中的每一个任务节点对应的任务;通知单元1084,用于在流转至所述工作流对象中的任一任务节点时,向所述任一任务节点的执行人发送通知消息。

在该技术方案中,由于每个任务节点均包含执行角色,而执行角色对应于执行人,因此在流转至工作流对象中的任一任务节点时,需要向任一任务节点的执行人发送通知消息,以通知其执行相应的任务。

在上述任一技术方案中,优选地,所述处理单元108还包括:流程控制单元1086,用于在运行至所述工作流对象中的指定任务节点时,若检测到所述指定任务节点对应的任务被拒绝,则将对所述工作流对象的执行过程回滚至于所述指定任务节点所处的当前流程中的预设工作流节点。

其中,指定任务节点可以是审批任务节点。

在上述任一技术方案中,优选地,所述处理单元108还包括:任务拆分单元1088,用于在接收到对所述工作流对象中的任一任务节点对应的任务进行拆分的指令时,对所述任一任务节点对应的任务进行拆分,并设定拆分后得到的子任务的动作和处理对象。

图2示出了根据本发明的实施例的工作流的定制化方法的示意流程图。

如图2所示,根据本发明的实施例的工作流的定制化方法,包括:

步骤202,获取用户设置的用于标识业务流程走向的流程模板;

步骤204,根据业务系统的业务需求,在所述流程模板中挂载任务节点和/或子流程模板,以得到基于所述业务系统的工作流;

步骤206,对基于所述业务系统的工作流进行实例化处理,以得到基于所述业务系统的工作流对象;

步骤208,运行所述工作流对象。

在该技术方案中,通过获取用户设置的流程模板,并根据业务系统的业务需求,在流程模板上挂载任务节点和/或子流程模板,得到基于业务系统的工作流,进而实例化工作流并运行得到的工作流对象,使得能够将企业的业务系统与流程定制化很好的结合在一起,方便了企业工作流的快速部署和升级;同时,对于工作流的使用者,如任务管理员等,不需要具备专业的软件编程知识,只需要专注业务流程的定义上,便可以高效地、便捷地创建出符合企业自身特点的业务流程。

在上述技术方案中,优选地,所述流程模板包括至少一个流程节点;根据业务系统的业务需求,在所述流程模板中挂载任务节点和/或子流程模板的步骤,具体包括:将一个所述子流程模板挂载在一个所述流程节点上;或将一个或多个所述任务节点挂载在一个所述流程节点上,

其中,所述任务节点包括:执行角色、动作和处理对象,所述动作包括通用动作和独立动作。

在该技术方案中,一个流程节点上只能挂载至少一个任务节点或一个子流程模板,即在一个流程节点上不能既挂载子流程模板,又挂载任务节点。其中,子流程模板的结构与上述的流程模板的结构相同。其中,通用动作可以动态指定对象,虽然对象不同,但是业务逻辑基本相同,如审批表单动作,对象可以是任务审批表单,也可以是采购审批表单,还可以是其它表单;独立业务动作具有一定的针对性,不可以任意指定对象,而是将对象直接绑定在业务逻辑内,比如固定资产入库动作,其对象就是固定资产报表,不可能是其它对象。

在上述任一技术方案中,优选地,对基于所述业务系统的工作流进行实例化处理的步骤具体包括:向所述工作流分配流程实例标识,并依次对所述工作流中的每个工作流节点进行实例化处理;以及根据所述工作流中的每个任务节点包括的执行角色,为所述每个任务节点分配执行人。

其中,实例化处理即是在面向对象的编程中,用类创建对象的过程。

在上述任一技术方案中,优选地,运行所述工作流对象的步骤具体包括:根据所述工作流对象的执行流程,依次执行所述工作流对象中的每一个任务节点对应的任务,且在流转至所述工作流对象中的任一任务节点时,向所述任一任务节点的执行人发送通知消息。

在该技术方案中,由于每个任务节点均包含执行角色,而执行角色对应于执行人,因此在流转至工作流对象中的任一任务节点时,需要向任一任务节点的执行人发送通知消息,以通知其执行相应的任务。

在上述任一技术方案中,优选地,运行所述工作流对象的步骤具体还包括:在运行至所述工作流对象中的指定任务节点时,若检测到所述指定任务节点对应的任务被拒绝,则将对所述工作流对象的执行过程回滚至于所述指定任务节点所处的当前流程中的预设工作流节点;以及

在接收到对所述工作流对象中的任一任务节点对应的任务进行拆分的指令时,对所述任一任务节点对应的任务进行拆分,并设定拆分后得到的子任务的动作和处理对象。

其中,指定任务节点可以是审批任务节点。

综上所述,本发明提出的工作流定制化处理方法主要包括以下步骤:

A、定制化流程模板;

B、为模板中的工作流节点挂载任务节点或者子流程模板;

C、实例化工作流;

D、流程流转。

其中,在步骤A中,流程模板是指与业务无关的工作流模板,其定义了流程的走向。

在步骤B中,任务节点是指具体跟业务相关的节点,其所对应的动作、对象、执行角色定义了该节点的业务内容。

进一步地,步骤B中的动作、对象、执行角色是从日常企业业务内容中总结出来的、可以描述一个具体业务行为所需要的三个概念:动作是指业务所要处理的事宜,对象是指受动作影响的具体事物,执行角色则是指执行动作的人员类别。

并且,在步骤B中,可以为每一个工作流节点分配一个或者多个任务 节点,也可以为其分配一个子流程。二者互斥,不可同时被分配在一个工作流节点上。其中的子流程模板实际上就是指普通的工作流模板,其描述了一个流程中的一部分相对独立的流程,工作流是可以逐级嵌套的。

在步骤C中,实例化是指提取某个工作流模版,将其创建为一个具体的工作流对象。

在步骤D中,流程流转包括流程的推进和回滚。

其中,步骤A和步骤B的过程如图3所示,包括:

步骤302,设计工作流模板。

步骤304,判断是否添加工作流节点,若是,则执行步骤306;否则,执行结束。

步骤306,定义工作流节点,若在工作流节点上添加任务节点,则执行步骤310;若在工作流节点上添加子流程,则执行步骤308。

步骤308,挂载子流程,并返回步骤302。

步骤310,定义任务节点。

步骤312,挂载单/多任务。

步骤314,设置任务属性,并返回步骤304。

其中,工作流模版主要包含起止点、工作流节点、流程链接线三个主要的描述对象。工作流的分支流转也可以通过上述三个对象来描述。用户在定义工作流模版之前,首先要对要实现的业务流程有一个较为深刻的理解,应当清楚哪些业务可以用一个子流程来实现,哪些业务可以用任务来实现,就叫做工作流模板的设计。

工作流的每一个节点可以挂载一个子流程或者一个/多个任务节点,子流程和任务节点相互互斥,不可以同时挂载在一个工作流节点上。其中,子流程的定义基本同主流程。任务节点的实现并非独立封装的业务逻辑,其是由执行角色、动作和对象三个属性共同作用决定的。执行角色并非任务的具体执行者,只是描述了执行者的权限,比如负责人、审核员等;动作则是抽象总结出的一些业务常用行为,比如提交、验证、审核等等;对象则是指动作的操作对象,大部分情况是指各种各样的表单,有时也会是一些人员或者数据。

动作可以分为两类:通用动作和独立动作业务。前者一般可以动态指定对象,对象不同,但是业务逻辑基本相同。比如审批表单动作,对象可以是任务审批表单,也可以是采购审批表单,还可以是其他各种各样的表单。再比如人员分配动作,对象可以是任何人员。而后者是指独立业务动作,其封装了独立的业务逻辑,具有一定的针对性,不可以任意指定对象,而是将对象直接绑定在业务逻辑内,比如固定资产入库动作,其对象就是固定资产报表,不可能是其他对象了。但不管哪种动作,都需要有相应的对象配合,只是通用动作更加灵活。

工作流定义完毕,并挂载任务之后,将会被导出为一个模版文件,其描述了工作流节点关系以及任务节点内容。

由上述可知,在本发明中的工作流节点上可以挂载子流程或任务节点,如图4所示,一个工作流节点可以挂载一个子流程402或至少一个任务节点404。其中,工作流节点属性包括:流程节点ID、节点描述、挂载类型(即挂载子流程或任务节点)和挂载对象ID列表。每个任务节点404包括:节点ID、执行角色、执行动作和动作对象(可选)。

工作流在流转之前,必须要先进行实例化,如图5所示,为根据本发明的一个实施例的工作流的实例化过程,包括:

步骤502,实例化流程。

步骤504,判断遍历工作流节点是否结束,若是,则执行步骤510;否则,执行步骤506。

步骤506,实例化工作流节点。

步骤508,判断是否需要在节点挂载子流程,若是,则返回执行步骤504;否则,返回执行步骤502。

步骤510,指定所有任务节点的实际执行人。

具体地,实例化过程便是将模版取出,分配一个ID标识,并将工作流相关的参数入库管理的过程。工作流在实例化的过程中,还需要根据每一个任务节点的执行角色来分配具体的执行人。其中,有些任务节点的执行人会依赖于工作流前置节点的结果来分配具体执行人,因此无法在实例化的过程中指定全部节点的执行人,这也是为什么需要在任务动作中需要 添加指定执行人这个动作的原因。这样,当流程流转起来后,当遇到“指定执行人”这个任务节点后,流程将会停止在此节点,等待此节点的执行人来分配后续节点的具体任务执行人。此外,工作流在实例化的过程中,还需要将任务节点挂载的子流程实例化,子流程会保存一个父流程ID来进行关联,父流程实例化时,亦可对子流程进行人员指派。

工作流流转起来后,当流转到哪个任务节点,对应的任务执行人就会收到相应的任务通知。当某一个任务执行完毕之后,流程会自动继续向下流转。这里有几个特殊处理。

首先,对于审批任务节点,可以有同意或者拒绝的操作。当任务被拒绝之后,流程会发生回滚。回滚是在当前流程之内,不可以跨流程回滚。回滚可以跳到任意一个工作流节点,这个可以在流程模版设计的时候指定,也可以在拒绝操作时指定。回滚到某一个工作流节点时,工作流节点对应的任务节点将被重启,之前任务保存的相关数据将被维护,便于以后查询,新产生的数据将作为新的一条记录入库。

第二,任务节点的任务是可以在流转时进一步拆分的。拆分是由任务执行人来进行,在拆分的同时,还需要为子任务指定动作和对象。任务拆分后,原有任务节点不受影响,但需等其拆分出的子任务完成后,任务节点方可继续流转。需要说明的是,子任务是不能包含审批动作的;否则,会影响父节点的任务流转。

第三,当工作流节点挂载多个任务节点时,每一个任务完成之后,都会由工作流节点判断当前节点包含的任务是否有未完成的状态,如果没有的话,工作流节点会自动向下一个节点流转。而当工作流节点挂载子流程时,当子流程的节点任务执行完毕后,会先判断是否是子流程的最后一个工作流节点,如果是的话,会自动流向主流程进入子流程的工作流节点,并向主流程的下一个工作流节点流转。

以上结合附图详细说明了本发明的技术方案,本发明提出了一种新的工作流的定制化方案,可以将企业的业务系统与流程定制化结合在一起,方便了企业工作流的快速部署和升级,同时能够高效、便捷地创建出符合企业自身特点的业务流程。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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