一种定义工作流的方法及系统与流程

文档序号:17550375发布日期:2019-04-30 18:13阅读:137来源:国知局
一种定义工作流的方法及系统与流程
本发明涉及自动化控制
技术领域
,尤其涉及一种定义工作流的方法及系统。
背景技术
:现有的工作流主要分为结构化工作流和自由工作流,结构化工作流是在流程的执行的过程中必须按照预先定义的蓝图来执行,这种结构化的工作流需要对业务过程进行详细的分析才能得到的完整过程定义,而对于企业新增的业务或未定型的业务,则很难预先对处理过程考虑周全,调整起来代价比较大。基于该问题,又引入了自由工作流,自由工作流通常需要处理四个问题:启动时设计流程、流转中实现跳转、打回或加签,其中,跳转和打回即为流向的改变,易于在结构化工作流中实现,而加签需要在流程流转过程中临时插入新的处理环节,而针对加签的流程,现有技术都是采用活动克隆或修改定义的方式。活动克隆,是以某个活动为模板,克隆出新的活动,然后设置活动之间的执行顺序,并且改造流程引擎的调度方式,使得活动上指定的调度顺序优先于流程定义中的节点顺序,但这种加签的方法,使得新添加的活动受模板活动的制约,加签只能被一次性执行,当下次再执行该工作流时,需要重新再执行加签指令,从而增加了加签的重复执行度。修改定义,是在需要加签时,生成新的流程定义,当广泛使用自由流程处理业务流程时,几乎每个流程实例都需要产生一个新的定义,且现有的修改定义方式对重复的流程需要重复进行定义及缓存,由此带来的流程定义分析缓存的压力将很大,对数据库存储空间的占用很严重。技术实现要素:本发明实施例提供了一种定义工作流的方法及系统,用于通过特征码的方式实现对工作流的唯一性精简定义,从而减少了工作流的重复率,缓解了工作流的缓存压力。本申请实施例第一方面提供了一种定义工作流的方法,包括:获取工作流的节点任务;根据所述节点任务生成所述工作流的唯一特征码;对所述工作流及对应的唯一特征码执行关联存储,以实现对所述工作流的唯一性存储。优选的,所述节点任务包括固定设置量和/或动态设置量;当所述节点任务包括动态设置量时,将所述动态设置量以变量的形式进行定义,使得所述动态设置量独立于所述唯一特征码。优选的,所述方法还包括:当对所述工作流执行加签事件时,在所述工作流中增加对应的节点以匹配所述加签事件,并创建新的工作流定义。优选的,在所述获取工作流的节点任务之前,所述方法还包括:获取预设工作流,并将所述预设工作流生成对应的第一特征码;查询已存储的唯一特征码中是否存在所述第一特征码;若是,则直接调用所述第一特征码对应的工作流。优选的,所述方法还包括:当已存储的唯一特征码中不存在所述第一特征码时,则触发获取工作流的节点任务的步骤。本申请实施例还提供了一种定义工作流的系统,包括:获取单元,用于获取工作流的节点任务;生成单元,用于根据所述节点任务生成所述工作流的唯一特征码;存储单元,用于对所述工作流及对应的唯一特征码执行关联存储,以实现对所述工作流的唯一性存储。优选的,所述节点任务包括固定设置量和/或动态设置量;所述系统还包括:变量定义单元,用于当所述节点任务包括动态设置量时,将所述动态设置量以变量的形式进行定义,使得所述动态设置量独立于所述唯一特征码。优选的,所述系统还包括:加签单元,用于在对所述工作流执行加签事件时,在所述工作流中增加对应的节点以匹配所述加签事件,并创建新的工作流定义。优选的,所述系统还包括:第一特征码生成单元,用于获取预设工作流,并将所述预设工作流生成对应的第一特征码;查询单元,用于查询已存储的唯一特征码中是否存在所述第一特征码;调用单元,用于在已存储的唯一特征码中存在第一特征码时,直接调用所述第一特征码对应的工作流。优选的,所述系统还包括:触发单元,用于在已存储的唯一特征码中不存在所述第一特征码时,触发获取工作流的节点任务的步骤。本申请还提供了一种计算机装置,包括处理器,该处理器在执行存储于存储器上的计算机程序时,用于实现本申请第一方面提供的定义工作流的方法。本申请还提供了一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,用于实现本申请第一方面提供的定义工作流的方法。从以上技术方案可以看出,本发明实施例具有以下优点:本申请实施例中,获取工作流的节点任务,根据该节点任务生成对应工作流的唯一特征码,对该节点任务及唯一特征码进行关联存储,使得对该工作流执行唯一性存储。其中,用特征码代替工作流的方式,一方面减少了对工作流定义的缓存压力,另一方面,通过关联存储的方式,使得在生成新工作流定义时,进行特征码的匹配,从而减少了生成工作流定义的重复率,也对应减少了由重复率导致的存储压力。附图说明图1为本申请实施例中定义工作流的方法的一个实施例示意图;图2为本申请实施例中定义工作流的方法的另一个实施例示意图;图3为本申请实施例中定义工作流的方法的另一个实施例示意图;图4为本申请实施例中定义工作流的系统的一个实施例示意图。具体实施方式本发明实施例提供了一种定义工作流的方法及系统,用于通过特征码的方式实现对工作流的唯一性精简定义,从而减少了工作流定义的重复率,缓解了对工作流定义的缓存压力。为了使本
技术领域
的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。为方便理解,下面对本申请中的一种定义工作流的方法进行描述,请参阅图1,本申请中定义工作流的方法的一个实施例,包括:101、获取工作流的节点任务;在自由工作流中,当需要启动工作流程时,系统需要先获取提交人设置的工作流,具体的工作流包括节点任务,其中,节点任务包括但不限于每个节点具体的执行动作,动作的执行主体和/或动作的执行方式,但实际工作中,节点任务中的具体内容还可以根据任务需求进行自定义配置,如还可以增加动作执行的时间、地点,也可以删除动作的执行方式,即此处对于节点任务的具体内容不做限制。以下表1为一种工作流的示意图。表1审批环节审批人审批模式一级审批张三或签二级审批李四、王五会签三级审批赵六或签102、根据所述节点任务生成所述工作流的唯一特征码;实际工作流中,因为工作流的配置较为复杂,从而导致工作流的数据量可能达到几百kb或更大,而这种大数据量的工作流势必会占有较大的存储空间,从而影响生成工作流系统的处理速度。为了精简工作流,以减少工作流的数据量,本申请实施例中对每个工作流进行精简化定义,即计算每个工作流的唯一特征码,具体的可以是通过md5、sha1或sha256来计算工作流特征描述的哈希值来作为特征码,使得长达数万字节的工作流通过大约20字节的哈希值来表示,从而精简了工作流的数据量,也对应减少了工作流对缓存系统带来的缓存压力。另外,因为哈希算法自身的特性,可以保证不同字节生成对应唯一的特征码,故避免了不同工作流产生同一特征码的可能性。具体的,对应于表1中的工作流,一级审批(x),二级审批(y),三级审批(x),计算工作流特征描述对应的哈希值,得到的特征码为79ad7ee7afe774369a9e9282ba45d61560299069,由此可知,通过唯一特征码的方式可以明显减少工作流的数据量,也减少了工作流查重索引所需的工作量,从而减少工作流系统的缓存压力。进一步,当节点任务包含固定设置量和动态设置量时,如表1中的审批环节和审批模式为固定设置量,而审批人为动态设置量,为了减少动态设置量而引起的工作流的改变,可以在流程定义中添加三个流程变量(v1,v2,v3)分别作为三个审批环节的处理人,保存流程定义,这样就可以使用相同的特征码来定义启动流程,并在该流程中通过调用api接口的方式将三个环节的实际处理人分别赋值给(v1,v2,v3),从而进一步减少了工作流定义的数量,提高了工作流定义的精简度,进一步减少了工作流定义的存储压力。103、对所述工作流及对应的唯一特征码执行关联存储,使得对所述工作流进行唯一性存储。得到工作流对应的唯一特征码后,为了实现对该工作流的唯一性存储,可以通过特征码对该工作流进行标识,因为唯一特征码(哈希值)的唯一性,故可以通过工作流与唯一特征码的关联存储,来实现对该工作流的唯一性存储。这样,一方面可以通过精简的特征码替代工作流定义的方式,减少对工作流定义的缓存压力,另一方面也可以在固定存储中通过关联存储的方式,实现对工作流定义的唯一性存储,因为在对预设工作流生成新的工作流定义时,先在已经存储的唯一特征码中进行查询匹配,若匹配成功,则直接调用,从而减少了重复生成工作流定义的工作量,也减少了固定存储中工作流定义的重复率及存储压力。本申请实施例中,获取工作流的节点任务,根据该节点任务生成对应工作流的唯一特征码,对该节点任务及唯一特征码进行关联存储,使得对该工作流执行唯一性存储。其中,用特征码代替工作流定义的方式,一方面减少了工作流定义的缓存压力,另一方面,通过关联存储的方式,使得在生成新工作流定义时,进行特征码的匹配,从而减少了生成工作流定义的重复率,也对应减少了由重复率导致的存储压力。基于图1所述的实施例,当需要对工作流执行加签事件时,还可以执行以下步骤,具体请参阅图2,本申请实施例中一种定义工作流的方法的另一个实施例,包括:201、当对所述工作流执行加签事件时,在所述工作流中增加对应的节点以匹配所述加签事件,并创建新的工作流;因为在现有技术中,通过活动模板的方式执行加签事件时,只能是在原有的节点任务中创建子任务,且该子任务只作为对应节点任务的附属任务,不存在对应的节点,故在对工作流执行加签后,无法显示出加签的节点任务,且该节点任务是一次性的,当下次执行该加签后的工作流时,还需要再次对原工作流执行加签事件,从而增加相应的工作量。而通过修改定义的方式执行加签事件时,虽然能够克服活动模板的缺陷,但在实际工作中,当广泛使用自由流程处理业务流程时,尤其是需要由流程发起人来决定流程所需的环节时,几乎所有流程实例都需要产生一个新定义,从而增大了工作流的缓存压力。本实施例中,当需要对工作流执行加签事件时,只需要在工作流中增加对应的节点来匹配加签事件,并为加签后的工作流创建新的工作流定义,这样,不仅可以克服活动模板中加签节点不可视的缺点,及加签事件只能被一次性执行的缺陷,且在创建新的工作流定义后,同样对新的工作流执行图1所述的实施例步骤,还可以克服修改定义中因为动态设置量而引起的工作流定义重复率增大的问题,从而提升了创建加签事件流程的精简性及便捷性。具体的,针对表1所述的工作流定义,当需要对表1的工作流执行加签事件时,即实现表2所述的工作流定义时,可以使用新流程定义,修改流程运行的内容,调整与流程处理人相关的流程变量值,并将新加签的审批人赋值给v4即可。表2审批环节审批人审批模式一级审批张三或签二级审批李四、王五会签三级审批赵六或签四级审批钱二或签基图1或图2所述的实施例,还可以在获取工作流的节点任务之前,执行以下的步骤,以进一步减少工作流定义的存储压力,具体请参阅图3,本申请实施例中一种定义工作流的方法的另一个实施例,包括:301、获取预设工作流,并将所述预设工作流生成对应的第一特征码;当生成工作流的系统接收到提交人提交的工作流后,采用预设的算法(如md5、sha1或sha256)计算预设工作流的第一特征码。具体的,此处第一特征码的生成方式包括但不限于上述算法,只要得到工作流对应的唯一特征码即可,此处不做具体限制。302、查询已存储的唯一特征码中是否存在所述第一特征码;得到预设工作流对应的第一特征码后,查询预存的唯一特征码,并判断唯一特征码库中是否存在该第一特征码,若存在,则执行步骤303,若不存在,则执行步骤304。303、直接调用所述第一特征码对应的工作流。当唯一特征码库中存在第一特征码时,则直接调用与该第一特征码关联存储的工作流,并执行该工作流。这种查询调用的方式,明显减少了再次生成相同工作流定义的工作量,也减少了同一工作流定义的重复率,从而减少了对工作流定义的存储压力。304、触发获取工作流的节点任务的步骤。当唯一特征码库中不存在第一特征码时,则触发获取工作流的节点任务的步骤,从而触发执行图1所述的实施例。本申请实施例中,在创建新的工作流定义时,首先通过查询唯一特征码库的方式,判断预先存储的工作流中是否存在该工作流定义,若存在,则调用执行,若不存在,再执行创建流程,从而减少了生成同一工作流定义的重复率,进一步减少了对工作流定义的存储压力。上面描述了本申请实施例中定义工作流的方法,下面对本申请中定义工作流的系统进行描述,请参阅图4,本申请中定义工作流的系统的一个实施例,包括:获取单元401,用于获取工作流的节点任务;生成单元402,用于根据所述节点任务生成所述工作流的唯一特征码;存储单元403,用于对所述工作流及对应的唯一特征码执行关联存储,以实现对所述工作流的唯一性存储。优选的,所述节点任务包括固定设置量和/或动态设置量;所述系统还包括:变量定义单元404,用于当所述节点任务包括动态设置量时,将所述动态设置量以变量的形式进行定义,使得所述动态设置量独立于所述唯一特征码。优选的,所述系统还包括:加签单元405,用于在对所述工作流执行加签事件时,在所述工作流中增加对应的节点以匹配所述加签事件,并创建新的工作流。优选的,所述系统还包括:第一特征码生成单元406,用于获取预设工作流,并将所述预设工作流生成对应的第一特征码;查询单元407,用于查询已存储的唯一特征码中是否存在所述第一特征码;调用单元408,用于在已存储的唯一特征码中存在第一特征码时,直接调用所述第一特征码对应的工作流。优选的,所述系统还包括:触发单元409,用于在已存储的唯一特征码中不存在所述第一特征码时,触发获取单元401。需要说明的是,本申请实施例中各单元的作用与图1至图3所述实施例中描述的类似,此处不再赘述。本申请实施例中,通过获取单元401获取工作流的节点任务,根据该节点任务生成对应工作流的唯一特征码,通过存储单元403对该节点任务及唯一特征码进行关联存储,以实现对该工作流的唯一性存储。其中,用特征码代替工作流定义的方式,一方面减少了对工作流定义的缓存压力,另一方面,通过关联存储的方式,使得在生成新工作流定义时,进行特征码的匹配,从而减少了生成工作流定义的重复率,也对应减少了由重复率导致的存储压力。上面从模块化功能实体的角度对本发明实施例中的定义工作流的系统进行了描述,下面从硬件处理的角度对本发明实施例中的计算机装置进行描述:该计算机装置用于实现定义工作流的系统的功能,本发明实施例中计算机装置一个实施例包括:处理器以及存储器;存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序时,可以实现如下步骤:获取工作流的节点任务;根据所述节点任务生成所述工作流的唯一特征码;对所述工作流及对应的唯一特征码执行关联存储,以实现对所述工作流的唯一性存储。在本发明的一些实施例中,处理器,还可以用于实现如下步骤:当所述节点任务包括动态设置量时,将所述动态设置量以变量的形式进行定义,使得所述动态设置量独立于所述唯一特征码。在本发明的一些实施例中,处理器,还可以用于实现如下步骤:当对所述工作流执行加签事件时,在所述工作流中增加对应的节点以匹配所述加签事件,并创建新的工作流。在本发明的一些实施例中,处理器,还可以用于实现如下步骤:获取预设工作流,并将所述预设工作流生成对应的第一特征码;查询已存储的唯一特征码中是否存在所述第一特征码;若是,则直接调用所述第一特征码对应的工作流。在本发明的一些实施例中,处理器,还可以用于实现如下步骤:当已存储的唯一特征码中不存在所述第一特征码时,则触发获取工作流的节点任务的步骤。可以理解的是,上述说明的计算机装置中的处理器执行所述计算机程序时,也可以实现上述对应的各装置实施例中各单元的功能,此处不再赘述。示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述定义工作流的系统中的执行过程。例如,所述计算机程序可以被分割成上述定义工作流的系统中的各单元,各单元可以实现如上述相应定义工作流的系统说明的具体功能。所述计算机装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机装置可包括但不仅限于处理器、存储器。本领域技术人员可以理解,处理器、存储器仅仅是计算机装置的示例,并不构成对计算机装置的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机装置还可以包括输入输出设备、网络接入设备、总线等。所述处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。本发明还提供了一种计算机可读存储介质,该计算机可读存储介质用于实现定义工作流的系统的功能,其上存储有计算机程序,计算机程序被处理器执行时,处理器,可以用于执行如下步骤:获取工作流的节点任务;根据所述节点任务生成所述工作流的唯一特征码;对所述工作流及对应的唯一特征码执行关联存储,以实现对所述工作流的唯一性存储。在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:当所述节点任务包括动态设置量时,将所述动态设置量以变量的形式进行定义,使得所述动态设置量独立于所述唯一特征码。在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:当对所述工作流执行加签事件时,在所述工作流中增加对应的节点以匹配所述加签事件,并创建新的工作流。在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:获取预设工作流,并将所述预设工作流生成对应的第一特征码;查询已存储的唯一特征码中是否存在所述第一特征码;若是,则直接调用所述第一特征码对应的工作流。在本发明的一些实施例中,处理器,还可以用于实现如下步骤:当已存储的唯一特征码中不存在所述第一特征码时,则触发获取工作流的节点任务的步骤。可以理解的是,所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在相应的一个计算机可读取存储介质中。基于这样的理解,本发明实现上述相应的实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1