专利名称:工作流程系统、工作流程处理方法和工作流程处理程序的制作方法
技术领域:
本发明涉及一种工作流程系统和工作流程处理方法及程序。
背景技术:
最近,已知一种工作流程系统,当多个负责人通过通信网络进行工作时,通过该系统管理在他们之间交换的文档和信息的流程并使其自动化,以实现顺利的工作进度。在这方面,参见下面的文档‘Work flow system,developing so(1)’by Haruo Hayami,InformationProcessing Society of Japan,Vol.39,No.11,pages 1160-1165(1998);‘Work flow system,developing so(2)’by Haruo Hayami,ToshiakiSakaguchi,Ryoichi Shibuya,Information Processing Society of Japan,Vol.39,No.12,pages 1258-1263(1998);和‘Work flow system,developing so(1)’by Haruo Hayami,Ryoichi Shibuya,Nobuo Suzuki,Junichi Ikoma,Yosuke Terashita,Naoki Ueno,Satoru Kaneko,Kiyoshi Hayashi,Information Processing Society of Japan,Vol.39,No.11,pages1160-1165(1999)。
发明内容
上面提到的工作流程系统可能有这样的问题,即,只能执行系统管理员预先定义的固定工作流程,而不能实现灵活的响应,例如以与定义的工作流程不同的方式将实际工作放在前面。
为了解决该问题,本发明人提出了通过添加、暂停或提前进行(anticipate)执行中的处理中的活动,在执行时灵活改变处理的方法(见日本专利申请No.2005-9265)。
然而,在该方法中,修改处理的范围限于添加、暂停和提前进行活动,而不允许删除活动。结果,不能令人满意地满足用户的需要。
考虑到这种情况设计了本发明,本发明的目的是提供一种可以自由修改执行中的处理的工作流程系统、工作流程处理方法和工作流程处理程序。
为了实现该目的,根据本发明的第一方面,执行处理(包括作为特定作业的活动和定义活动顺序的转移)的工作流程系统包括用于停止执行中的处理的部分;用于编辑所停止的处理的部分;用于检查所编辑的处理的连贯性(consistency)的部分;用于确定处理中的重新开始位置的部分;和用于从重新开始位置重新开始处理的部分。
根据本发明的第二方面,所述用于检查处理的连贯性的部分可以根据由活动读取或更新的处理变量的特定值的存在与否、以及该处理变量的任务执行者的操作权限的存在与否,检查连贯性。
根据本发明的第三方面,所述用于检查处理的连贯性的部分可以确定对于转移的情况,是否覆盖了当在并行转移的触发条件之间进行OR操作时所有可能的情况。
根据本发明的第四方面,所述用于检查处理的连贯性的部分可以在找出任何不可能被执行的活动时发出警报,可以不允许编辑完成,并且要求重新编辑。
根据本发明的第五方面,当终结活动无法到达时,所述用于检查处理的连贯性的部分可以确定出现错误,可以不允许编辑完成,并且要求重新编辑。
根据本发明的第六方面,所述用于确定处理中的重新开始位置的部分可以从处理中包含的第一个活动开始跟踪转移和活动,读取处理变量的改变历史,并且当活动或转移没有经历满足终止条件时确定所述活动或所述转移为重新开始位置。
根据本发明的第七方面,所述用于确定处理中的重新开始位置的部分可以在确定经历过满足终止条件的活动是最后一个活动时,确定处理结束。
根据本发明的第八方面,所述用于停止处理的部分可以通过将处理设置在暂停状态来停止处理。
根据本发明的第九方面,所述用于停止处理的部分可以通过将处理设置在终止状态来停止处理。
根据本发明的第十方面,所述用于编辑处理的部分所执行的编辑内容可以包括改变处理的所有组成部分,包括添加、删除、改变活动的顺序,添加和删除处理变量,改变处理终止条件以及改变处理变量值。
根据本发明的第十一方面,所述用于编辑处理的部分可以在添加活动或转移时递增由活动或变换读取或更新的处理变量的计数值,在删除活动或转移时递减由活动或变换读取或更新的处理变量的计数值,并且删除计数值为0的所述处理变量。
根据本发明的第十二方面,工作流程系统还可以包括用于检查编辑者权限的部分,其根据访问控制列表检查权限,对于处理中包含的每个对象,该列表包括被允许编辑的用户或组、以及指示操作权限的访问控制。
根据本发明的第十三方面,工作流程系统还可以包括用于转换从编辑获得的处理实例流程并将其物化成处理定义的部分,并且登记该处理定义以便再用。
根据本发明的第十四方面,一种执行处理(包括作为特定作业的活动和定义活动顺序的转移)的工作流程处理方法包括停止执行中的处理;编辑所停止的处理;检查所编辑的处理的连贯性;确定处理中的重新开始位置的部分;和从重新开始位置重新开始处理。
根据本发明的第十五方面,一种使计算机执行处理(包括作为特定作业的活动和定义活动顺序的转移)的工作流程处理程序包括使程序执行下列步骤的指令停止执行中的处理;编辑所停止的处理;检查所编辑的处理的连贯性;确定处理中的重新开始位置;和从重新开始位置重新开始处理。
在根据本发明的工作流程系统、工作流程处理方法和工作流程处理程序中,在停止处理后编辑处理,检查处理的连贯性,确定处理的重新开始位置,并且从该位置重新开始处理。因此,可以避免用户不适当地修改处理的情况,并且在确保处理的可执行性的条件下可以自由修改执行中的处理。
当结合附图阅读下面的详细描述时,本发明的其他目的和特征将变得更加清楚,在附图中图1示出处理组成部分;图2示出处理状态转移;图3示出活动状态转移;图4示出转移状态转移;图5示出工作流程配置的示例;图6示出客户机和服务器硬件配置的示例;
图7示出工作流程系统软件配置的示例;图8示出工作流程定义表的示例;图9示出活动定义表的示例;图10示出转移定义表的示例;图11示出处理变量定义表的示例;图12示出活动变量定义表的示例;图13示出处理变量定义读取表的示例;图14示出应用程序定义表的示例;图15示出处理实例表的示例;图16示出活动表的示例;图17示出转移表的示例;图18示出处理变量表的示例;图19示出活动变量表的示例;图20示出处理变量改变历史表的示例;图21示出处理变量读取表的示例;图22示出处理定义XML描述、相应表等之间的对应关系;图23示出对处理对象的访问控制的示例;图24示出访问控制表的示例;图25示出显示处理执行开始处理的示例的次序;图26示出处理改变的概念;图27示出处理改变处理进程(processing)的示例的次序;图28示出当添加活动时的图形界面;图29示出当添加活动等时在系统侧的流程图;图30示出当删除活动等时在系统侧的流程图;图31示出处理连贯性检查处理进程的示例的流程图;图32示出处理连贯性检查处理进程的示例的详细流程图;图33示出连贯性的缺省示例;图34示出确定处理重新开始位置的示例的流程图;图35示出当复制和编辑处理实例时的处理实例表的示例;图36示出当复制和编辑处理实例时的活动表的示例;图37示出当复制和编辑处理实例时的转移表的示例;
图38示出当复制和编辑处理实例时的处理变量表的示例;图39示出当复制和编辑处理实例时的活动变量表的示例;图40示出当复制和编辑处理实例时的处理变量读取表的示例;以及图41示出当登记处理定义以便再用时处理定义工具的图形用户界面的示例。
具体实施例方式
下面参照附图描述本发明的优选实施例<处理概要>
图1示出处理的组成部分。处理包括活动(activity)和转移(transition)。关于工作流程系统的术语,参见“Workflow Management Coalition TheWorkflow Reference Model”(http://www.wfmc.org/standards/docs/tc003v11.pdf);和“Workflow Management Coalition Workflow Standard/Process DefinitionInterface-XML Process Definition Language”(http://www.wfmc.org/standards/docs/TC-1025_xpdl_2_2005-10-03.pdf),它们示出了具体定义。
处理是执行工作(可称为作业或任务)的处理流程。对于处理,定义处理变量来描述处理的状态。处理变量用作活动开始条件、终止条件、转移触发条件或处理终止条件。活动开始条件和终止条件是用于设置和终止每个活动的条件。转移触发条件主要用于确定分支到多个活动之一的分支连接。处理终止条件用于确定处理是否完全结束。要注意的是,保存处理变量的值,除非它在处理实例(instance)流程改变之前或之后明显改变(在稍后提到)。
活动是处理中包含的特定作业。活动可以具有诸如下面的状态尚未执行、完成、等待开始处理等。状态之间的改变可以指示处理的进度状态。活动具有开始条件和终止条件,它们由使用处理变量的条件式来描述。活动的执行结果存储在处理变量中,并且存储变量的改变历史存储为记录(log)。
转移定义活动之间的处理顺序。转移具有状态,由此确定与其相连的活动的状态转移条件。从一个活动改变到另一活动的条件称为转移触发条件。转移触发条件主要在使用处理变量的条件式中描述。
流程示出活动和转移所表示的流程图。
处理定义是处理的模板,在执行前定义处理的流程。
处理实例是处理定义的物化形式,并且包括作业的内容。
处理实例流程是执行中的处理的流程。处理实例流程是处理实例的流程定义,并且与原本的处理定义相同。然而,在本发明中,处理实例流程和处理定义被当作可分别操作的不同的客体。即,当修改处理实例流程时,所述修改不通过处理定义反映。此外,当修改处理定义时,转换成实例形式的处理(处理实例)也不由其反映。
图2示出处理状态转移,并且示出各个状态“尚未执行(未激活)”、“执行中(激活)”、“暂停”和“完成”。这里,当“激活”的处理被停止时,出现“暂停”状态,并且作为处理被重新开始的结果,再次出现“激活”状态。处理的“暂停”与活动的“暂停”是同步的。
图3示出活动状态转移,并且示出各个状态“尚未执行(未激活)”、“等待执行(等待)”、“执行中(激活)”、“完成”和“暂停”。当前面连接的转移触发并且满足活动开始条件时,“未激活”的活动进入“等待”状态。当相应工作流程应用程序给出开始指令(稍后描述)时,“等待”的活动进入“激活”状态。当接收到来自工作流程应用程序的活动完成指令时,“激活”的活动进入“完成”状态。处于“未激活”、“等待”、“激活”或“完成”状态的活动与处理的“暂停”同步地进入“暂停”状态,并且当处理返回到“激活”状态时返回到原来的状态。
图4示出转移状态转移。如图所示,转移具有“开(on)”和“关(off)”的状态。当在开始点的活动的状态变为“完成”状态并且还满足转移触发条件时,处于“关”状态的转移进入“开”状态。当在终结位置的活动从“等待”状态变为“激活”状态时,转移再次进入“关”状态。
<系统配置>
图5示出工作流程系统配置的示例。如图所示,系统包括客户机1A、1B、1C,主要由使用工作流程系统的任务执行者来使用;和服务器2A、2B、…,其提供工作流程系统的功能,所有这些都通过通信网络3连接。
图6示出图5的系统的客户机或服务器的硬件配置的示例。输入设备101、显示设备102、驱动设备103、记录介质104、ROM 105、RAM 106、CPU 107、接口设备108和HDD(硬盘驱动器)通过总线100互连。
输入设备101包括键盘、鼠标等,用来供用户向客户机或服务器输入各种操作信号。显示设备102用于向用户显示各种信息。接口设备108是将客户机或服务器连接到通信网络等的接口。
通过例如记录介质104(如CD-ROM)向客户机或服务器提供对应于稍后描述的软件的程序,或者通过通信网络下载程序。将记录介质104放在驱动设备103中,并且通过驱动设备103将程序安装在HDD 109中。
ROM 104存储数据。RAM 106在客户机或服务器启动时存储从HDD 109读取的程序等。CPU 107根据从HDD 109读取的存储在RAM 106中的程序执行处理。
图7示出工作流程系统的软件配置的示例。在图7中,工作流程系统包括在客户机中提供的处理定义工具11、处理执行编辑工具12、工作流程应用程序13;和在服务器中提供的处理定义管理部分21、处理定义数据库22、工作流程引擎23、处理实例数据库24、处理对象ACL(访问控制列表)数据库25。
处理定义工具11进行处理定义,其通过处理定义管理部分21将处理定义登记到处理定义数据库22中,或者从那儿获得处理定义。处理定义工具11还从处理实例数据库24中提取处理实例流程,编辑例如由此提取的处理实例流程,并且通过处理定义管理部分21将其作为处理定义登记在处理定义数据库22中。
处理定义管理部分21管理存储在处理定义数据库22中的处理定义。处理定义管理部分21响应于来自处理定义工具11的请求,从处理定义数据库22中获得处理定义,或者将处理定义登记在处理定义数据库22中。
处理定义数据库22存储处理定义,并且包括稍后描述的各种表。
处理执行编辑工具12是用于编辑处理实例流程的工具,即,它通过网络流程引擎23从处理实例数据库24获得处理实例流程,通过工作流程引擎23将经编辑的处理实例流程存储在处理实例流程数据库24中,由此更新处理实例流程。要注意,处理实例流程的编辑可以包括改变处理的所有组成部分中的任意一个,即,添加、删除或改变活动的顺序、添加或删除处理变量、改变处理终止条件以及改变处理变量的值。
工作流程应用程序13实行活动,即,通过工作流程引擎23从处理实例数据库24获得处理信息或处理状态,或者更新处理变量。此外,工作流程应用程序13获得通过工作流程引擎23从处理定义数据库22获得处理定义,基于处理定义产生处理实例,或者将转换成实例的处理存储在处理实例数据库24中。
工作流程引擎23响应于来自工作流程应用程序13的请求,从处理定义数据库22获得处理定义,基于处理定义产生处理实例,并且将其存储在处理实例数据库24中,或者,响应于来自工作流程应用程序13的请求,从处理实例数据库24获得处理实例的处理信息,或者更新存储在处理实例数据库24中的处理实例的处理变量。
工作流程引擎23响应于来自处理执行编辑工具12和处理定义工具11的请求,从处理实例数据库24中提取处理实例流程,或者响应于来自处理执行编辑工具12的请求,更新存储在处理实例数据库24中的处理实例流程。此外,工作流程引擎23响应于来自处理执行编辑工具12的处理实例更新请求等,读取在处理对象ACL数据库25中存储和管理的处理对象的访问权限等,并且确定请求的用户或组是否具有合法的访问权限。
处理实例数据库24存储处理实例,并且具有稍后描述的各种表。
处理对象ACL数据库25存储处理对象的访问权限等,并且管理它们。
要注意,如上所述,处理定义工具11、处理执行编辑工具12、工作流程应用程序13等装在客户机中,而处理定义管理部分21、处理定义数据库22、工作流程引擎23、处理实例数据库24、处理对象ACL数据库25等装在服务器中。此外,处理定义工具11、处理执行编辑工具12、工作流程应用程序13、处理定义管理部分21、处理定义数据库22、工作流程引擎23、处理实例数据库24、处理对象ACL数据库25等可以作为Web服务安装。当采用该配置时,根据基于XML(扩展标记语言)或HTTP(超文本传输协议)的SOAP(简单对象访问协议)等在客户机和服务器之间进行通信。
图8示出处理定义数据库22中提供的处理定义表221的示例,包括标识处理定义的“处理定义ID”字段;指示处理定义名称的“名称”字段;指示处理的终止条件的“终止条件”字段;和指示处理定义是否可用的“状态”字段。
图9示出处理定义数据库22中提供的活动定义表222的示例,具有标识活动定义的“活动定义ID”字段;指示适应该活动的处理定义的“处理定义ID”字段;指示对应于活动的工作流程应用程序的“应用程序ID”字段;指示活动名称的“名称”字段;指示活动的开始条件的“开始条件”字段;和指示活动的终止条件的“终止条件”字段。“开始条件”和“终止条件”中的“%”表示处理变量定义,而“#”表示活动变量定义。
图10示出处理定义数据库22中提供的转移定义表223的示例,具有标识转移定义的“转移定义ID”字段;指示适应该转移的处理定义的“处理定义ID”字段;指示在转移的开始点的活动定义的“源(from)活动定义”字段;指示在转移的结束点的活动定义的“目的(to)活动定义”字段;和指示转移触发条件的“触发条件”字段。
图11示出处理定义数据库22中提供的处理变量定义表224的示例,具有标识处理变量的“处理变量定义”字段;指示相应处理定义的“处理定义ID”字段;和指示处理变量类型的“变量类型”字段。要注意的是,处理变量定义表224保存处理变量的模板,从而使得更容易地再用频繁使用的处理变量。
图12示出处理定义数据库22中提供的活动变量定义表225的示例,具有标识活动变量定义的“活动变量定义ID”字段;指示相应处理定义的“处理定义ID”字段;指示相应活动定义的“活动定义ID”字段;指示活动变量名称的“活动变量名称”字段;指示相应工作流程应用程序参数的“应用程序参数序号”字段;和指示活动变量类型的“变量类型”字段。要注意的是,“应用程序参数序号(number)”对应于稍后描述的应用程序定义表227的参数列表中描述的参数序号,并且当它没有对应时具有NULL(零)值。
图13示出处理定义数据库22中提供的处理变量定义读取表226的示例,具有指示活动定义或转移定义的“活动定义ID/转移定义ID”字段;指示活动和转移之间的区别的“活动/转移”字段(A活动;T转移);指示要读取或更新的处理变量定义的“处理变量定义ID”字段;指示处理变量值的可能有效范围的“有效值范围”字段;指示相应工作流程应用程序参数的“应用程序参数序号”字段;和指示读取或更新方式(R读取;w更新)的“读取方式”字段。“应用程序参数序号”对应于稍后描述的应用程序定义表227的参数列表中描述的参数序号,并且当不存在对应时具有NULL值。
图14示出处理定义数据库22中提供的应用程序定义表227的示例,具有标识工作流程应用程序的“应用程序ID”字段;指示工作流程应用程序名称的“名称”字段;指示工作流程应用程序的引入(entry)的“应用程序描述”字段;和指示工作流程应用程序使用的参数列表的“参数列表”字段。这里,假设“应用程序描述”为Web应用程序,并且示出URL(统一资源分配符)的示例。
图15示出处理定义数据库22中提供的处理实例表241的示例,具有标识处理(处理实例)的“处理ID”字段;指示处理名称的“名称”字段;指示处理的终止条件的“终止条件”字段;和指示处理状态的“状态”字段。
图16示出处理实例数据库24中提供的活动表242的示例,具有标识活动的“活动ID”字段;指示适应该活动的处理的“处理ID”字段;指示活动名称的“名称”字段;指示相应活动定义的“活动定义ID”字段;指示相应工作流程应用程序的“应用程序ID”字段;指示活动开始条件的“开始条件”;指示活动终止条件的“终止条件”字段;和指示活动状态的“状态”字段。“开始条件”和“终止条件”中的“%”表示处理变量定义,而“#”表示活动变量定义。
图17示出处理实例数据库24中提供的转移表243的示例,具有标识转移的“转移ID”字段;指示适应该转移的处理的“处理ID”字段;指示在转移的开始侧上的活动的“源活动ID”字段;指示在转移的结束侧上的活动的“目的活动ID”字段;指示转移触发条件的“触发条件”字段;和指示转移状态的“状态”字段。
图18示出处理实例数据库24中提供的处理变量表244的示例,具有标识处理变量的“处理变量ID”字段;指示相应处理的“处理ID”字段;指示相应处理变量定义的“处理变量定义ID”字段;指示处理变量名称的“处理变量名称”字段;指示处理变量类型的“变量类型”字段;指示处理变量值的“值”字段;“读取计数”字段,指示这样的值,当处理变量对于处理是唯一的时,初始值为“1”,向其添加读取处理变量的活动和转移的数量;和“读取更新计数”字段,指示更新处理变量的活动和转移的数量。
图19示出处理实例数据库24中提供的活动变量表245的示例,具有标识活动变量的“活动变量ID”字段;指示相应处理的“处理ID”字段;指示相应活动的“活动ID”字段;指示活动变量名称的“活动变量名称”字段;指示相应工作流程应用程序参数的“应用程序参数序号”字段;指示活动变量类型的“变量类型”字段;和指示活动变量值的“值”字段。“应用程序参数序号”对应于应用程序定义表227的参数列表中描述的参数序号,并且当它没有对应时具有NULL值。
图20示出处理实例数据库24中提供的处理变量更新表246的示例,具有标识历史数据的“序列号”字段;指示相应处理的“处理ID”字段;指示相应处理变量的“处理变量ID”字段;指示相应事件的日期/时间的“日期/时间”字段;指示处理变量的更新方式的“更新方式”字段;和指示更新后的值的“值”字段。
图21示出处理实例数据库24中提供的处理变量读取表247的示例,具有指示活动定义或转移的“活动ID/转移ID”字段;指示活动和转移之间区别的“活动/转移”字段(A活动;T转移);指示要读取或更新的处理变量的“处理变量ID”字段;指示相应工作流程应用程序参数的“应用程序参数序号”字段;和指示读取或更新方式(R读取;W更新)的“读取方式”字段。
图22示出处理定义XML描述和各个表之间的对应关系。处理定义完全对应于处理定义表221和处理实例表241;在“<WorkflowProcesses>”直接下面的“<ExtendedAttributes>”标记部分对应于处理变量定义表224;“<Activity>”标记部分对应于活动定义表222;直接下面“<ExtendedAttributes>”标记部分对应于活动变量定义表225和活动变量表245;“<ReferedAttributes>”标记部分对应于处理变量定义读取表226和处理变量读取表247;“<Application>”标记部分对应于应用程序定义表227;以及“<Transitions>”标记部分对应于转移定义表223和转移表243。
图23示出对处理对象的访问控制的示例,并且规定下面操作的操作权限改变活动;执行、删除、管理活动;读取、更新、管理处理变量;添加活动定义;和添加处理变量定义。这些操作权限作为处理定义的一部分保存在处理定义数据库22中。
图24示出处理对象ACL数据库25中提供的访问控制列表表251的示例,具有标识特定项的“SID(安全ID)”字段;指示处理对象的“对象ID”字段;指示要给予操作权限的用户或组的“用户/组ID”字段;和指示操作权限的“访问控制”字段。“访问控制”列中的符号是图23中所示的权限符号。
<操作>
图25示出当处理开始时的处理示例的次序图。
首先,当用户向工作流程应用程序13请求获得处理定义列表时(步骤S1),工作流程应用程序13向处理定义管理部分21请求处理定义列表(步骤S2),处理定义管理部分21从处理定义数据库22获得处理定义列表(步骤S3)。将由此获得的处理定义列表作为响应送到工作流程应用程序13,并且以使得用户可以从中选择的这样一种条件,通过工作流程应用程序来显示。
接着,当用户选择期望的处理定义并请求生成处理实例时(步骤S4),工作流程应用程序13向处理定义管理部分21请求处理定义(步骤S5),后者然后从处理定义数据库22中获得处理定义(步骤S6)。将由此获得的处理定义作为响应送到工作流程应用程序13,然后工作流程应用程序13设置处理定义的参数(步骤S7),然后请求工作流程引擎13生成处理实例(步骤S8)。工作流程引擎13将处理实例登记在处理实例数据库24中,从而生成处理实例(步骤S9)。然后将由此生成处理实例的客体作为响应送到工作流程应用程序13。
然后工作流程应用程序13请求工作流程引擎13开始执行处理(步骤S10),这样,处理的执行开始。此后,根据处理定义所定义的工作流程,进行任务处理。
图26示出处理改变的概念,总体示出当要以不同于原本定义的方式实行实际工作时所进行的处理。
在图26中,在处理被停止后,工作流程引擎23从处理实例数据库24获得处理实例流程(步骤S11),并且工作流程引擎23将获得的处理实例流程转换成处理实例数据库24的内部表达式形式的处理定义(步骤S12)。然后,处理执行编辑工具12从工作流程引擎23获得处理定义(步骤S13)。
处理执行编辑工具12对由此获得的处理定义进行编辑(步骤S14),并且请求工作流程引擎23更新处理定义(步骤S15)。
工作流程引擎23将从处理执行编辑工具12获得的处理定义转换成处理实例数据库24的内部表达式的形式(步骤S16),并由此进行处理实例数据库24上的处理实例流程的更新(步骤S17)。然后,重新开始曾经停止的处理,并且使通过编辑而改变的工作流程生效。
图27示出当改变处理时的处理示例的次序图。在图27中,当用户在处理执行期间请求工作流程应用程序13开始对处理实例流程编辑(步骤S21)时,工作流程应用程序13请求工作流程引擎23停止处理(步骤S22),工作流程引擎23通过将处理实例数据库24中的处理的状态改变成“暂停”来停止处理(步骤S23)。将处理停止的客体作为响应发送给工作流程应用程序13。
工作流程应用程序13启动处理执行编辑工具12(步骤S24),后者通过工作流程引擎23从处理实例数据库24获得处理实例流程(步骤S25、S26),并且显示处理实例流程(步骤S27)。
用户通过处理执行编辑工具12对处理实例流程进行编辑操作(步骤S28)。图28示出当添加活动(作为编辑的一个示例)时处理执行编辑工具12的图形用户界面(GUI)的一个示例。这里,通过下面的操作过程进行活动的添加(1)在“添加”菜单12a中选择“活动”。
(2)从应用程序列表12b中选择“文档创建”。
(3)显示活动设置窗口12c。
(4)在活动设置窗口12c中设置参数(名称“专利文档创建”等),并按下“OK”按钮。
(5)在“流程视图”窗口12e中,显示活动“专利文档创建”。
(6)在“添加”菜单12a中选择“转移”,并且添加转移12g。
(7)选择“完成编辑”12h。
图29示出系统侧用于添加活动等的处理示例的流程图。
当响应于添加活动的请求开始处理时(步骤S41),接受工作流程应用程序的选择(步骤S42),并且产生活动实例(步骤S43)。在这种情况下,为了显示工作流程应用程序可从中进行选择的列表,读取应用程序定义读取表227(图14),并且进行活动表242(图16)的更新以便产生活动实例。
然后,当需要时产生新处理变量或活动变量(步骤S44)。在这种情况下,读取处理变量定义表224(图11)以便获得处理变量的模板,并且为此产生进行处理变量表244(图18)的更新。对于活动变量,进行活动变量表245(图19)的更新。要注意的是,可以使用处理定义工具11(图7)将新处理变量定义加到处理变量定义表224中。
然后,对于已有或新产生的处理变量或活动变量,进行到工作流程应用程序的所选参数的分配(步骤S45)。在这种情况下,进行处理变量表244、活动变量表245和处理变量读取表247(图21)的更新。
接着,更新处理变量读取信息(步骤S46)。在这种情况下,更新处理变量读取表247。
接着,进行转移的添加和设置(步骤S47)。在这种情况下,相应更新转移表243(图17)。
接着,递增(加1)由添加的活动或转移所读取或更新的相应一个处理变量的读取计数或读取更新计数(步骤S48)。在这种情况下,相应更新处理变量表244。
图30示出在系统侧上删除活动等的处理示例的流程图。
当处理开始时(步骤S51),接受要删除的活动的选择(步骤S52),并且删除活动实例(步骤S43)。在这种情况下,相应更新活动表242和活动变量表245。
接着,递减(减1)由删除的活动所读取或更新的相应一个处理变量的读取计数或读取更新计数(步骤S54)。在这种情况下,相应更新处理变量表244。
接着,删除在删除的活动前面或后面连接的转移(步骤S55)。在这种情况下,相应更新转移表243。
接着,递减由删除的转移所读取的处理变量的读取计数(步骤S56)。在这种情况下,相应更新处理变量表244。
接着,添加新的转移(步骤S57)。在这种情况下,相应更新转移表243。
接着,递增由添加的转移所读取的处理变量的读取计数(步骤S58)。在这种情况下,相应更新处理变量表244。
接着,删除读取计数和读取更新计数都为“0”的处理变量(步骤S59)。在这种情况下,相应更新处理变量表244。这样,通过删除活动或转移都没有读取的处理变量,可以创建这样一种状态,即,其中不包含对于再用是不必要的处理变量。要注意的是,对于对处理唯一的处理变量,将读取计数的初始值预先设置为“1”,这样,即使当删除所有读取活动或转移时也不会删除它。
返回图27,在完成处理实例流程的编辑后(步骤S28),用户请求处理执行编辑工具12更新处理实例流程(步骤S29),并且处理执行编辑工具12请求工作流程引擎23更新处理实例流程(步骤S30)。
接收到该请求的工作流程引擎23检查处理对象ACL数据库,以检查该用户(编辑者)是否具有改变处理实例流程的权限(步骤S31)。当用户不具有改变权限时,通知用户他没有改变权限。这样,防止没有权限的用户改变处理。
另一方面,当改变权限的检查得到成功时,工作流程引擎23进行处理实例流程的连贯性(可执行性)的检查(步骤S32)。图31示出处理实例流程连贯性检查的处理示例的流程图。
在图31中,当处理开始时(步骤S61),使用处理变量表247(图21)从最上面的活动开始依次检查活动和转移所读取的处理变量时(步骤S62)。这时要检查的特定项包括例如(1)处理变量的存在与否;(2)处理变量的值(更新了处理变量的最后活动的值是否落入活动或转移的有效范围内);(3)被分配到该活动的任务执行者是否具有对该处理变量的操作权限;知(4)在转移的情况下,当在对并行转移触发条件进行OR操作时是否覆盖了处理变量的所有可能情况。
然后,当找到任何不可能被执行的活动时,发出警报并且请求重新编辑(步骤S63)。
此外,当终结活动无法到达时,进行错误确定,并且要求重新编辑(步骤S64)。
因此,可以避免不必要地改变处理,从而可以确保可执行性。
图32示出连贯性检查的详细流程图,更详细地示出图31的处理变量检查处理(步骤S62)。
当在图32的步骤S101开始处理时,获得处理实例流程(步骤S 102),获得第一个活动(步骤S103),并且选择活动所读取的一个处理变量(步骤S104)。
然后,确定处理变量表244中是否存在该处理变量,并且还在访问控制列表251中检查该处理变量的任务执行者的权限(步骤S105)。
当该处理变量不存在或权限有错误时(步骤S106为否),则确定出现连贯性错误(步骤S107),并且结束处理(步骤S108)。
另一方面,当该处理变量存在并且权限没有错误时(步骤106为是),从存储器中获得处理变量的可能值(步骤S109)。当可以获得该值时(步骤S110为是),获得该处理变量的处理变量定义ID,由活动ID和处理定义ID获得该处理变量的有效值(步骤S111)。当可以获得该值时(步骤S112为是),在处理变量有效值和处理变量可能值之间进行AND操作,并且将操作结果作为可能值存储在存储器中(步骤S113)。当无法获得该值时(步骤S110或S112为否),则不执行特定处理。
接着,在步骤S114中确定存储器中存储的处理变量的可能值是否满足活动开始条件。当条件不满足时(步骤S114为NG),则确定出现连贯性错误(步骤S107),并且结束处理(步骤S108)。
当条件满足时(步骤S114为OK),则获得下一处理变量(步骤S115)。当可以获得该值时(步骤S116为是),则返回到选择活动所读取的处理变量(步骤S104)。
当无法获得该值时(步骤S116为否),则通过活动的终止条件更新存储在存储器中的处理变量的可能值(步骤S117),并且获得下一转移(步骤S118)。
然后,在步骤S119中确定存储在存储器中的处理变量的可能值是否满足转移的触发条件。当条件不满足时(步骤S119为NG),则确定出现连贯性错误(步骤S120),并且结束处理(步骤S121)。
当条件满足时(步骤S119为OK),则通过转移的触发条件更新存储在存储器中的处理变量的可能值(步骤S122),并且获得下一活动(步骤S123)。
当可以获得活动时(步骤S124为是),返回到获得活动的第一步骤(步骤S103)。当无法获得活动时(步骤S124为否),确定没有出现连贯性错误(步骤S125),并且结束处理(步骤S126)。
图33示出连贯性错误的示例。当在(a)中所示的活动1和活动2之间添加活动3时,如(b)所示,活动1的终止条件是P1>200,因此当活动1结束时P1的值大于200。另一方面,活动3的开始条件是P1<150。因此,不实行活动3,从而完不成处理。因此,出现连贯性错误。
返回到图27,当处理实例流程连贯性检查没有出现问题时(步骤S32),工作流程引擎23读取处理变量改变历史表246并且确定处理重新开始位置(步骤S33)。图34示出确定处理重新开始位置的处理示例的流程图。
在图34中,当开始处理时(步骤S71),从处理实例数据库24获得处理实例流程(步骤S72),获得第一个活动(步骤S73)并且获得接续该活动的转移(步骤S74)。然后,读取处理变量更新历史表246,并且在步骤S75、S76中确定转移终止条件是否曾经满足。当条件从未满足时(步骤S76为否),将该转移确定为重新开始位置(步骤S77),并且结束处理(步骤S78)。
当该条件曾经满足时(步骤S76为是),获得接续该转移的活动(步骤S79),读取处理变量更新历史表246,并且在步骤S80、S81中确定活动终止条件是否曾经满足。当条件从未满足时(步骤S81为否),则将该活动确定为重新开始位置(步骤S82),并且结束处理(步骤S78)。
当活动终止条件曾经满足时(步骤S81为是),在步骤S83中确定该活动是否为最后一个活动。当它是最后一个活动时(步骤S83为是),确定该处理结束(步骤S84),并且结束当前处理(步骤S78)。
当它不是最后一个活动时(步骤S83为否),返回到步骤S74来获得接续该活动的转移,并且继续处理。
返回到图27,在确定处理重新开始位置之后(步骤S33),工作流程引擎23更新处理实例数据库24上的处理实例流程(步骤S34),并且响应于更新结果,工作流程应用程序13请求工作流程引擎23重新开始处理(步骤S35),并且工作流程引擎23通过更新处理实例数据库24中的状态信息来重新开始处理(步骤S36)。
图35到40示出当复制和编辑处理实例时各个表的示例。即,在上述操作中,作为处理被“暂停”的结果,处理停止。然后进行编辑,检查权限和连贯性,然后重新开始。然而在这里,中断(或终止)处理实例,产生其副本,编辑由此获得的新处理实例,检查权限和连贯性,然后重新开始。
图35示出一种状态,其中当编辑处理ID1的处理时,处理的状态变为“终止”,复制处理的数据,并且产生新处理实例(处理IDm+1)。
在图36中,复制处理(处理ID1)的活动的信息,只有活动ID和处理ID的信息是新ID信息,而其他信息则原样继承。此外,当需要时添加活动并使其属于新处理ID(在本例中“m+1”)的处理。
在图37中,复制处理ID1的转移,使“源活动”和“目的活动”具有新活动ID。此外,当需要时添加或删除转移。此时,当需要时改变每个转移的触发条件。由触发条件和处理变量/活动变量的状态自动确定状态。
在图38和39中,复制处理ID1的处理变量和活动变量,处理ID和活动ID是新ID信息,而其他信息继承。此外,当需要时添加新处理ID和活动ID。此外,删除读取计数和更新读取计数为0的处理变量和活动变量。
在图40中,复制与处理ID1中包含的活动的转移有关的读取信息,给出新活动ID和转移ID,并且继承其他信息。此外,当需要时添加新读取信息,或者删除不需要的读取信息。
图41示出登记处理定义以便再用的处理定义工具的图形用户界面的示例。即,通过根据变为与用户的实际工作进行方式相适合的形式的处理实例流程生成处理定义,可以在将来再用。这里,通过下面操作过程进行处理定义的登记(1)从“引入”菜单11a中选择处理实例流程,并且作为结果,右边窗格变为处理实例列表11b;(2)从处理实例列表11b中选择期望的处理实例,并且按下“OK”按钮;结果,在左边“流程视图”窗口11d中显示处理实例流程,并且关闭处理实例列表11b。
(3)用户编辑在“流程视图”窗口11d中显示的处理实例流程,然后选择“添加”菜单11e,并且执行通过处理定义管理部分21将处理实例流程作为处理定义登记在处理定义数据库22中的处理。
如上所述,根据本发明,在这样的状况下进行编辑,即,停止处理、检查编辑者的权限和处理连贯性、确定重新开始位置并且重新开始。因此,可以避免最终用户不适当地改变处理,可以在确保其可执行性的同时自由改变执行中的处理。
此外,从活动的执行记录可以产生改进的工作流程,并且可以再用。
此外,通过利用处理变量管理处理的进度,可以以统计方式管理可灵活修改的处理进度情况。换句话说,可以根据处理变量产生评估处理进度的检查列表。
上面描述了本发明的优选实施例。尽管作为特定实施例描述了本发明,但可以用各种方式修改或改变特定实施例,只要不背离权利要求书中阐述的本发明的广义概念和范围。即,本发明不限于实施例的描述和附图。
本申请基于分别与2005年5月26日和2006年5月9日提交的日本优先权申请No.2005-154261和2006-130553,其全部内容并入这里作为参考。
权利要求
1.一种执行处理的工作流程系统,该处理包括作为特定作业的活动和定义活动顺序的转移,该工作流程系统包括用于停止执行中的处理的装置;用于编辑所停止的处理的装置;用于检查所编辑的处理的连贯性的装置;用于确定处理中的重新开始位置的装置;和用于从重新开始位置重新开始处理的装置。
2.如权利要求1所述的工作流程系统,其中所述用于检查处理的连贯性的装置根据由活动读取或更新的处理变量的特定值的存在与否、以及该处理变量的任务执行者的操作权限的存在与否,检查连贯性。
3.如权利要求2所述的工作流程系统,其中所述用于检查处理的连贯性的装置确定对于转移的情况,是否覆盖了当在并行转移的触发条件之间进行OR操作时所有可能的情况。
4.如权利要求2所述的工作流程系统,其中所述用于检查处理的连贯性的装置在找出任何不可能被执行的活动时发出警报,不允许编辑完成,并且要求重新编辑。
5.如权利要求2所述的工作流程系统,其中当终结活动无法到达时,所述用于检查处理的连贯性的装置确定出现错误,不允许编辑完成,并且要求重新编辑。
6.如权利要求1所述的工作流程系统,其中所述用于确定处理中的重新开始位置的装置从处理中包含的第一个活动开始跟踪转移和活动,读取处理变量的改变历史,并且当所述活动或所述转移没有经历满足终止条件时确定所述活动或所述转移为重新开始位置。
7.如权利要求6所述的工作流程系统,其中所述用于确定处理中的重新开始位置的装置在确定经历过满足终止条件的活动是最后一个活动时,确定处理结束。
8.如权利要求1所述的工作流程系统,其中所述用于停止处理的装置通过将处理设置在暂停状态来停止处理。
9.如权利要求1所述的工作流程系统,其中所述用于停止处理的装置通过将处理设置在终止状态来停止处理。
10.如权利要求1所述的工作流程系统,其中所述用于编辑处理的装置所执行的编辑内容包括改变处理的所有组成部分,包括添加、删除、改变活动的顺序,添加和删除处理变量,改变处理终止条件以及改变处理变量值。
11.如权利要求1所述的工作流程系统,其中所述用于编辑处理的装置在添加活动或转移时递增由活动或变换读取或更新的处理变量的计数值,在删除活动或转移时递减由活动或变换读取或更新的处理变量的计数值,并且删除计数值为0的所述处理变量。
12.如权利要求1所述的工作流程系统,还包括用于检查编辑者权限的装置,其根据访问控制列表检查权限,对于处理中包含的每个对象,该列表包括被允许编辑的用户或组、以及指示操作权限的访问控制。
13.如权利要求1所述的工作流程系统,包括用于转换从编辑获得的处理实例流程并将其物化成处理定义的装置,并且登记该处理定义以便再用。
14.一种执行处理的工作流程处理方法,该处理包括作为特定作业的活动和定义活动顺序的转移,该方法包括停止执行中的处理;编辑所停止的处理;检查所编辑的处理的连贯性;确定处理中的重新开始位置的装置;和从重新开始位置重新开始处理。
15.一种使计算机执行处理的工作流程处理程序,该处理包括作为特定作业的活动和定义活动顺序的转移,所述程序包括使程序执行下列步骤的指令停止执行中的处理;编辑所停止的处理;检查所编辑的处理的连贯性;确定处理中的重新开始位置的装置;和从重新开始位置重新开始处理。
全文摘要
一种执行处理的工作流程系统,该处理包括作为特定作业的活动和定义活动顺序的转移,该工作流程系统包括用于停止执行中的处理的装置;用于编辑所停止的处理的装置;用于检查所编辑的处理的连贯性的装置;用于确定处理中的重新开始位置的装置;和用于从重新开始位置重新开始处理的装置。
文档编号G06Q10/00GK1870028SQ200610084540
公开日2006年11月29日 申请日期2006年5月25日 优先权日2005年5月26日
发明者松井善郎 申请人:株式会社理光