工作流生成方法、工作流执行方法以及工作流执行系统的制作方法

文档序号:6487138阅读:149来源:国知局
工作流生成方法、工作流执行方法以及工作流执行系统的制作方法
【专利摘要】本发明实施例公开了一种工作流生成方法、工作流执行方法以及工作流执行系统,该方法包括:获取所述节点对象的节点行为以及节点类型;在所述节点类型为人工节点时,获取业务表单,形成所述节点对象,在所述节点类型为自由节点时,所述业务表单以及所述节点类型形成所述节点对象;依据预先设定的业务处理流程以及所述节点对象对应的节点行为,获得与所述节点对象对应的路由;依据所述路由与构建的各个节点对象的对应关系,组合所述各个节点对象以及所述路由,以完成所述工作流的构建。采用本发明实施例提供的方法、装置以及系统可以缩减工作流开发的时间、对工作流的更改不需要对程序代码进行更改以及内存中程序代码的冗余度低。
【专利说明】工作流生成方法、工作流执行方法以及工作流执行系统
【技术领域】
[0001]本发明涉及软件【技术领域】,更具体的说,是涉及一种工作流生成方法、工作流执行方法以及工作流执行系统。
【背景技术】
[0002]随着科学技术的发展,计算机软件得到了越来越广泛的应用,早期的计算机软件大都使用代码编写,导致软件晦涩难懂,不便于维护和业务重构,运营成本很高。因此工作流应用而生。
[0003]工作流是指为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。工作流由节点对象以及各个节点对象之间的路由组成,节点对象由节点行为(预定规则)、节点类型以及业务表单(文档、信息或者任务)组成,节点行为包括:开始行为、结束行为、分发行为以及审批行为等等,节点类型包括:自由节点以及人工节点,自由节点是指不需要人工操作的节点,路由是指业务表单的传递路径。
[0004]由于每一工作流对应的代码存储于同一文档中,导致工作流的开发时间较长,工作流的更改,需要对工作流对应的程序代码进行相应的更改以及内存中存储的代码的冗余度较高。

【发明内容】

