可个性化定制业务流程的工作流引擎的制作方法

文档序号:6383185阅读:285来源:国知局
专利名称:可个性化定制业务流程的工作流引擎的制作方法
技术领域
本发明涉及一种可个性化定制业务流程的工作流引擎。
背景技术
在当今政府机关企事业单位的运作过程中,由于各种规范化管理概念的引入,各 机关企事业单位的运作过程越来越明显的体现为信息流、资金流、物流、价值流等合理的流 动;这些流动越合理则往往人员分工越具体,人员间合作越紧密,这种合作的体现形式必然 是一个或多个完整而高效的工作流程,因此,可以说工作流无处不在。
但是传统的管理类软件要么是软件开发商针对大部分政府机关企事业单位的管 理流程提取共性设计而成,要么是软件开发商针对某个客户的具体需求个性化定制而成。 这两种形式的管理类软件都有其不可回避的缺点,共性系统往往客户花钱购买来之后发现 与本身的个性化需求有着或多或少的冲突,还是需要软件开发商针对其个性化需求进行二 次开发,这样的开发又需要投入大量的财力物力;而个性系统虽然满足了单个客户的个性 化需求,但这种个性化的定制随之带来的是高额的开发费用和维护成本。而且这两种方式 都无法应对一种情况一旦客户的业务流程发生变化,可能会导致后续的多次开发和维护。
导致上述现象的原因就是传统的管理类软件中几乎所有的业务流程系统都是将 管理业务逻辑和软件控制逻辑捆绑在一起,使得一旦客户的业务逻辑发生变更,将全面的 影响到软件系统的控制逻辑,因而必须修改大量源代码甚至重新开发。发明内容
本发明的目的在于克服现有技术的不足,提供一种可个性化定制业务流程的工作 流引擎,该工作流引擎有利于分离软件系统的控制逻辑和业务逻辑,实现在无需修改控制 逻辑或源代码的前提下定制个性化的业务流程。
为实现上述目的,本发明的技术方案是一种可个性化定制业务流程的工作流引 擎,包括开始单元、执行单元模板和结束单元,所述工作流引擎基于令牌流方式实现,所述 执行单元模板包括人工任务单元、分支单元、汇聚单元、自动执行单元、子流程单元和条件 判断单元;所述分支单元用于处理并行分支任务,其实现逻辑为当流程父令牌执行到分支单 元时,所述分支单元判定后续路径的生成情况,然后根据后续路径的条数产生相应的子令 牌;所述汇聚单元与所述分支单元配对使用,用于汇聚分支任务,其实现逻辑为当分支单 元中的子令牌到达汇聚单元时,所述汇聚单元判断所述子令牌对应的流程父令牌的其它子 令牌是否都已到达了汇聚单元,是则取出对应的流程父令牌,然后销毁所述子令牌,并驱动 所述流程父令牌流转到汇聚单元并从所述汇聚单元往下流转,否则销毁所述子令牌;所述子流程单元用于生成一个或多个子流程,其实现逻辑为当流程父令牌执行到子 流程单元时,所述子流程单元根据设定的子流程数相应的创建一个或多个子令牌,并驱动子令牌在对应的子流程中流转;当有子流程结束时,判断其它子流程是否都已结束,即判断其它子流程上的子令牌是否都已经销毁,是则驱动流程父令牌往下流转,否则仅销毁已结束子流程上的子令牌,不做其它操作;
所述条件判断单元用于配置流转规则以及根据流转规则从多条后续路径中选择满足流转条件的一条进行任务流转,需与规则引擎配合使用,所述条件判断单元的实现逻辑为当流程令牌执行到条件判断单元时,所述条件判断单元取出预先配置的判断规则并传给规则引擎,以对各条后续路径是否满足流转条件进行逻辑计算,然后根据规则引擎的计算返回结果选择满足流转条件的后续路径进行流转;
所述自动执行单元用于执行后台数据操作或调用外系统的接口,需要预先配置任务执行需调用的程序,其实现逻辑为当流程令牌执行到自动执行单元时,所述自动执行单元调用并执行相应的程序;所述自动执行单元设有一个是否自动执行的属性,当该属性为true时,执行完相应的程序后流程令牌直接流转到下一单元,否则流程令牌将在所述自动执行单元等待外界驱动才能往下流转;
所述人工任务单元用于生成并执行需要执行人员完成一定的动作才能往下流转的人工任务,其实现逻辑为当流程令牌执行到人工任务单元时,所述人工任务单元调用任务管理器产生相应的人工任务,此时流程令牌停在当前单元直至人工任务完成后再继续往下流转。与现有技术相比,本发明的有益效果是1、分离了软件系统的控制逻辑和业务逻辑,使得业务逻辑的变更对于控制逻辑透明。2、利用本发明的工作流引擎开发的软件系统可以根据具体业务需求量身定制个性化的业务流程,而不用修改控制逻辑,甚至无需修改源代码。3、提供灵活、丰富的标准开发接口,使得开发人员能采用自己习惯的开发工具在该平台上进行定制和扩充模块。4、提供对所有主流数据库的支持以及对数据的强大容错能力。


