本发明涉及可配置化流程审批领域,具体涉及一种实现可配置化流程审批的方法及系统。
背景技术:
bpm(业务流程管理)的基本内容是管理既定工作的流程,通过服务编排,统一调控各个业务流程,以确保工作在正确的时间被正确的人执行,达到优化整体业务过程的目的。bpmn2.0(业务流程建模与标注)规范的工作流,比如activiti(一种工作流引擎),是通过活动、网关、时间去定义一个流程的,套用到某些场景下,显得过于笨重和不灵活。例如,每一步审核都需要定义,如果有多个审批步骤,每一次拒绝都需要定义回退到申请者的处理方式和处理后的下一步跳转,显得特别复杂。如果出现误操作,就会无法指定任务进行回退。串行审核的业务场景下,极少出现会签的情况。若引入这些bpmn2.0规范的工作流,将加大开发的难度,而这些场景下却只使用到了很简单的一部分功能。
技术实现要素:
本发明所要解决的技术问题是针对现有技术的不足,提供一种实现可配置化流程审批的方法及系统,目的在于将定制性较强的审批流程工作流中的元素进行简化,用主键信息串起整个流程审批,用可配置的非主键信息定义其它信息,简单灵活的实现了串行审批流程,开发难度低,使实际业务与流程流转有效分离,审批流程的通用性强,便于项目集成和维护。
本发明解决上述技术问题的技术方案如下:
一种实现可配置化流程审批的方法,包括以下步骤:
s1,以审批流程id号为主键信息定义至少一个用于发起审批流程的流程模板,并根据审批操作的需要对流程模板中的非主键信息进行配置;
s2,以流水号为主键信息定义至少一个用于产生审批流程中的任务实例的任务模板,并根据审批操作的需要对任务模板中的非主键信息进行配置,所述任务模板中的非主键信息中包括与s1中所述流程模板的主键信息相对应的信息;
s3,根据审批操作的需要在s1中定义的流程模板中选择一个流程模板创建以审批流水号为主键信息的流程实例,该流程实例中的非主键信息包括s1中所述流程模板中的主键信息和非主键信息;
s4,在s3中创建的流程实例中根据审批操作的需要在s2中定义的任务模板中选择一个任务模板,根据所选择的任务模板创建以流水号为主键信息的任务实例,该任务实例中的非主键信息包括s3中所述流程实例的主键信息和s2中所述的任务模板的主键信息和非主键信息。
本发明的有益效果是:将定制性较强的审批流程工作流中的元素进行简化,用主键信息串起整个流程审批,用可配置的非主键信息定义其它信息,简单灵活的实现了串行审批流程,开发难度低,使实际业务与流程流转有效分离,审批流程的通用性强,便于项目集成和维护。
在上述技术方案的基础上,本发明还可以做如下改进:
进一步,所述方法还包括:
s5,以所述s4中所述任务实例中的流水号为主键信息创建用于记录与所述任务实例有关的操作信息的任务实例表单,该任务实例表单中的非主键信息包括所述s3中所述流程实例的主键信息。
采用上述进一步方案的有益效果是:任务实例表单记录了单个任务相关的操作信息,能方便任务的查找和操作。
进一步,所述s2中所述任务模板中的非主键信息还包括:任务编码信息、任务状态信息和任务跳转脚本信息;所述方法还包括:
s6,在用户对所述任务实例的审批操作过程中,根据所述任务实例中的任务跳转脚本信息指定的任务编码信息对所述任务实例进行流转,并在流转成功后根据所述任务编码信息修改所述任务实例的任务状态信息。
采用上述进一步方案的有益效果是:采用任务跳转脚本信息来定义任务实例的流转过程,使流程审批具有轻量化、易整合和便于维护的特点。
进一步,所述s2中所述任务跳转脚本信息的生成方式为:在创建所述任务模板时固定设置生成,或根据用户在审批操作过程中输入的与所述任务模板相对应的自定义表达式生成。
采用上述进一步方案的有益效果是:使审批流程支持流程自定义,允许指定流程的执行顺序和步骤;支持流程网关功能,允许根据操作结果指定跳转;允许错误操作后,任意步骤的数据回退,进一步拓展了流程审批的可配置性和维护的便利性。
进一步,所述s4中所述任务实例中的非主键信息还包括任务顺序信息;
所述s6中所述根据任务跳转脚本信息中指定的任务编码信息对任务实例进行流转时,若所述任务跳转脚本信息中指定的任务编码信息不为空,则根据任务编码信息对该任务实例进行流转;否则,根据所述任务顺序信息获得任务状态信息为未开始的下一个任务实例,并对该任务实例进行流转。
采用上述进一步方案的有益效果是:在处理完一个任务之后能自动跳转到下一个待执行的任务,使审批流程的操作更加简洁高效。
一种实现可配置化流程审批的系统,所述系统包括:
流程模板模块,用于以审批流程id号为主键信息定义至少一个用于发起审批流程的流程模板,并根据审批操作的需要对流程模板中的非主键信息进行配置;
任务模板模块,用于以流水号为主键信息定义至少一个用于产生审批流程中的任务实例的任务模板,并根据审批操作的需要对任务模板中的非主键信息进行配置,所述任务模板中的非主键信息中包括与流程模板模块中所述流程模板的主键信息相对应的信息;
流程实例模块,用于根据审批操作的需要在流程模板模块中定义的流程模板中选择一个流程模板创建以审批流水号为主键信息的流程实例,该流程实例中的非主键信息包括流程模板模块中所述流程模板中的主键信息和非主键信息;
任务实例模块,用于在流程实例模块中创建的流程实例中根据审批操作的需要在任务模板模块中定义的任务模板中选择一个任务模板,根据所选择的任务模板创建以流水号为主键信息的任务实例,该任务实例中的非主键信息包括流程实例模板中所述流程实例的主键信息和任务模板模块中所述的任务模板的主键信息和非主键信息。
本发明的有益效果是:将定制性较强的审批流程工作流中的元素进行简化,用主键信息串起整个流程审批,用可配置的非主键信息定义其它信息,简单灵活的实现了串行审批流程,开发难度低,使实际业务与流程流转有效分离,审批流程的通用性强,便于项目集成和维护。
在上述技术方案的基础上,本发明还可以做如下改进:
进一步,所述系统还包括:
任务实例表单模块,用于以所述任务实例模块中所述任务实例中的流水号为主键信息创建用于记录与所述任务实例有关的操作信息的任务实例表单,该任务实例表单中的非主键信息包括所述流程实例模块中所述流程实例的主键信息。
采用上述进一步方案的有益效果是:任务实例表单记录了单个任务相关的操作信息,能方便任务的查找和操作。
进一步,所述任务模板模块中所述任务实例中的非主键信息还包括:任务编码信息、任务状态信息和任务跳转脚本信息;所述系统还包括:
任务实例流转模块,用于在用户对所述任务实例的审批操作过程中,根据所述任务实例模块中的任务跳转脚本信息指定的任务编码信息对所述任务实例进行流转,并在流转成功后根据所述任务编码信息修改所述任务实例的任务状态信息。
采用上述进一步方案的有益效果是:采用任务跳转脚本信息来定义任务实例的流转过程,使流程审批具有轻量化、易整合和便于维护的特点。
进一步,所述任务模板模块还用于在创建所述任务模板时固定设置生成所述任务跳转脚本信息,或根据用户在审批操作过程中输入的与所述任务模板相对应的自定义表达式生成所述任务跳转脚本信息。
采用上述进一步方案的有益效果是:使审批流程支持流程自定义,允许指定流程的执行顺序和步骤;支持流程网关功能,允许根据操作结果指定跳转;允许错误操作后,任意步骤的数据回退,进一步拓展了流程审批的可配置性和维护的便利性。
进一步,所述任务实例模块中所述任务实例中的非主键信息还包括任务顺序信息;
所述任务实例流转模块还用于在根据任务跳转脚本信息中指定的任务编码信息对任务实例进行流转时,判断任务编码信息是否为空,若任务编码信息不为空,则根据任务编码信息对该任务实例进行流转;若任务编码信息为空,根据所述任务顺序信息获得任务状态信息为未开始的下一个任务实例,并对该任务实例进行流转。
采用上述进一步方案的有益效果是:在处理完一个任务之后能自动跳转到下一个待执行的任务,使审批流程的操作更加简洁高效。
附图说明
图1为本发明实施例1中一种实现可配置化流程审批的方法的流程图;
图2为本发明实施例1中改进后的实现可配置化流程审批的方法的流程图;
图3为本发明实施例2中一种实现可配置化流程审批的系统的结构框图;
图4为本发明实施例2中改进后的实现可配置化流程审批的系统的结构框图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
实施例1
如图1所示,一种实现可配置化流程审批的方法,包括以下步骤:
s1,以审批流程id号为主键信息定义至少一个用于发起审批流程的流程模板,并根据审批操作的需要对流程模板中的非主键信息进行配置;
s2,以流水号为主键信息定义至少一个用于产生审批流程中的任务实例的任务模板,并根据审批操作的需要对任务模板中的非主键信息进行配置,所述任务模板中的非主键信息中包括与s1中所述流程模板的主键信息相对应的信息;
s3,根据审批操作的需要在s1中定义的流程模板中选择一个流程模板创建以审批流水号为主键信息的流程实例,该流程实例中的非主键信息包括s1中所述流程模板中的主键信息和非主键信息;
s4,在s3中创建的流程实例中根据审批操作的需要在s2中定义的任务模板中选择一个任务模板,根据所选择的任务模板创建以流水号为主键信息的任务实例,该任务实例中的非主键信息包括s3中所述流程实例的主键信息和s2中所述的任务模板的主键信息和非主键信息。
具体的,流程模板以审批流程id号为主键信息,以此来区别不同类型的流程模板,流程模板中的主键信息和非主键信息都是为了创建流程实例而设置,每一个流程实例都包含其所属的流程模板中的所有的主键信息和非主键信息。
流程模板中的非主键信息还可以包括:版本号、审批流程名称、审批流程描述、创建工号、创建时间、修改工号和修改时间。
任务模板中以流水号为主键信息,以此来区别一个流程实例中的不同任务实例,任务模板中的主键信息和非主键信息都是为了创建任务实例而设置,每一个任务实例都包含其所属的任务模板的所有的主键信息和非主键信息。
任务模板中的非主键信息包括与流程模板中相对应的审批流程id号,用来表示该任务模板属于哪一个流程实例。任务模板中的非主键信息还可以包括版本号、任务名称、任务描述、允许指派用户角色(用来设置该任务实例允许被指定给哪一类角色的员工用户操作,可以指定多种角色)、当前处理人、创建工号、创建时间、修改工号和修改时间。
流程实例以审批流水号为主键信息,以此来区别每一个流程实例,流程实例中的非主键信息包括审批流程id号,用来表示该流程实例属于哪一种类型的流程模板,流程实例中的非主键信息还包括:版本号、流程状态(默认包括:0-未开始;1-执行中;2-完成;3-终止)、创建工号、创建时间、修改工号和修改时间。
任务实例以流水号为主键信息,用来区别每一个任务实例,任务实例中的非主键信息包括审批流水号、审批流程id号、版本号、任务顺序信息、任务编码信息、任务状态信息、任务跳转脚本信息、允许指派用户角色、当前处理人、创建工号和创建时间。
本发明将定制性较强的审批流程工作流中的元素进行简化,用主键信息串起整个流程审批,用可配置的非主键信息定义其它信息,简单灵活的实现了串行审批流程,开发难度低,使实际业务与流程流转有效分离,审批流程的通用性强,便于项目集成和维护。
进一步,如图2所示,所述方法还包括:
s5,以所述s4中所述任务实例中的流水号为主键信息创建用于记录与所述任务实例有关的操作信息的任务实例表单,该任务实例表单中的非主键信息包括所述s3中所述流程实例的主键信息。
具体的,任务实例表单用记录单个任务实例中额外的一些操作信息,一般同流程实例的主键进行关联,可以使用外部表单来关联。
任务实例表单的主键信息为流水号,非主键信息包括:审批流水号、任务顺序信息、任务编码信息、任务表单属性、任务表单属性对应的值、创建工号和创建时间。
该改进中,任务实例表单记录了单个任务相关的操作信息,能方便任务的查找和操作。
进一步,所述s2中所述任务模板中的非主键信息还包括:任务编码信息、任务状态信息和任务跳转脚本信息;如图2所示,所述方法还包括:
s6,在用户对所述任务实例的审批操作过程中,根据所述任务实例中的任务跳转脚本信息指定的任务编码信息对所述任务实例进行流转,并在流转成功后根据所述任务编码信息修改所述任务实例的任务状态信息。
具体的,任务模板中的非主键信息包括:任务编码信息(用来表示任务实例进行到了哪一步流转过程,用于指定下一步的流转)、任务状态信息(表示任务实例的状态,默认可以有以下几种状态:0-未开始;1-待审批;2-审批中;3-通过;4-拒绝;5-终止,还可以根据用户需要自定义其它状态信息),还包括任务条本脚本信息,采用跳转脚本(javascript脚本),根据任务编码信息进行下一步跳转,例如从未签约跳转任务编码信息为签约,从已签约跳转任务编码信息为上线操作等。
该改进中,采用任务跳转脚本信息来定义任务实例的流转过程,使流程审批具有轻量化、易整合和便于维护的特点。
进一步,所述s2中所述任务跳转脚本信息的生成方式为:在创建所述任务模板时固定设置生成,或根据用户在审批操作过程中输入的与所述任务模板相对应的自定义表达式生成。
具体的,任务的流转包括两种情况:
已固化的流程扭转,即已在规则中定义基本扭转方式:审批通过会将下一步任务开启;审批拒绝任务将由申请人签收并继续执行。
自定义跳转:通过自定义的表达式,通过输入的审核状态或表单字段,来进行指定步骤的跳转。
该改进中,使审批流程支持流程自定义,允许指定流程的执行顺序和步骤;支持流程网关功能,允许根据操作结果指定跳转;允许错误操作后,任意步骤的数据回退,进一步拓展了流程审批的可配置性和维护的便利性。
进一步,所述s2中所述任务模板中的非主键信息还包括任务顺序信息;
所述s6中所述根据任务跳转脚本信息中指定的任务编码信息对任务实例进行流转时,若所述任务跳转脚本信息中指定的任务编码信息不为空,则根据任务编码信息对该任务实例进行流转;否则,根据所述任务顺序信息获得任务状态信息为未开始的下一个任务实例,并对该任务实例进行流转。
具体的,任务顺序信息用来表示任务实例的开始顺序,在利用javascript脚本进行跳转时,若任务编码信息不为空,则审批任务未完成,停留在当前任务并进行后续流转;若任务编码信息为空,则直接返回并根据任务顺序信息找到第一个未开始的任务,更新该任务的状态为待执行并进行流转。
该改进中,在处理完一个任务之后能自动跳转到下一个待执行的任务,使审批流程的操作更加简洁高效。
实施例2
如图3所示,一种实现可配置化流程审批的系统,所述系统包括:
流程模板模块,用于以审批流程id号为主键信息定义至少一个用于发起审批流程的流程模板,并根据审批操作的需要对流程模板中的非主键信息进行配置;
任务模板模块,用于以流水号为主键信息定义至少一个用于产生审批流程中的任务实例的任务模板,并根据审批操作的需要对任务模板中的非主键信息进行配置,所述任务模板中的非主键信息中包括与流程模板模块中所述流程模板的主键信息相对应的信息;
流程实例模块,用于根据审批操作的需要在流程模板模块中定义的流程模板中选择一个流程模板创建以审批流水号为主键信息的流程实例,该流程实例中的非主键信息包括流程模板模块中所述流程模板中的主键信息和非主键信息;
任务实例模块,用于在流程实例模块中创建的流程实例中根据审批操作的需要在任务模板模块中定义的任务模板中选择一个任务模板,根据所选择的任务模板创建以流水号为主键信息的任务实例,该任务实例中的非主键信息包括流程实例模板中所述流程实例的主键信息和任务模板模块中所述的任务模板的主键信息和非主键信息。
具体的,流程模板以审批流程id号为主键信息,以此来区别不同类型的流程模板,流程模板中的主键信息和非主键信息都是为了创建流程实例而设置,每一个流程实例都包含其所属的流程模板中的所有的主键信息和非主键信息。
流程模板中的非主键信息还可以包括:版本号、审批流程名称、审批流程描述、创建工号、创建时间、修改工号和修改时间。
任务模板中以流水号为主键信息,以此来区别一个流程实例中的不同任务实例,任务模板中的主键信息和非主键信息都是为了创建任务实例而设置,每一个任务实例都包含其所属的任务模板的所有的主键信息和非主键信息。
任务模板中的非主键信息包括与流程模板中相对应的审批流程id号,用来表示该任务模板属于哪一个流程实例。任务模板中的非主键信息还可以包括版本号、任务名称、任务描述、允许指派用户角色(用来设置该任务实例允许被指定给哪一类角色的员工用户操作,可以指定多种角色)、当前处理人、创建工号、创建时间、修改工号和修改时间。
流程实例以审批流水号为主键信息,以此来区别每一个流程实例,流程实例中的非主键信息包括审批流程id号,用来表示该流程实例属于哪一种类型的流程模板,流程实例中的非主键信息还包括:版本号、流程状态(默认包括:0-未开始;1-执行中;2-完成;3-终止)、创建工号、创建时间、修改工号和修改时间。
任务实例以流水号为主键信息,用来区别每一个任务实例,任务实例中的非主键信息包括审批流水号、审批流程id号、版本号、任务顺序信息、任务编码信息、任务状态信息、任务跳转脚本信息、允许指派用户角色、当前处理人、创建工号和创建时间。
本发明将定制性较强的审批流程工作流中的元素进行简化,用主键信息串起整个流程审批,用可配置的非主键信息定义其它信息,简单灵活的实现了串行审批流程,开发难度低,使实际业务与流程流转有效分离,审批流程的通用性强,便于项目集成和维护。
进一步,如图4所示,所述系统还包括:
任务实例表单模块,用于以所述任务实例模块中所述任务实例中的流水号为主键信息创建用于记录与所述任务实例有关的操作信息的任务实例表单,该任务实例表单中的非主键信息包括所述流程实例模块中所述流程实例的主键信息。
具体的,任务实例表单用记录单个任务实例中额外的一些操作信息,一般同流程实例的主键进行关联,可以使用外部表单来关联。
任务实例表单的主键信息为流水号,非主键信息包括:审批流水号、任务顺序信息、任务编码信息、任务表单属性、任务表单属性对应的值、创建工号和创建时间。
该改进中,任务实例表单记录了单个任务相关的操作信息,能方便任务的查找和操作。
进一步,所述任务模板模块中所述任务实例中的非主键信息还包括:任务编码信息、任务状态信息和任务跳转脚本信息;如图4所示,所述系统还包括:
任务实例流转模块,用于在用户对所述任务实例的审批操作过程中,根据所述任务实例模块中的任务跳转脚本信息指定的任务编码信息对所述任务实例进行流转,并在流转成功后根据所述任务编码信息修改所述任务实例的任务状态信息。
具体的,任务模板中的非主键信息包括:任务编码信息(用来表示任务实例进行到了哪一步流转过程,用于指定下一步的流转)、任务状态信息(表示任务实例的状态,默认可以有以下几种状态:0-未开始;1-待审批;2-审批中;3-通过;4-拒绝;5-终止,还可以根据用户需要自定义其它状态信息),还包括任务条本脚本信息,采用跳转脚本(javascript脚本),根据任务编码信息进行下一步跳转,例如从未签约跳转任务编码信息为签约,从已签约跳转任务编码信息为上线操作等。
该改进中,采用任务跳转脚本信息来定义任务实例的流转过程,使流程审批具有轻量化、易整合和便于维护的特点。
进一步,所述任务模板模块还用于在创建所述任务模板时固定设置生成所述任务跳转脚本信息,或根据用户在审批操作过程中输入的与所述任务模板相对应的自定义表达式生成所述任务跳转脚本信息。
具体的,任务的流转包括两种情况:
已固化的流程扭转,即已在规则中定义基本扭转方式:审批通过会将下一步任务开启;审批拒绝任务将由申请人签收并继续执行。
自定义跳转:通过自定义的表达式,通过输入的审核状态或表单字段,来进行指定步骤的跳转。
该改进中,使审批流程支持流程自定义,允许指定流程的执行顺序和步骤;支持流程网关功能,允许根据操作结果指定跳转;允许错误操作后,任意步骤的数据回退,进一步拓展了流程审批的可配置性和维护的便利性。
进一步,所述任务实例模块中所述任务实例中的非主键信息还包括任务顺序信息;
所述任务实例流转模块还用于在根据任务跳转脚本信息中指定的任务编码信息对任务实例进行流转时,判断任务编码信息是否为空,若任务编码信息不为空,则根据任务编码信息对该任务实例进行流转;若任务编码信息为空,根据所述任务顺序信息获得任务状态信息为未开始的下一个任务实例,并对该任务实例进行流转。
具体的,任务顺序信息用来表示任务实例的开始顺序,在利用javascript脚本进行跳转时,若任务编码信息不为空,则审批任务未完成,停留在当前任务并进行后续流转;若任务编码信息为空,则直接返回并根据任务顺序信息找到第一个未开始的任务,更新该任务的状态为待执行并进行流转。
该改进中,在处理完一个任务之后能自动跳转到下一个待执行的任务,使审批流程的操作更加简洁高效。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。