[0005]有鉴于此,本发明提供了 一种工作流生成方法、工作流执行方法以及工作流执行系统,以克服现有技术中工作流的开发时间较长,工作流的更改,需要对工作流对应的程序代码进行相应的更改以及内存中存储的代码的冗余度较高的问题。
[0006]为实现上述目的,本发明提供如下技术方案:
[0007]一种工作流生成方法,包括:
[0008]对于待构建的工作流中每一节点对象执行如下操作:
[0009]获取所述节点对象的节点行为以及与所述节点行为对应的节点类型,所述节点类型包括:人工节点以及自由节点;
[0010]在所述节点类型为人工节点时,获取与所述节点类型对应的业务表单,所述业务表单、所述节点类型以及所述节点行为形成所述节点对象,在所述节点类型为自由节点时,所述业务表单以及所述节点类型形成所述节点对象;
[0011]依据预先设定的业务处理流程以及所述节点对象对应的节点行为,获得与所述节点对象对应的路由;
[0012]依据所述路由与构建的各个节点对象的对应关系,组合所述各个节点对象以及所述路由,以完成所述工作流的构建,所述各个节点行为对应的程序代码位于不同的文档中。
[0013]其中,所述获取与所述节点类型对应的业务表单具体包括:
[0014]确定所述节点类型对应的业务表单;
[0015]将所述业务表单关联至所述节点行为。[0016]其中,还包括:
[0017]在接收到完成所述工作流的构建指示后,显示构建的所述工作流的流程ID对话框;
[0018]接收所述流程ID对话框中输入的数据,将所述数据作为所述工作流的流程ID。
[0019]其中,所述工作流中还包括一通用节点对象,所述通用节点对象与所述工作流中所有节点对象相关联。
[0020]一种工作流执行方法,所述工作流生成方法上述任一种所述生成方法,所述工作流执行方法包括:
[0021]获取所述工作流中当前需要运行的节点对象;
[0022]执行与所述节点对象的节点行为对应的程序代码;
[0023]在接收到所述节点对象运行完毕的指示后,判断所述节点对象对应的节点行为是否为结束行为,如果是,则退出所述工作流,如果否,则依据所述节点对象对应的路由,获取下一目标节点对象。
[0024]其中,所述执行与所述节点对象的节点行为对应的程序代码具体包括:
[0025]判断所述节点对象的节点类型;
[0026]在所述节点类型为人工节点时,显示所述节点对象对应的业务表单,并获取所述业务表单中的数据;
[0027]在所述节点为自由节点时,执行所述节点对象的节点行为对应的程序代码的操作。
[0028]其中,所述节点类型还包括:会签节点,所述会签节点属于人为节点,在所述获取所述节点对象之后,执行与所述节点对象的节点行为对应的程序代码前还包括:
[0029]判断所述节点对象的节点类型;
[0030]在所述节点类型为会签节点时,接收目标会签值;
[0031]创建与所述目标会签值对应数目的任务,各个所述任务的状态为未完成状态,将完成状态任务参数设置为零;
[0032]在接收到处理一所述任务的请求时,执行与所述节点对象的节点行为对应的程序代码的操作;
[0033]相应的,在接收到所述节点对象运行完毕的指示之前还包括:
[0034]在检测到某一所述任务被完成时,将所述任务的状态更改为完成状态,并将所述完成状态任务参数加I ;
[0035]当所述完成状态任务参数的值与所述目标会签值相等时,产生所述节点对象运行完毕的指示。
[0036]其中,在接收到所述节点对象运行完毕的指示后,判断所述节点对象对应的节点行为是否为结束行为之前还包括:
[0037]判断是否接收到跳转至第一预设节点对象的指令,如果是,则跳转至所述第一预设节点对象;
[0038]和/ 或,
[0039]判断是否接收到返回至第二预设节点对象的指令,如果是,则返回至所述第二预设节点对象;[0040]和/ 或,
[0041]判断是否接收到撤销指令,如果是,则撤回当前执行的操作;
[0042]在上述判断结果均为否的情况下,执行判断所述节点对象对应的节点行为是否为结束行为的操作。
[0043]一种工作流执行系统,包括:
[0044]工作流命令存储器,用于存储构建的各个工作流,且每一工作流具有一流程ID ;
[0045]工作流命令执行器,用于在接收到操作指令时,根据所述操作指令对应的流程ID,从所述工作流命令存储器中得到所述操作指令对应的工作流,所述操作指令包括跳转指令、返回指令、撤销指令以及顺序执行指令;
[0046]工作流引擎,用于获取所述工作流命令执行器得到的工作流中当前需要运行的节点对象,调用所述节点对象对应的节点行为对应的程序代码,以显示所述节点对象对应的业务表单,并执行与所述程序代码相应的操作;在接收到所述节点对象运行完毕的指示后,判断所述节点对象对应的节点行为是否为结束行为,如果是,则退出所述流程,如果否,则产生新的操作指令,并将所述操作指令发送至所述工作流命令执行器。
[0047]优选地,还包括:
[0048]工作流监控服务器,用于监控各个节点对象的运行时间。
[0049]经由上述的技术方案可知,采用本发明实施例提供的方法,各个节点行为对应的程序代码是相互独立的,由各个程序代码相互独立的节点行为构建的工作流,在开发时,可以为每一节点行为对应的程序代码分配一开发人员,从而提高工作流开发的速度,当工作流中某一节点对象需要删除时,只需要删除该节点对象对应的程序代码即可,不需要专业人员进行更改,操作方便,包括同一节点行为的不同工作流中该节点行为对应的程序代码可以为同一个,从而降低了内存中存储的代码的冗余度。
【专利附图】