图1是本发明实施例的工作流引擎的框架图。
具体实施例方式本发明可个性化定制业务流程的工作流引擎,如图1所示,包括开始单元、执行单元模板和结束单元,所述工作流引擎基于令牌流方式实现,所述执行单元模板包括人工任务单元、分支单元、汇聚单元、自动执行单元、子流程单元和条件判断单元;
所述分支单元用于处理并行分支任务,该单元不需要人工干预,其实现逻辑为当流程父令牌执行到分支单元时,所述分支单元判定后续路径的生成情况,然后根据后续路径的条数产生相应的子令牌。而流程父令牌此时还在所述分支单元,只是其状态是不可流转的,分支单元是需要和汇聚单元配套使用的,即要一一对应。所述汇聚单元与所述分支单元配对使用,用于汇聚分支任务,该单元也不需要人工干预,其实现逻辑为当分支单元中的子令牌到达汇聚单元时,所述汇聚单元判断所述子令牌对应的流程父令牌的其它子令牌(即所述子令牌的兄弟令牌)是否都已到达了汇聚单元,是则通过所述子令牌取出对应的流程父令牌,然后销毁所述子令牌,并驱动所述流程父 令牌流转到汇聚单元并从所述汇聚单元往下流转,否则销毁所述子令牌。
所述子流程单元用于生成一个或多个子流程,也是通过子令牌的方式实现,该单 元也是一个不需要人工干预的环节,其实现逻辑为当流程父令牌执行到子流程单元时,所 述子流程单元根据设定的子流程数相应的创建一个或多个子令牌,并驱动子令牌在对应的 子流程中流转;当有子流程结束时,判断对应的兄弟子流程是否都已结束,即判断其它子流 程上的子令牌是否都已经销毁,是则驱动流程父令牌往下流转,否则仅销毁已结束子流程 上的子令牌,不做其它操作。
所述条件判断单元,即路由判断,此单元也不需要人工干预,但需要配置好路由规 贝U。所述条件判断单元用于配置流转规则以及根据流转规则从多条后续路径中选择满足流 转条件的一条进行任务流转,需与规则引擎配合使用,所述条件判断单元的实现逻辑为当 流程令牌执行到条件判断单元时,所述条件判断单元取出预先配置的判断规则并将所述判 断规则传给规则引擎,以对各条后续路径是否满足流转条件进行逻辑计算,然后根据规则 引擎的计算返回结果选择满足流转条件的后续路径进行流转。如对于有A、B、C三条后续路 径的情况,条件判断单元将流转规则传给规则引擎计算,首先判断后续路径A是否满足流 转条件,是则沿后续路径A流转,路径B、C不作判断,否则继续计算后续路径B、C是否满足 流转条件。
所述自动执行单元用于执行后台数据操作或调用外系统的接口,也不需要人工干 预,但需要预先配置任务执行需调用的程序,其实现逻辑为当流程令牌执行到自动执行单 元时,所述自动执行单元调用并执行相应的程序;所述自动执行单元设有一个是否自动执 行的属性,当该属性为true时,执行完相应的程序后流程令牌直接流转到下一单元,否则 流程令牌将在所述自动执行单元等待外界驱动才能往下流转,这种外界驱动通常表现为程 序的执行结果,比如外系统接口的返回数据等。
所述人工任务单元用于生成并执行需要执行人员完成一定的动作才能往下流转 的人工任务,其实现逻辑为当流程令牌执行到人工任务单元时,所述人工任务单元调用任 务管理器产生相应的人工任务,此时流程令牌停在当前单元直至人工任务完成后再继续往 下流转。
人工任务一般是单一任务,但也有特殊情况就是会签或多实例任务,当人工任务 单元中配置需要会签时,将会根据执行人员的数量产生对应数目的人工任务,但它不一定 需要所有任务都完成才驱动流程令牌执行,只需要满足驱动的条件即可驱动令牌流转,如 任务完成百分比达到50%或者任务完成达到3个时即可驱动流程令牌流转,这些会签流转 条件可以预先予以配置。
在本发明的人工任务单元中,扩展了两种单元,一种为多实例单元,另一种为会签 单元。多实例单元其实为会签单元的一种特殊形式,在实际的应用中,该种多实例单元多与 子流程单元共存,用以生成不定数量的子流程,待所有子流程都完成后父流程才能继续流 转。而会签单元比较容易理解,在各种管理类系统中,需要上级审批和会签的功能大范围存 在,所以本发明设计了这种单元,同时可以对会签规则进行设定,根据百分比、具体数目来 指定会签结束并往下流转的条件。
通常在管理类系统的建设中,都需要纳入对执行人员的执行时间的考核要求,以提高执行人员工作效率,因此,本发明的工作流引擎也设计实现了一与人工任务单元配合使用的时限考核模块,用于在人工任务单元上配置相应的考核时限,以对人工任务的执行时间进行考核。其中还可配置是否把节假日、下班时间等剔除出考核时限。而对于考核时限的计算大致包含两种方式
I)时间点。时间点即某个时刻,在人工任务单元上配置相应的考核时限,当流程执行到该单元时,任务管理器会根据配置的考核时限计算出该任务完成的时间点。当系统时间到达该时刻时,如果业务上有配置如预警或告警等的动作,会触发相应的提示功能。2)历时。历时表示该单元从创建出来后经历了多长的时间后超时,同样的,系统根据单元创建时间加上这个时长计算出超时时间点,当系统时间到达该时刻时,如果业务上有配置如预警或告警等的动作,会触发相应的提示功能。当然如果无需对执行时间进行考核,也可不配置考核时限模块。上述任务管理器主要是配合人工任务单元使用,用于根据人工任务单元配置信息来进行人工任务的创建、分配以及流程驱动的判断等,并结合考核时限模块对人工任务的执行时间进行计算和考核。它的实现逻辑其实已经融入到人工任务单元的实现逻辑、考核时限、规则引擎中了。上述规则引擎用于计算各种复杂的逻辑条件,规则引擎支持的规则表达方式有逻辑表达式,比如A>B等,其中A和B都为条件变量名称;脚本语言(BSH脚本语言)以及JAVA类。脚本语言和JAVA类都是为了满足个性化的复杂规则需求而设计的。规则引擎主要用于判断后续单元是否需要创建,它作用于人工任务、条件、分支、子流程单元。如人工任务后续有多条路径可以选择,但只能执行其中的一条路径,此时就需要配置相应的规则,也可不配置规则,由人工判断执行哪条路径。规则引擎实现了如下几种方式来判断路径走向
I)逻辑表达式
根据已有的业务数据判断,如审核是否通过等来计算结果。从实现来说,通常将页面或者后台的某个变量值与某个固定值进行逻辑计算得出true或者false,来判断路径的走向。比如设置逻辑表达式为param>l,贝U页面或后台就需要对变量param进行赋值,该值将与I进行比较大小,得出true还是false的结果。2)脚本语言
脚本语言,本发明实施例使用BSH作为脚本语言,便于修改。使用脚本语言主要考虑复杂业务逻辑或规则改动较频繁的情况,因为脚本语言修改后可实时生效,这样就无需重启流程引擎即可达到想要的效果。配置的BSH脚本需要返回一个result变量,流程引擎将根据该变量的值来判断流程的走向。3) JAVA 方法
配置JAVA方法其实是对脚本语言的一种补充,在应用过程中较少用到。它的实现方式为通过继承相应的接口,实现接口中的逻辑来判断,最终也需要返回一个结果值给规则引擎来判定后续的流程走向,此种方法主要用于改动不是很频繁但业务逻辑非常复杂的情况。以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。
权利要求
1.一种可个性化定制业务流程的工作流引擎,包括开始单元、执行单元模板和结束单元,其特征在于所述工作流引擎基于令牌流方式实现,所述执行单元模板包括人工任务单元、分支单元、汇聚单元、自动执行单元、子流程单元和条件判断单元; 所述分支单元用于处理并行分支任务,其实现逻辑为当流程父令牌执行到分支单元时,所述分支单元判定后续路径的生成情况,然后根据后续路径的条数产生相应的子令牌; 所述汇聚单元与所述分支单元配对使用,用于汇聚分支任务,其实现逻辑为当分支单元中的子令牌到达汇聚单元时,所述汇聚单元判断所述子令牌对应的流程父令牌的其它子令牌是否都已到达了汇聚单元,是则取出对应的流程父令牌,然后销毁所述子令牌,并驱动所述流程父令牌流转到汇聚单元并从所述汇聚单元往下流转,否则销毁所述子令牌; 用于生成一个或多个子流程,其实现逻辑为当流程父令牌执行到子流程单元时,所述子流程单元根据设定的子流程数相应的创建一个或多个子令牌,并驱动子令牌在对应的子流程中流转;当有子流程结束时,判断其它子流程是否都已结束,即判断其它子流程上的子令牌是否都已经销毁,是则驱动流程父令牌往下流转,否则仅销毁已结束子流程上的子令牌,不做其它操作; 所述条件判断单元用于配置流转规则以及根据流转规则从多条后续路径中选择满足流转条件的一条进行任务流转,需与规则引擎配合使用,所述条件判断单元的实现逻辑为当流程令牌执行到条件判断单元时,所述条件判断单元取出预先配置的判断规则并传给规则引擎,以对各条后续路径是否满足流转条件进行逻辑计算,然后根据规则引擎的计算返回结果选择满足流转条件的后续路径进行流转; 用于执行后台数据操作或调用外系统的接口,需要预先配置任务执行需调用的程序,其实现逻辑为当流程令牌执行到自动执行单元时,所述自动执行单元调用并执行相应的程序;所述自动执行单元设有一个是否自动执行的属性,当该属性为true时,执行完相应的程序后流程令牌直接流转到下一单元,否则流程令牌将在所述自动执行单元等待外界驱动才能往下流转; 所述人工任务单元用于生成并执行需要执行人员完成一定的动作才能往下流转的人工任务,其实现逻辑为当流程令牌执行到人工任务单元时,所述人工任务单元调用任务管理器产生相应的人工任务,此时流程令牌停在当前单元直至人工任务完成后再继续往下流转。
2.根据权利要求1所述的可个性化定制业务流程的工作流引擎,其特征在于还设有一与人工任务单元配合使用的时限考核模块,用于在人工任务单元上配置相应的考核时限,以对人工任务的执行时间进行考核。
3.根据权利要求2所述的可个性化定制业务流程的工作流引擎,其特征在于所述任务管理器用于根据人工任务单元配置信息来进行人工任务的创建、分配以及流程驱动的判断,并结合考核时限模块对人工任务的执行时间进行计算和考核。
4.根据权利要求1所述的可个性化定制业务流程的工作流引擎,其特征在于所述规则引擎用于计算各种逻辑条件,判断后续单元是否需要创建,规则引擎支持的规则表达方式有逻辑表达式,脚本语言以及JAVA类。
全文摘要
本发明涉及一种可个性化定制业务流程的工作流引擎,包括开始单元、执行单元模板和结束单元,该工作流引擎基于令牌流方式实现,执行单元模板包括人工任务、分支、汇聚、自动执行、子流程和条件判断等单元,分支单元用于处理分支任务,汇聚单元用于汇聚分支任务,子流程单元用于生成一个或多个子流程,条件判断单元用于配置流转规则以及根据流转规则从多条后续路径中选择一条进行任务流转,自动执行单元用于执行后台数据操作或调用外系统的接口,人工任务单元用于生成并执行需要执行人员完成某些动作才能往下流转的人工任务。该工作流引擎有利于分离软件系统的控制逻辑和业务逻辑,实现在无需修改控制逻辑或源代码的前提下定制个性化的业务流程。
文档编号G06Q10/06GK102999816SQ20121051354
公开日2013年3月27日 申请日期2012年12月5日 优先权日2012年12月5日
发明者林富钦, 郑生华, 张航, 陈春 申请人:福建邮科通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1