【附图说明】
[0050]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0051]图1为本发明实施例公开的第一种工作流生成方法的流程图;
[0052]图2为本发明实施例提供的第二种工作流生成方法的流程图;
[0053]图3为本发明实施例提供的第一种工作流执行方法的流程图;
[0054]图4为本发明实施例提供的第二种工作流执行方法的流程图;
[0055]图5为本发明实施例提供的第三种工作流执行方法的流程图;
[0056]图6为本发明实施例提供的一种串行工作流的示意图;
[0057]图7为在图6中建立的返回线701的示意图;
[0058]图8为本发明实施例提供的一种较为复杂的工作流流程图;
[0059]图9为本发明实施例提供的一种工作流执行系统的结构示意图。
【具体实施方式】[0060]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0061]现有技术中的每一工作流对应的程序代码存储域同一文档中,且每一工作流中各个节点对象的代码具有一定的关联,所以在进行工作流开发时,需要较少的开发人员,导致工作流的开发时间较长。当需要将工作流中某一节点对象删除时,需要将程序代码中对应的代码进行删除,需要专业人员进行更改,操作不方便。不同的工作流中包含的节点对象对应的节点行为可能相同,由于每一工作流程的代码存储于同一文档中,程序代码非常复杂,各个工作流对应的程序代码之间不能相互引用,所以需要重复编写节点行为对应的代码,导致内存中存储的代码的冗余度较高。
[0062]实施例一
[0063]请参阅附图1,为本发明实施例公开的第一种工作流生成方法的流程图,该方法中对于待构建的工作流中每一节点对象执行如下操作:
[0064]步骤SlOl:获取节点对象的节点行为以及与所述节点行为对应的节点类型;
[0065]节点行为包括:开始行为、结束行为、分发行为、审批行为以及驳回行为等等,节点类型包括:自由节点以及人工节点,自由节点是指不需要人工操作的节点。
[0066]步骤S102:在所述节点类型为人工节点时,获取与所述节点类型对应的业务表单,所述业务表单、所述节点类型以及所述节点行为形成所述节点对象,在所述节点类型为自由节点时,所述业务表单以及所述节点类型形成所述节点对象;
[0067]由于节点类型为人工节点的节点对象需要人机交互界面,所以包括业务表单,而节点类型为自由节点的节点对象不需要人机交互界面,所以不包括业务表单。
[0068]步骤S103:依据预先设定的业务处理流程以及所述节点对象对应的节点行为,获得与所述节点对象对应的路由;
[0069]预先设定的业务处理流程是指业务处理的顺序,例如,办理新公司注册,则需要在行政大厅启动一个新公司注册的流程,首先 申请人:在行政大厅提交相关资料,然后工商局进行审批,其次公安局以及地税局进行审批,最后将审批结果返回至行政大厅。“行政大厅一工商局一公安局以及地税局一行政大厅”就表示一个业务处理流程。在生成一个工作流时,开发人员必须知道业务处理流程,否则不能开发出符合实际业务的工作流。
[0070]路由是指业务表单的传递路径。路由与节点行为相对应,例如,当节点行为为分发行为时,则该节点对象至少有两个路由,即该节点对象至少有两个目标节点对象;当节点行为为驳回节点行为时,该节点对象只有一个目标节点对象。每一路由都连接有两个节点对象:源节点对象以及目标节点对象,在按照工作流中定义的执行顺序运行工作流时,源节点对象比目标节点对象先运行。
[0071]与节点行为为结束节点的节点对象对应的路由是指该节点对象的源节点对象与该节点对象之间的路由。
[0072]步骤S104:依据所述路由与构建的各个节点对象的对应关系,组合所述各个节点对象以及所述路由,以完成所述工作流的构建。
[0073]上述各个节点行为对应的程序代码位于不同的文档中。[0074]各个节点行为对应的程序代码位于不同的文档中,也就是各个节点行为对应的程序代码相互独立。
[0075]步骤SlOl至步骤S104是对于每一节点对象执行的步骤,若一待构建的工作流中包括至少两个节点对象,其中一个节点对象的执行步骤为:1 (与步骤SlOl的操作相同),2(与步骤S102的操作相同),3 (与步骤S103的操作相同),4 (与步骤S104的操作相同),另一个节点对象的执行步骤为:1’(与步骤SlOl的操作相同),2’(与步骤S102的操作相同),3’(与步骤S103的操作相同),4’(与步骤S104的操作相同),只要1,2,3,4的前后顺序以及1’,2’,3’,4’前后顺序保持不变,1,2,3,4与1’,2’,3’,4’可以任意组合,具体的执行顺序可以为:1,I’,2,3,2’,3’,4,4’或者 1,I’,2,2’,3,3’,4,4’或者 1,2,I,,2,,3,4,3,,4,等等,即执行步骤的先后顺序可以随意,在此不一一赘述。
[0076]本发明实施例中各个节点行为对应的程序代码是相互独立的,由各个程序代码相互独立的节点行为构建的工作流,在开发时,可以为每一节点行为对应的程序代码分配一开发人员,从而提高工作流开发的速度,当工作流中某一节点对象需要删除时,只需要删除该节点对象对应的程序代码即可,不需要专业人员进行更改,操作方便,包括同一节点行为的不同工作流中该节点行为对应的程序代码可以为同一个,从而降低了内存中存储的代码的冗余度。
[0077]实施例二
[0078]请参阅图2,为本发明实施例提供的第二种工作流生成方法的流程图,该方法可以包括:
[0079]步骤S201:获取所述节点对象的节点行为以及与所述节点行为对应的节点类型;
[0080]步骤S202:在所述节点类型为人工节点时,确定所述节点类型对应的业务表单,将所述业务表单关联至所述节点行为,所述业务表单、所述节点类型以及所述节点行为形成所述节点对象,在所述节点类型为自由节点时,所述业务表单以及所述节点类型形成所述节点对象;
[0081]现有技术中的业务表单与工作流对应的程序代码是绑定的,工作流对应的程序代码中包括业务表单的存储路径,当某一节点对象的业务表单需要删除当前业务表单并挂接一新业务表单时,需要专业人员进行修改,操作不方便,而本发明实施例中节点行为对应的程序代码不包括业务表单的存储路径,为了将业务表单与节点行为具有联系,可以采用数据库中的关联关系,将业务表单与节点行为关联起来,当需要删除当前业务表单并需要挂接一新业务表单时,直接取消关联关系,并将新业务表单与对应的节点行为进行关联即可,并不需要修改程序代码。
[0082]优选的,业务表单存储至文档数据库中,由于文档数据库具有模式自由存储数据以及支持动态查询两个特点,可以实现用户自定义业务表单。
[0083]步骤S203:依据预先设定的业务处理流程以及所述节点对象对应的节点行为,获得与所述节点对象对应的路由;
[0084]步骤S204:依据所述路由与构建的各个节点对象的对应关系,组合所述各个节点对象以及所述路由,以完成所述工作流的构建。
[0085]上述各个节点行为对应的程序代码位于不同的文档中。
[0086]步骤S205:在接收到完成所述工作流的构建指示后,显示构建的所述工作流的流程ID对话框;
[0087]步骤S206:接收所述流程ID对话框中输入的数据,将所述数据作为所述工作流的流程ID。
[0088]当生成多个工作流时,需要为每一工作流分配一流程ID,这样可以根据流程ID判断现在执行的是哪一工作流,当只生成一个工作流时,由于不需要与其他工作流进行区分,所以不需要为工作流分配流程ID。
[0089]流程ID可以是数字或者字符编号,也可以是包含工作流功能的描述性语言,流程ID到底是什么并不影响本发明实施例的实现,所以在此不作具体限定。
[0090]在步骤S206之后,还可以包括生成与所述工作流对应的程序代码,所述程序代码存储于同一文档中。
[0091]构建的工作流没有其对应的整体程序代码,假设在一系统中,只用这一个流程,并且该流程需要修改的可能性较小,此时,可以生成与该工作流对应的整体程序代码,并将该程序代码存储至一文档,该文档不是各个节点行为对应的程序代码所在的文档。本发明实施例中步骤S207可以有,也可以没有。
[0092]本方法还可以包括:在接收到完成所述工作流的构建指示后,判断节点类型为自由节点的节点对象是否包括业务表单,如果是,则报错;和/或,判断节点类型为人工节点的节点对象是否包括业务表单,如果否,则报错。
[0093]为了便于动态跳转,工作流中还包括一通用节点对象,该通用节点对象与所述工作流中所有节点对象相关联。这样每两个节点对象都可以通过通用节点对象进行业务表单的传递。本发明实施例,不仅仅具有实施例一的有益效果,而且巧妙的用数据库中的关联关系,代替将业务表单的存储路径写入各个节点行为对应的程序代码中,当需要删除当前业务表单并改接一新业务表单时,直接取消关联关系,并将新业务表单与对应的节点行为进行关联即可,不需要改动节点行为对应的程序代码,使操作更加简便。
[0094]在实际应用中具体实现上述实施例时,可以设计一工作流设计界面,该工作流设计界面中包括路由、所有类型的节点行为以及所有节点类型,在工作流设计界面中可以选择各种类型的业务表单,各个节点行为对应的程序代码存储于不同的文档中即相互独立。当用户需要构建某一工作流时,只需要从工作流设计界面中选取相应的节点行为、节点类型、业务表单以及路由即可,用户不需要编写程序代码,也不需要懂程序代码。
[0095]实施例三
[0096]请参阅图3,为本发明实施例提供的第一种工作流执行方法的流程图,该方法中的工作流生成过程与上述实施例描述的工作流生成方法一致,该方法可以包括:
[0097]步骤S301:获取工作流中当前需要运行的节点对象;
[0098]步骤S302:执行与所述节点对象的节点行为对应的程序代码;
[0099]执行程序代码可以为:群发邮件操作或群发短信操作等等。
[0100]具体的,步骤S302包括:判断所述节点对象的节点类型;在所述节点类型为人工节点时,显示所述节点对象对应的业务表单,并获取所述业务表单中的数据;在所述节点为自由节点时,执行所述节点对象的节点行为对应的程序代码的操作。
[0101]步骤S303:在接收到所述节点对象运行完毕的指示后,判断所述节点对象对应的节点行为是否为结束行为,如果是,则进入步骤S305,如果否,则进入步骤S304 ;[0102]步骤S304:依据所述节点对象对应的路由,获取下一目标节点对象;
[0103]步骤S305:退出所述工作流。
[0104]本发明实施例提供的方法,各个节点对象的节点行为对应的程序代码是相互独立的,当运行某一节点对象时,会自动调用该节点对象的节点行为对应的程序代码,并执行与该程序代码相应的操作。各个节点行为之间的程序代码的调用顺序由路由决定。
[0105]实施例四
[0106]请参阅图4,为本发明实施例提供的第二种工作流执行方法的流程图,该方法中的工作流生成过程与上述实施例描述的工作流生成方法一致,该方法可以包括:
[0107]步骤S401:获取所述工作流中当前需要运行的节点对象;
[0108]步骤S402:判断所述节点对象的节点类型;
[0109]步骤S403:在所述节点类型为会签节点时,接收目标会签值;
[0110]会签节点属于人工节点。
[0111]步骤S404:创建与目标会签值对应数目的任务,各个所述任务的状态为未完成状态,将完成状态任务参数设置为零;
[0112]步骤S405:在接收到处理一所述任务的请求时,执行所述节点对象的节点行为对应的程序代码;
[0113]执行所述节点对象的节点行为对应的程序代码的具体过程与实施例三中描述的过程相同。
[0114]步骤S406:在检测到某一所述任务被完成时,将所述任务的状态更改为完成状态,并将所述完成状态任务参数加I ;
[0115]步骤S407:当所述完成状态任务参数的值与所述目标会签值相等时,产生所述节点对象运行完毕的指示;
[0116]步骤S408:在接收到所述节点对象运行完毕的指示后,判断所述节点对象对应的节点行为是否为结束行为,如果是,则进入步骤S410,如果否,则进入步骤S409 ;
[0117]步骤S409:依据所述节点对象对应的路由,获取下一目标节点对象;
[0118]步骤S410:退出所述工作流。
[0119]为了本领域技术人员更加清楚的理解本实施例,下面举一具体例子进一步说明。
[0120]假设某一节点对象中的工作,需要10个人完成,那么人为可以输入10,此时系统会产生10个任务,此时10个任务的状态均为未完成状态,同时系统将完成状态任务参数设置为零。当某一用户接收到任务,并点击处理任务按键时,执行该节点对象的节点行为对应的程序代码,当该用户完成任务后,点击完成,此时完成状态任务参数加1,当完成状态任务参数为10时,产生该节点对象运行完毕的指示。上述实施例是优选的实施例,当需要10个人完成任务时,对应的目标会签值可以为100%,当需要7个人完成任务时,对应的目标会签值为70%,此时当某一任务被完成时,完成状态任务参数加10%。
[0121]本发明实施例将进一步说明了当节点对象的节点类型为会签节点时的处理方法。
[0122]实施例五
[0123]请参阅图5,为本发明实施例提供的第三种工作流执行方法的流程图,该方法中的工作流生成过程与上述实施例描述的工作流生成方法一致,该方法可以包括:
[0124]步骤S501:获取工作流中当前需要运行的节点对象;[0125]步骤S502:执行与所述节点对象的节点行为对应的程序代码;
[0126]执行程序代码可以为:群发邮件操作或群发短信操作等等。
[0127]步骤S503:在接收到所述节点对象运行完毕的指示后,判断是否接收到跳转至第一预设节点对象的指令,如果是,则进入步骤S504,如果否,则进入步骤S505 ;
[0128]步骤S504:跳转至第一预设节点对象;
[0129]如图6所示,为本发明实施例提供的一种串行工作流的示意图,从图中可知该串行工作流包括:节点对象601、节点对象602、节点对象603、节点对象604以及节点对象605,各个节点对象之间只有串行的路由,没有其他路由,如果有紧急事件需要从节点对象601跳转至节点对象605 (忽略节点对象602、节点对象603以及节点对象604),此时可以通过建立隐形的通用节点对象606,该通用节点对象和所有节点对象都相关联,所有的跳转都可以通过该节点606来完成跳转。
[0130]步骤S505:判断是否接收到返回至第二预设节点对象的指令,如果是,则进入步骤S506,如果否,则进入步骤S507 ;
[0131]步骤S506:返回至第二预设节点对象;
[0132]当节点对象的节点行为为审批节点时,该节点对象的最常见的指令为返回指令,节点行为为审批节点的节点对象有审批通过和审批不通过两种情况,当审批不通过时,一般是返回到上一个节点对象,但是在某些情况下,有可能跨节点对象返回,例如,请参阅图6,假设当前节点对象为节点对象605,当节点对象605的审批不通过时,可以直接返回到节点对象602或节点对象603。而到底返回到哪个环节是可以让用户根据业务需求进行选择,假设返回至节点对象602,那么节点对象602的目标节点对象也可以让用户选择。例如,节点对象602的目标节点对象可以为节点对象605,也可以为节点对象603。
[0133]在图6所示的工作流中,由于工作流是串行的,没有分支,因此处理起来比较简单,只要在节点对象605返回节点对象602时,建立返回线701即可,如图7所示,为在图6中建立的返回线701的示意图。
[0134]如图8所示,为本发明实施例提供的一种较为复杂的工作流流程图,从图中可以看出节点对象802与节点对象803是并行操作且相互独立的,如果原来是按照节点对象801-节点对象802-节点对象804-节点对象805的路径执行的,当执行至节点对象805时,需要返回至节点对象801,而节点对象801在进行业务数据的修改后,需要按照原来的路径节点对象801-节点对象802-节点对象804-节点对象805再执行一遍,此时需要在工作流执行过程中,记录下执行的路径信息,返回时按照记录的路径信息执行。
[0135]上面是以节点行为为审批节点的节点对象为例进行的说明,当节点行为为非审批节点的节点对象时,返回过程与上述相同。
[0136]步骤S507:判断是否接收到撤销指令,如果是,则进入步骤S508,如果否,则进入步骤S509;
[0137]步骤S508:撤回当前执行的操作;
[0138]当前节点对象在发送给目标节点对象业务表单之后,发现业务表单中某一数据填写错误,此时在目标节点对象还没有办理之前,可以撤回当前节点对象的业务表单,在重新更正数据后,在发给目标节点对象。
[0139]步骤S508具体包括:删除目标节点对象的任务,修改当前节点对象的运行状态,即将当前节点对象的已完成状态更改为未完成状态。
[0140]步骤S503、步骤S505以及步骤S507没有先后顺序,只是为了画图方便,所以才规定了顺序,本发明实施例中这三个步骤可以是“或”的关系,也可以是任意组合,也可以是“和”的关系。
[0141]步骤S509:判断所述节点对象对应的节点行为是否为结束行为,如果是,则进入步骤S511,如果否,则进入步骤S510 ;
[0142]步骤S510:依据所述节点对象对应的路由,获取下一目标节点对象;
[0143]步骤S511:退出所述工作流。
[0144]现有技术中只能按照定义的工作流的流程顺序一步步执行,当遇到紧急事件或者只需运行工作流中某几个节点对象时,如果还按照整个工作流的流程顺序一步步执行,即费时又耽误事情,本发明实施例,可以随意跳转、返回以及撤销,可以根据需要进行相应的跳转、返回以及撤销。
[0145]上述本发明公开的实施例中详细描述了方法,对于本发明的方法可采用多种形式的装置实现,因此本发明还公开了一种系统,下面给出具体的实施例进行详细说明。
[0146]实施例六
[0147]请参阅图9,为本发明实施例提供的一种工作流执行系统的结构示意图,该系统中的工作流的生成方法与实施例一或实施例二描述的生成方法一致,该系统可以包括:工作流命令存储器901、工作流命令执行器902以及工作流引擎903,其中:
[0148]工作流命令存储器901,用于存储构建的各个工作流,且每一工作流具有一流程ID ;
[0149]工作流命令执行器902,用于在接收到操作指令时,根据所述操作指令对应的流程ID,从所述工作流命令存储器中得到所述操作指令对应的工作流,所述操作指令包括跳转指令、返回指令、撤销指令以及顺序执行指令;
[0150]工作流引擎903,用于获取所述工作流命令执行器得到的工作流中当前需要运行的节点对象,调用所述节点对象对应的节点行为对应的程序代码,以显示所述节点对象对应的业务表单,并执行与所述程序代码相应的操作;在接收到所述节点对象运行完毕的指示后,判断所述节点对象对应的节点行为是否为结束行为,如果是,则退出所述流程,如果否,则产生新的操作指令,并将所述操作指令发送至所述工作流命令执行器。
[0151]为了监控每一节点对象的运行效率,该系统还可以包括:工作流监控服务器,用于监控各个节点对象的运行时间。
[0152]本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0153]结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或【技术领域】内所公知的任意其它形式的存储介质中。
[0154]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【权利要求】
1.一种工作流生成方法,其特征在于,包括: 对于待构建的工作流中每一节点对象执行如下操作: 获取所述节点对象的节点行为以及与所述节点行为对应的节点类型,所述节点类型包括:人工节点以及自由节点; 在所述节点类型为人工节点时,获取与所述节点类型对应的业务表单,所述业务表单、所述节点类型以及所述节点行为形成所述节点对象,在所述节点类型为自由节点时,所述业务表单以及所述节点类型形成所述节点对象; 依据预先设定的业务处理流程以及所述节点对象对应的节点行为,获得与所述节点对象对应的路由; 依据所述路由与构建的各个节点对象的对应关系,组合所述各个节点对象以及所述路由,以完成所述工作流的构建,所述各个节点行为对应的程序代码位于不同的文档中。
2.根据权利要求1所述方法,其特征在于,所述获取与所述节点类型对应的业务表单具体包括: 确定所述节点类型对应的业务表单; 将所述业务表单关联至所述节点行为。
3.根据权利要求1所述方法,其特征在于,还包括: 在接收到完成所述工作流的构建指示后,显示构建的所述工作流的流程ID对话框; 接收所述流程ID对话框中输入的数据,将所述数据作为所述工作流的流程ID。
4.根据权利要求1所述方法,其特征在于,所述工作流中还包括一通用节点对象,所述通用节点对象与所述工作流中所有节点对象相关联。
5.一种工作流执行方法,其特征在于,所述工作流生成方法如权利要求1至4任一项所述生成方法,包括: 获取所述工作流中当前需要运行的节点对象; 执行与所述节点对象的节点行为对应的程序代码; 在接收到所述节点对象运行完毕的指示后,判断所述节点对象对应的节点行为是否为结束行为,如果是,则退出所述工作流,如果否,则依据所述节点对象对应的路由,获取下一目标节点对象。
6.根据权利要求5所述方法,其特征在于,所述执行与所述节点对象的节点行为对应的程序代码具体包括: 判断所述节点对象的节点类型; 在所述节点类型为人工节点时,显示所述节点对象对应的业务表单,并获取所述业务表单中的数据; 在所述节点为自由节点时,执行所述节点对象的节点行为对应的程序代码的操作。
7.根据权利要求6所述方法,其特征在于,所述节点类型还包括:会签节点,所述会签节点属于人为节点,在所述获取所述节点对象之后,执行与所述节点对象的节点行为对应的程序代码前还包括: 判断所述节点对象的节点类型; 在所述节点类型为会签节点时,接收目标会签值; 创建与所述目标会签值对应数目的任务,各个所述任务的状态为未完成状态,将完成状态任务参数设置为零; 在接收到处理一所述任务的请求时,执行与所述节点对象的节点行为对应的程序代码的操作; 相应的,在接收到所述节点对象运行完毕的指示之前还包括: 在检测到某一所述任务被完成时,将所述任务的状态更改为完成状态,并将所述完成状态任务参数加I ; 当所述完成状态任务参数的值与所述目标会签值相等时,产生所述节点对象运行完毕的指示。
8.根据权利要求5或6所述方法,其特征在于,在接收到所述节点对象运行完毕的指示后,判断所述节点对象对应的节点行为是否为结束行为之前还包括: 判断是否接收到跳转至第一预设节点对象的指令,如果是,则跳转至所述第一预设节点对象; 和/或, 判断是否接收到返回至第二预设节点对象的指令,如果是,则返回至所述第二预设节点对象; 和/或, 判断是否接收到撤销指令, 如果是,则撤回当前执行的操作; 在上述判断结果均为否的情况下,执行判断所述节点对象对应的节点行为是否为结束行为的操作。
9.一种工作流执行系统,其特征在于,包括: 工作流命令存储器,用于存储构建的各个工作流,且每一工作流具有一流程ID ; 工作流命令执行器,用于在接收到操作指令时,根据所述操作指令对应的流程ID,从所述工作流命令存储器中得到所述操作指令对应的工作流,所述操作指令包括跳转指令、返回指令、撤销指令以及顺序执行指令; 工作流引擎,用于获取所述工作流命令执行器得到的工作流中当前需要运行的节点对象,调用所述节点对象对应的节点行为对应的程序代码,以显示所述节点对象对应的业务表单,并执行与所述程序代码相应的操作;在接收到所述节点对象运行完毕的指示后,判断所述节点对象对应的节点行为是否为结束行为,如果是,则退出所述流程,如果否,则产生新的操作指令,并将所述操作指令发送至所述工作流命令执行器。
10.根据权利要求9所述系统,其特征在于,还包括: 工作流监控服务器,用于监控各个节点对象的运行时间。
【文档编号】G06Q10/06GK103577906SQ201210254787
【公开日】2014年2月12日 申请日期:2012年7月20日 优先权日:2012年7月20日
【发明者】于海青 申请人:杭州勒卡斯广告策划有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1