首页 / 专利库 / 人工智能 / 人人交互 / 协作应用程序中的工作流关联

协作应用程序中的工作流关联

阅读:75发布:2020-06-30

专利汇可以提供协作应用程序中的工作流关联专利检索,专利查询,专利分析的服务。并且揭示了一种用于开发和管理工作流的方法。该方法使得能从工作流模板和/或预编程组件来开发工作流;将工作流与进度表相关联;将工作流建模为多个任务和多个人人或 人机交互 点;以及持久化地存储工作流的内部状态。该方法使用计算机实现的表单来控制工作流的开发、 包装 、安装、部署、启用、关联、实例化、以及终止。,下面是协作应用程序中的工作流关联专利的具体信息内容。

1.一种创建用于支持工作如何流过商务过程(即工作流)的软件程序的方 法,包括:
(a)响应于用户输入,定义一工作流并使用先前开发的模板来设计支持所述工 作流的表单;
(b)将所述工作流安装到服务器上;
(c)将参与者与所述工作流相关联;
(d)启用所述工作流;以及
(e)将所述工作流与文档库相关联。
2.如权利要求1所述的方法,其特征在于,定义工作流并使用先前所开发 的模板设计支持所述工作流的表单包括设计支持所述工作流的进度表和元数据的 表单。
3.如权利要求2所述的方法,其特征在于,定义工作流并使用先前开发的 模板设计支持所述工作流的表单包括定义如何跟踪所述工作流。
4.如权利要求1所述的方法,其特征在于,定义工作流并使用先前开发的 模板设计支持所述工作流的表单包括包装所述工作流。
5.如权利要求4所述的方法,其特征在于,包装所述工作流包括:
(a)将工作流进度表插入到包中;
(b)将任务类型插入到包中;
(c)将表单插入到包中;
(d)将资源插入到包中;以及
(e)将元数据添加到包清单中。
6.如权利要求1所述的方法,其特征在于,还包括响应于用户输入,启动 所述工作流。
7.如权利要求1所述的方法,其特征在于,包括终止所述工作流。
8.如权利要求1所述的方法,其特征在于,将所述工作流与文档库相关联 包括创建文档库、创建内容类型并将工作流关联到所述内容类型、将所述内容类型 添加到所述列表或文档库中、以及将适当内容类型的文档添加到所述列表或文档库 中。
9.一种用于管理工作流的计算机实现的方法,所述方法包括:
(a)开发一工作流;
(b)包装所述工作流;
(c)将所述工作流安装到服务器上;
(d)部署所述工作流;
(e)启用所述工作流;
(f)将所述工作流与进度表相关联;
(g)将所述工作流实例化;以及
(h)终止所述工作流。
10.如权利要求9所述的计算机实现的方法,其特征在于,开发所述工作流 包括:
(a)使用工作流模板来设计工作流表单,所述工作流表单包括参数;以及
(b)对所述工作流表单的参数赋值。
11.如权利要求9所述的计算机实现的方法,其特征在于,所述工作流包括 要由参与者执行的多个任务。
12.如权利要求9所述的计算机实现的方法,其特征在于,所述工作流具有 结构,且其中,所述结构由声明性语言描述。
13.如权利要求11所述的计算机实现的方法,其特征在于,所述工作流结 构被存储以在其它工作流创建中使用。
14.一种用于管理工作流的计算机实现的方法,所述方法包含:
(a)从预编程组件创建一工作流,所述预编程组件包括适用于创建表单的模 板,所述模板包括参数;
(b)向所述工作流表单的参数赋值;
(c)将所述工作流表单安装到服务器上;以及
(d)将参与者与所述工作流相关联。
15.如权利要求14所述的计算机实现的方法,其特征在于,包括启用所述 工作流表单以供参与者使用。
16.如权利要求14所述的计算机实现的方法,其特征在于,包括将所述工 作流与文档库相关联。
17.如权利要求14所述的计算机实现的方法,其特征在于,所述工作流包 括多个任务,所述任务与所述参与者相关联。
18.如权利要求14所述的计算机实现的方法,其特征在于,所述工作流包 括进度表,且其中,所述任务根据所述进度表与所述参与者相关联。
19.如权利要求18所述的计算机实现的方法,其特征在于,所述工作流创 建所述任务的完成状态的报告。
20.如权利要求14所述的计算机实现的方法,其特征在于,所述工作流具 有一结构,并且其中,所述结构由说明性语言描述。

说明书全文

技术领域

发明涉及计算机软件,尤其涉及工作流的重复使用。

背景技术

管理项目任务的执行的需求自从人类协同劳动起就存在了。图1中示出简单 但却是示例性的任务管理过程。由框100到132所表示的动作可认为是准备步骤, 由框136到144所表示的动作可认为是进行中的项目管理的步骤。首先为项目定义 一个或一组目标100。然后,设定达成目标的完成日期104。接下来,开发一列在 完成日期前必需执行以达成目标的任务108。还要开发一列能够执行这些任务的参 与者112。较佳的是,开发在给定可用参与者的假设下每个任务将花费的时间的估 计116。较佳的是还开发任务间的依赖关系,即,在另一任务可开始前哪个或那些 任务必需被完成120。还可记录各参与者可用于执行任务的时间段124。使用来自 之前各步骤的信息,为该项目开发任务进度表128。为了确保任务正确地且准时地 完成,在任务进度表内设立里程碑,即检查点132。在框136,对于该项目本身的 工作开始,各任务被执行并跟踪。当为每个里程碑设置的时间到来,评定有关任务 和整个项目的状态140。当完成所有任务并达到所有里程碑,即达成该项目的目标 114。
图1中所示并在上文描述的线性任务管理过程忽略了复杂因素,例如被重新 安排、合并或移除的过程步骤,或被插入的新步骤,某些受其它任务牵制的参与者, 当项目上的工作进行时改变的项目要求和目标,以及必需调整的过程。任务的计划、 管理和跟踪是由手动地创建和更新列表、计划表、图表、及其它信息的视觉表示来 实行的,使得任务管理甚至更加混乱,直到计算设备及计算机软件对各组织广泛可 用。此类管理工具常为手写或打字的,且不容易改变。联系负责执行任务的参与者 常表现为不可靠且难以跟踪口头通信或写备忘录的时间消耗,直到基于计算机的通 信,即电子邮件,成为可用。
任务管理历史中下一个发展截断是由计算设备和计算机软件实现的。通过计 算机软件工具的强应用加速并简化了许多计划、列清单、作图、作表,以及通信 杂务。然而,仍然在各杂务或参与者间缺乏协调的情况下执行这些杂务。大多数协 调这些杂务的尝试涉及需要经训练计算机程序员的时间、努力、及成本的非平凡的 计算机编程。使用计算机软件工具来自动化职务过程的至少某些部分使得思考贯穿 职务过程的工作流较为容易。因而,计算机软件工具的开发从集中在给定职务过程, 转移到集中在贯穿职务过程的“工作流”(workflow)。
注意工作流不是职务过程。工作流是工作如何贯穿职务过程的抽象。例如, 给定用于批准文档的职务过程,可开发工作流以跟踪特定文档贯穿批准过程,其中 批准过程中的每个参与者收到并批准文档。“工作流”的这个抽象概念已被建模到 计算机程序中,且用于支持贯穿职务过程的工作流的计算机软件流已作为“工作流” 而为人所知。在下文中,术语“工作流”指这样一种软件模型,即,支持工作贯穿 职务过程的软件程序。
工作流允许定义及跟踪个人和/或部间的工作流程。尽管工作流使许多任务 管理杂务能够自动化,工作流压倒性的价值在于工作流所提供的在任务管理中固有 的许多杂务间的协调。实践上,工作流帮助使职务任务自动化,并在正确的时间将 正确的信息电子化地发送给正确的人。自动地向参与者通报未决的工作。经理能够 通过该系统迅速地发送批准。工作流还可提供项目中工作流程的图形表示,包括决 策与动作间的依赖关系和次序。
毫无疑问,工作流显著地改善了任务管理;然而开发工作流需要经高度训练 的计算机程序员的昂贵劳动,并且工作流的部署需要很多劳动和成本。即使工作流 常常彼此类似,当前技术的工作流开发和部署工具使得很难或不可能取为一个项目 开发的工作流并将其应用到另一项目。所需要的是通过对一个以上项目重复使用一 个工作流,来将开发一个工作流的劳动和成本分摊到许多工作流的方法。本发明是 针对通过提供一种将为一个项目开发的工作流的结构与元数据与其它项目相关联 的方法与设备,来重复使用工作流。

发明内容

根据本发明的各方面,提供了一种包括计算机可读介质的方法和设备,用于 使用工作流模板来创建工作流。工作流模板的使用允许该方法和设备将为一个项目 开发的工作流的结构与元数据与其它项目相关联。通过向参数赋值、插入新参数、 释放现有参数、启用现有特征、释放现有特征,及/或插入计算机实现表单,将工 作流与进度表相关联。通过显示计算机实现表单的图形用户界面来将工作流与进度 表相关联。
根据本发明的一个方面,使用工作流模板来开发工作流。较佳的是模板允许 插入和/或移除预编程的工作流组件,赋值给工作流组件中的参数,插入新参数到 工作流组件中、以及释放在工作流组件中已有的参数。较佳的是通过向参数赋值、 插入新参数、及/或释放现有参数,以及将工作流与有关数据储存在持久的存储内, 将开发好的工作流被包装以供安装。较佳的是,可以安装、部署、及/或启用工作 流。工作流可被实例化和/或终止。
根据本发明的另一个方面,被实例化并达到默许状态的工作流可被释放,描 述该工作流内部状态的参数值可被持久地存储任一长度的时间,并使用所述被持久 存储的参数值来重新存储和重新启用。
根据本发明的其它方面,通过开发工作流模板及使用工作流模板和/或预编程 工作流组件,来重复使用现有工作流的结构和元数据。工作流被建模为多个人人和 /或人机交互点。交互点可以任意顺序发生。工作流可由多个任务组成。一个任务 可由单个用户有输入数据或无输入数据地完成。多个任务可由单个经理有输入数据 或无输入数据地完成。任务可被分配一个或多个用户,委托给一个或多个用户,及 /或转交给一个或多个用户。工作流中的任务可用由第三方开发的计算机实现表单 来定义。开发工作流、包装工作流、安装工作流、部署工作流、启用工作流、将工 作流与进度表相关联、实例化工作流、以及终止工作流是通过显示计算机实现表单 的图形用户界面来控制的。
如同从上文的描述已可容易地理解,本发明提供一种通过将为一个项目开发 的工作流的结构和元数据与其它项目相关联,重复使用现有工作流的结构和元数据 的方法和设备。
附图说明
当连同附图参考以下详细描述,本发明的前述各方面及许多伴随的优势将更 容易理解,并被更好地理解,附图中:
图1所示是示例性线性任务管理过程的流程图
图2所示是支持本发明示例性实施例的SharePoint主要组件的框图
图3所示是在工作流生命周期中各个阶段的流程图;
图4A所示是开发示例性工作流的流程图;
图4B是用于设计工作流的示例性图形用户界面;
图4C是用于将工作流模板与文档库相关联的示例性图形用户界面;
图4D是用于自定义工作流的示例性图形用户界面;
图5A所示是如何包装示例性工作流的流程图;
图5B是示例性工作流包的顶层组件的框图;
图6所示是如何安装示例性工作流包的流程图;
图7A所示是如何部署示例性工作流的流程图;
图7B是用于创建新工作流并将该工作流与文档库相关联的示例性图形用户界 面;
图7C是用于察看和选择与文档库相关联的工作流的示例性图形用户界面;
图7D是用于在工作流中设置任务的示例性图形用户界面;
图7E是用于设置与工作流相关联的文档库的参数值的示例性图形用户界面;
图8所示是如何启用示例性工作流的流程图;
图9A所示是如何将示例性工作流与内容类型向关联的流程图;
图9B所示是如何将示例性工作流与文档列表或库相关联的流程图;
图10A所示是如何实例化示例性工作流的流程图;
图10B是显示工作流中延误任务的示例性图形用户界面;
图10C是显示工作流中活动议题的示例性图形用户界面;
图10D是提供对多个工作流的多个报告的访问的示例性图形用户界面;
图11A所示是如何终止示例性工作流的流程图;
图11B是启用工作流的终止的示例性图形用户界面。

具体实施方式

本发明的各实施例提供了一种包括计算机可读介质的计算机实现方法和设备 (工具),用于将为一个项目开发的工作流的结构和元数据与其它项目相关联,并 用于开发和使用工作流及工作流模板。可直接、或通过使用工作流模板来创建工作 流。第一部分描述针对于定义工作流以及揭示如何直接创建它们。工作流模板及使 用工作流模板来创建工作流将于稍后描述。
工作流包括关于职务过程的信息,诸如:(a)职务过程的程序上的步骤;(b) 在职务过程的每个步骤所牵涉到的人;(c)在职务过程的每个步骤所需的输入信息 和输出信息;以及(d)在职务过程的每个步骤所需的工具。如本领域技术人员将容 易地理解的,除了前述示例性的信息类型外,工作流可包括其它类型的信息。
在本发明的示例性实施例中,工作流所基于的模型接近地模仿人类工作流, 即,在工作流生命周期中通常与人类交互点相关联的时间和项。此类工作流建模使 得难以在人类/工作流交互的过程中预测事件,例如,休假、生病、忘记过程中的 步骤,等等。为讨论方便起见,由其在与工作流的关系中的色来指示与工作流交 互的人:(a)所有者,创建并控制工作流的人;(b)开发者,设计和实施工作流和/ 或工作流组件的全部或部分的人;(c)参与者,参与由该工作流所控制的一个或多 个动作的人。动作包括,但不限于,检阅、修正、及批准。显然,各“角色”可重 叠。例如,所有者也可以是开发者和/或参与者。相应来自工作流的输入的实体是 “行动者”。行动者可以是参与者或计算设备。较佳的是,人类行动者通过使用图 形用户界面表单(GUI表单)来与本发明的实施例交互。GUI表单可以是应用程序 中的窗口、Web页、或类似的使人类行动者能够输入察看、选择、及/或输入信息 的图形用户界面组件。
作为例子而非限制,可以在诸如Microsoft SharePointTM Portal Server (SharePoint)等的协作的计算机应用程序内支持本发明的示例性实施例,即开发 和使用工作流的方法与设备。SharePoint是将来自各个联网计算设备和联网计算 系统的信息集成到一个软件实体以提供便利的门户部署和管理的可升级门户服务 器。本领域技术人员将理解,门户是诸如Web站点的,作为到诸如因特网等的网络 的网关的站点。Web站点门户是设计成将用户引领到他们很可能感兴趣的信息(新 闻、天气、娱乐、商业站点、聊天室,诸如此类)的链接、内容和服务的集合。Yahoo!、 Excite、MSN.com及Netscape NetCenter是门户的例子。由SharePoint提供的服 务被总称为Windows SharePointTM服务(WSS)。用于与WSS交互的GUI表单被称 作WSS表单。
本发明的示例性实施例作为SharePoint服务运行。SharePoint服务提供协作 与信息共享,还可提供与其它软件应用程序的集成。图2所示是支持本发明示例性 实施例的SharePoint主要组件及主要组件间关系的框图。示出的主要组件包括应 用程序156、Windows SharePoint服务工作流对象模型(WSS工作流OM)158、及 诸如Windows工作流服务中的工作流引擎等的工作流引擎170。“对象模型”包含 应用程序编程接口(API)及由API使用的数据结构,即,向写到API的函数传递 或从其返回的数据结构。WSS工作流OM 158包含Windows SharePoint服务工作流 API及由Windows SharePoint服务工作流API使用的数据结构。应用程序156可 以是启用工作流或未启用工作流的。启用工作流的应用程序150是包含专用于工作 流的特征的应用程序。未启用工作流的应用程序154是可作为服务与工作流交互、 但不包含专用于工作流的特征的应用程序。
WSS工作流OM 158是接口,通过该接口将工作流状态信息162传递给工作流 引擎170。工作流引擎170运行工作流,并向工作流提供进程安排、消息通信、数 据持久化、角色定义及任务跟踪的支持。工作流可能引起产生指令166。工作流引 擎170将工作流指令166通过WSS工作流OM 158传递到应用程序。注意应用程序 156与WSS工作流OM 158交互以访问SharePoint服务。因为工作流是SharePoint 服务,通过WSS工作流OM 158来访问工作流。因而,应用程序156能通过WSS工 作流OM 158访问工作流。还要注意工作流不直接与WSS工作流OM 158交互。工作 流引擎170与WSS工作流OM 158交互,向工作流提供了到WSS工作流OM 158的接 口。
工作流与工作流引擎交互,工作流引擎与WSS工作流OM 158交互。例如,参 与者可在企图改变工作流状态的应用程序156中执行动作。应用程序156将消息传 递给WSS工作流OM 158。该消息包含标识该工作流并指示工作流状态改变的信息。 WSS工作流OM 158将消息从应用程序转换为工作流状态信息162并将工作流状态 信息162传递给工作流引擎170。工作流引擎170从该工作流引擎170正在运行的 工作流中选中指定的工作流,并将工作流状态信息162传递给在来自应用程序156 的消息中指定的工作流。
工作流引擎170通过令工作流遍历工作流进度表来运行工作流。工作流进度 表是包含任务、工作流逻辑、及各种元数据的数据结构。在本发明的示例性实施例 中,适于在Windows工作流服务中运行且与WSS工作流相关联的WSS工作流进度表 是包含工作流任务和逻辑的XML结构。此类的WSS工作流进度表可作为XML文档存 储在安装于诸如Web站点的合适站点中的工作流包中。
当遍历工作流进度表时,工作流常常处理文档和列表。在SharePoint的环境 中,文档是任何一件用应用程序创建的自包含工作。且若被持久化存储,则被给予 唯一的文件名,可用文件名来检索文档。在SharePoint的环境中,列表是明确定 义的字段类型的关系模式的抽象。列表可包含一个或多个文档。如和关系模式一样, 列表有使一个列表与另一个列表相异的特定唯一属性。可通过使用“简要表”从多 个列表中选中一组特殊的列表。“简要表”是包含期望列表的属性的过滤器。应用 于一个列表的函数也可应用于将简要表应用于多个列表所得的结果。称作文档库的 一种更特殊的列表可能不止包含文档,而还可按使得搜寻和过滤关于文档的数据及 包含在文档内的数据容易的方式来组织文档。例如,工作流文档要求文档被一个或 多个参与者批准。在工作流生命周期期间,文档的多个版本可被创建、取消、修改、 等等。与此类文档相关联的工作流管理并跟踪此类动作。
工作流通常以工作流定义的形式开始。工作流定义是包含Windows工作流服 务工作流进度表和完全说明工作流所需的支持代码文件和表单的可安装软件包。当 工作流定义遍历了工作流关联和工作流参数化的过程,一个特定的工作流就被创建 了。工作流关联是在列表或简要表上使工作流可用的过程。工作流参数化是收集并 向工作流发送一组诸如参与者、到期日、发送顺序等的参数的过程。某些参数化在 当工作流与列表或简要表相关联时发生。某些参数化在当工作流被初始化时发生。 工作流的设计者,即该工作流的构造者或工作流所有者,决定要包括哪些参数以及 何时请求它们的值。
工作流无需来自行动者的输入即可从开始行进到结束;然而,较为可能的是 工作流会需要某些来自行动者的外部输入来继续前进。行动者,即参与者和计算设 备,可在工作流中某些离散的、明确定义的点,向在工作流引擎(即Windows工作 流服务)上运行的工作流提供外部输入。这样的点称作“任务”。概念上,可以认 为任务是具有开始、结束以及诸如状态信息等相关联的元数据的一个单元的工作。 每个工作流包含一组任务列表。每个工作流将其任务存储在任务列表中。
可将工作流与列表(其中文档库是一种类型的列表)或内容类型相关联。工 作流关联的设置作为列表的属性被存储。如果列表被复制,这些设置被保留。如果 库被复制,这些设置被保留。
在本发明的WSS实施例中,可用诸如Microsoft Office InfoPathTM或 Microsoft Visual StudioTM等应用程序来定义任务,或者可以用自定义数据集合 表单,即由独立软件销售商(ISV)开发的GUI表单或WSS表单来定义任务。任务由 参与者完成。例如,参与者可点击任务的链接以察看该任务的表单。参与者将数据 输入到表单中,并以某种方式(例如通过选择示意该表单的“状态”为“完成”的 复选框)示意单已经完成。提供表单的应用程序156将状态信息传递给WSS工作流 OM 158,由其将该状态信息作为工作流状态信息162传递给工作流引擎170。工作 流引擎170接收此信息并回传工作流指令166来通知工作流所有者该任务已完成。 在类似的过程中,工作流所有者,及项目经理,可通过选择一组具有类似要求的任 务并将其标记为完成或被批准,来完成多个任务。
本发明的示例性实施例使用称为“ToDo(要完成的事情)”的特定类型的WSS 任务。ToDo是要由行动者完成的任务。ToDo可被完成、取消或委托。将一个ToDo 与其它ToDo同步,来执行适当的动作,这些动作反过来使适当的消息被发送到工 作流引擎170。工作流通过创建ToDo并将其指向一组行动者,开始请求外部输入 的过程。因为ToDo是一类WSS任务,ToDo可被插入到WSS任务列表中,并可被分 配给行动者。ToDo是可扩展的,因为它可以有表示在运行于工作流引擎内的进度 表中的特定点,工作流所需数据的任意模式。ToDo可被委托或转交给其它行动者。 在缺少所需的输入数据时,ToDo可被当场完成。如果需要来自参与者的数据来完 成ToDo,则通过向参与者呈现表单来收集数据。在数据被输入到表单后,数据被 提交给WSS工作流OM 158,由其随即将工作流状态信息162提交给工作流引擎170。
信息以消息形式从WSS工作流OM 158被传递到工作流引擎170。在示例性实 施例中,消息的类型包含启用、发送和接收。通过在WSS中“保存”事件来生成消 息。例如,作为工作流引擎内工作流状态转换的一部分,工作流进度表可创建工作 流任务,并指定“保存”事件的订阅,即指定要向哪个软件对象通知“保存”事件。 在工作流引擎内由工作流进度表对工作流任务的创建被转化为在WSS中创建ToDo, 并登记适当的ToDo事件的动作。在本发明的示例性实施例中,当参与者提交表单 以完成ToDo,该ToDo通过提交引起下列动作执行的请求,在支持数据库中执行“保 存”事件:
1.往返数据库以取回关于使用无类型事件的ToDo的元数据。
2.执行事件前处理器,并执行访问控制列表(ACL)检查。
3.保存请求的载荷,并构造事件队列载荷。数据库服务器计算“保存”操 作将在数据库中引起的变化。基于在中层完成的过滤,数据库服务器将 该组无类型事件归纳为特定的一组适当类型化的事件。
4.再往返数据库以执行“保存”事务。在“保存”事务中执行以下动作:
a.在数据库中提交“保存”。
b.为该操作生成类型化的事件,并将其加入到事件队列中。
c.工作流进度表被定。
d.工作流进度表被串行化,并将串行化的工作流进度表作为事务的结果 返回。
5.如果成功地获得工作流进度表,在中等异步地发放“保存后”事件。
在4.c.项,如果锁定工作流进度表失败(这可能发生,因为在某个其它机器 上的某个其它过程可能已锁定该工作流进度表)串行化并返回该工作流进度表以完 成该事务,但“保存后”事件未被发放)。基于自适应定时方案,当工作流进度表 能被锁定时,“保存后”事件被发放。一完成ToDo,可使用类似于以上所描述的 过程来删除该ToDo。这样一个ToDo删除使WSS工作流OM删除该ToDo以及适当的 对该ToDo的订阅。
当工作流创建ToDo,在该ToDo和运行于工作流引擎170中的进度表间建立起 一个或多个链接,并将其与该工作流相关联。ToDo为一个或多个由用于向该ToDo 提交数据的表单所生成的事件进行登记。当参与者将数据输入到表单的一个或多个 字段中,就生成了一个事件。ToDo检测到该事件,处理所提交的数据,并将处理 过的数据传递给启用工作流或未启用工作流的应用程序150、154。工作流可以工 作流指令166来响应。代表性的指令是更新ToDo。当ToDo被更新,执行多个一致 性检查。如果所有检查都成功,将一个异步事件加入队列,以向初始化该ToDo的 进度表传送。一致性检查包括,但不限于,检查同步性、安全、及数据有效性。为 了维护数据库的一致性,将该异步事件进队列是发生在更新该ToDo的同一事务中。 一旦将事件加入队列,以向工作流进度表传送,即通知提交该更新的参与者,该更 新已被成功传送。
出于若干理由,可以异步地向工作流传送事件。一个理由是实施例可能只允 许进度表的一个实例,且该进度表实例可能仅被允许在单个、任意的、中层机器上 运行。尽管可能将到达中层机器的新事件发送到另一中层机器上运行中的进度表的 实例,此类机制对整个设计增加了不必要的复杂性。因此,在进度表出于活动的运 行状态,并假定不存在将新事件传送到运行的进度表的发送机制的情形下,必需将 工作流事件进队列以供稍后消费。一旦在队列中有等待由其特制工作流进度表消费 的未决事件,必需设计一种机制来使这些事件出队列。因为同步地点名来察看进度 表是否能够消费事件是不够的,因此异步地处理出队列过程。依赖于异步出队列机 制以进行事件传送也意味着单个代码路径既可用于标称代码执行路径,又可用于异 常代码路径,即事件传送和消费未能完成,且必需在稍后重试。注意,如果期望的 话,事件队列可以是数据库中的表,且不在存储器中维护。这为设计增加了健壮性, 预防了灾难性的系统故障。
较佳的是,一旦工作流被引导到运行状态中,就由拥有事件的工作流直接将 事件进队列。一旦运行了,工作流通过按FIFO顺序从事件队列中取事件,来消费 指派给工作流的事件。在指派给工作流的事件栈上的事件最终使工作流遍历进度 表,使得进度表最终完成。
在本文中描述的示例性实施例中,WSS容纳工作流引擎,即Windows工作流服 务,并为工作流的状态提供持久的存储。在工作流运行以完成的时间的过程中,存 在一些点,在这些点上工作流的状态可被持久地存储。可以在由工作流开发者在进 度表中显式地定义的点,或者在默认点捕捉并持久地存储工作流的状态。默认点是 工作流进入默认状态的点,即无有用工作或交互发生的一段时间。本质上,工作流 为某事发生等待很长且不确定量的时间。当检测到此类条件,工作流设置事务点。 在事务点,工作流收集描述该工作流内部状态的数据,并将内部状态数据随对应的 进度表持久地存储到数据库中。随此事务,其它模式管理也可发生。进度表的工作 流状态以二进制或XML的串行化形式存储。在事务点,可使工作流进入“冬眠”状 态。工作流冬眠是工作流进度表不消耗除在数据库中持久化的静态存储以外的计算 资源的状态。例如,如果所有工作流线程在ToDo任务完成上被阻塞,且没有未决 时间要传送给工作流,则释放该工作流的互斥锁,并允许工作流进入冬眠。较佳的 是,活动的过程不断地监视时间队列,以寻找需要让拥有它们的工作流唤醒的事件。 一旦确定了此类工作流,即指派合适的中层机器为该工作流的主机。关于工作流的 二进制代码和状态信息从持久化存储加载到主机机器上。工作流给引导到运行状 态。
前述的对工作流的描述支持前述关于项目经理,即工作流所有者,如何使用 运行于诸如SharePoint等协作应用程序中的本发明的实施例来创建工作流以管理 项目的解释。首先,工作流开发者开发工作流的定义。开发者将工作流定义包装, 并将工作流定义安装到服务器上以使工作流所有者能访问工作流定义。然后,所有 者部署工作流定义,即复制工作流定义以用于特定项目。所有者启用,即激活,部 署的工作流定义,将部署的工作流定义与关于项目的文档组相关联,并且将部署的 工作流定义实例化,即为项目创建工作流。最后,所有者为项目开始该工作流。其 后并直到工作流被终止,参与者通过使用GUI表单与工作流交互来为该项目完成任 务,并且所有者使用GUI表单来检查过程等。前述的过程被称作“工作流生命周期”, 且由图3中的流程图示出,并在以下详细描述。
如图3中所示,工作流的生命周期是由8个阶段组成。接下来给出每个阶段 的简短定义,并在下文描述每个阶段的细节。第一阶段是开发阶段200。在开发阶 段定义工作流并创建组成该工作流的部件或元素。第二阶段是包装阶段204。在包 装阶段期间,使用在开发阶段创建的部分或元素建立工作流本身。通常在开发阶段 200完成之后建立工作流;然而,某些例如Microsoft FrontPage等的计算机应 用程序允许在开发阶段200期间编辑工作流。第三阶段是安装阶段208。在安装阶 段期间工作流包被加载到服务器上。第四阶段是部署阶段212。在部署阶段期间将 工作流的定义安装到服务器上,并将工作流的参与者与工作流相关联。第五阶段是 启用阶段216。在启用阶段期间工作流所有者开启工作流内的特征使得其它人(参 与者)能看到工作流。第六阶段是关联阶段220。在关联阶段期间,所有者将工作 流与文档库和/或列表相关联。第七阶段是实例化阶段224。在实例化阶段期间, 设置工作流参数值并启动工作流。第八和最终阶段是终止阶段228。当工作流中所 有任务都完成或工作流被取消时,终止阶段发生。
用工作流的示例来帮助理解每个阶段的具体解释。该示例性工作流由一组工 作于涉及视频编辑工具的开发的参与者使用。
在开发阶段200,由工作流开发者或工作流所有者开发和/或聚集组成工作流 或工作流模板的部件。因为工作流开发者在开发阶段担任首要角色,在开发阶段 200仅提及工作流开发者。所开发和/或聚集的部件包括,但不限于:(a)工作流进 度表;(b)由工作流使用或与其有关的数据的视图;(c)支持工作流的计算机实现表 单;以及(d)关于工作流的元数据。可使用例如Microsoft Visual Studio或 Microsoft FrontPage来创建所开发和/或聚集的部件。在开发阶段200,对于工 作流定义中的每个部件,可在该部件与SharePoint及/或在客户计算设备上运行的 例如Microsoft Office等的应用程序之间建立交互。
尽管可如上文所描述的来直接创建所开发和/或聚集的部件,使用工作流模板 来创建工作流是更有利的。通过复制工作流模板并修改工作流模板副本以将该工作 流模板副本改变成期望的新工作流,即从工作流模板创建了工作流。工作流模板允 许将为一个项目所开发的工作流的结构和元数据与其它项目相关联。注意工作流模 板不是GUI表单,而是一组随后用GUI表单来修改的工作流组件。
图4A所示是直接或使用工作流模板来开发和聚集工作流的部件或元素的代表 性顺序的流程图。如果直接开发工作流,则使用由部件或元素的类型所决定的默认 值来创建每个部件或元素。如果使用工作流模板来开发工作流,很可能大多数部件 或元素是可用的,且只需被修改以满足新工作流的要求。参考图4A,定义了工作 流的顶层进度表240。接下来,对定义工作流的数据和元素据的视图进行定义244。 向开发者呈现被设计以呈现并收集关于工作流进度表、视图及元数据的信息的表单 模板,以用于设计支持进度表、视图和元数据的表单248。接下来,按需编写自定 义计算机代码252。最后,定义如何及何时跟踪工作流的任务256。
在开发阶段200期间,提供表单以使开发者能完成前述步骤。图4B是用于设 计工作流的示例性GUI表单239。提供GUI表单内的字段241以供输入工作流中步 骤的名称。在表单的右边显示了工作流的示例性步骤243。该示例性步骤是“Send for Approval(发送以供批准)”和“Select Vendor(选择销售商)”。“Send for Approval”步骤有两个子标准,即“On Manager Approve(经理批准)”和“On Controlling Approval(监督者批准)”在图4B中,着重是表示被选中进行编辑 的步骤是“Send for Approval”。点击“Send for Approval”步骤致使步骤名(未 示出)在字段241中示出。“Send for Approval”步骤在下拉菜单的显示字段245 中被指定为“Regular Step(常规步骤)”。在工作流步骤内,当满足条件时所发 生的条件和动作是可设置的。
在图4B中所示的示例性工作流“Send for Approval”步骤中,示出了两个 条件,每个条件都具有相关联的动作。第一个条件是“when Amount is less than or equal to $1000(当量小于或等于$1000)”,并且当满足第一个条件时发生的 动作是“assign Current Document to Manager for Approval Then run substep: On Manager Approve(将当前文档给予经理以供批准,然后运行子步骤:经理批准)”。 第二个条件是“else when Amount is greater than $1000(否则当量大于$1000)”, 并且当满足第二个条件时发生的动作是“assign Current Document to Controlling for Approval then run substep:On Controlling Approve(将当前文档给予监 督者以供批准,然后运行子步骤:监督者批准”。注意对应于两个子标准“On Manager Approve”和“On Controlling Approve”的两个“动作”在图4B的右边示出,并 在上文描述。
注意图4B中的条件和动作中的某些项被加了下划线。在本文所描述的本发明 的示例性实施例中,带下划线的项可被改变。可以在例如是用于创建工作流的工作 流模板的一部分的GUI表单中提供带下划线的条件和动作。在GUI表单239的底部, 提供了按钮以使开发者能:(a)检查工作流,“Check Workflow”;(b)取消对工作 流的编辑,“Cancel”;(c)回到前一个步骤,“Back”;(d)前进至下一个步骤, “Next”;以及(e)结束对工作流的编辑,“Finish”。
可通过选择“Add Conditional Branch(添加条件分支)”249来创建额外的 条件分支。选择“Add Conditional Branch”249致使新的条件和动作框247被岔 道现有的条件分支之下。可使用下拉菜单来选择条件和动作框内每个组件的类型。 例如,在条件和动作框247的左边,从下拉菜单选中“Set Condition(选择条件)” 和“Actions(动作)”。在条件和动作框247的右边,从下拉菜单选中条件“when Amount is less than or equal to $1000”和条件“else when Amount is greater than $1000”。
在开发阶段200期间支持的另一个动作是将工作流与文档库相关联。图4C示 出用于将工作流与文档库相关联的示例性GUI表单251。该GUI表单251包括三个 部分,它们的标题反映了在将工作流与文档库相关联中所涉及的三个动作: “Workflow Definition(工作流定义)”,“Name and Status Menu(名称和状 态菜单)”,和“Initial Conditions(初始条件)”。“Workflow Definition” 部分向工作流开发者呈现一列工作流模板。示出了示例性工作流库关联模板 “Document Approval(文档批准)”、“Document Review(文档审阅)”、“Document Circulation(文档流通)”、“Manager Approval(经理批准)”、“Team Review (团队审阅)”、“Private Document Review(私人文档审阅)”、“Resource Procurement(资源获得)”。工作流开发者可从该列工作流库关联模板中选择一 个工作流库关联模板。替换地,如果列表未包括合适的模板,工作流开发者可选择 “Create a workflow...(创建一个工作流)”,这允许工作流开发者创建新的工 作流库关联模板。“Name and Status Menu”部分允许工作流开发者为工作流库关 联创建唯一名称。通常名称将会基于之前选中的工作流库关联模板。“Name and Status menu”部分还包括一个单选按钮,该按钮允许开发者向状态菜单为与文档 库相关联的工作流添加菜单项。“Initial Conditions”部分允许开发者为新近创 建的工作流库关联选择一个或多个初始条件。可能的初始条件是:“Allow this workflow to be manually started from an item or folder.(允许该工作流从 项或文件夹中手动启动)”;“Automatically start this workflow when a new item or folder is created.(当创建新项或文件夹时,自动启动该工作流)”; 以及“Automatically start this workflow whenever an item or folder is changed. (只要项或文件夹改变,就自动启动该工作流)”。
在本文所描述的本发明的示例性实施例中,在于开发阶段200期间创建工作 流之后,可以自定义该工作流。图4D中示出用于自定义工作流的GUI表单253的 例子。在图4D的左边,所示的自定义GUI表单253以一系列步骤的形式,向工作 流开发者呈现4个问题:(1)Would you like to route approval or gather feedback? (你希望发送批准还是收集反馈?)(2)Who will participate in the workflow? (谁会参与该工作流?)(3)How would you like the workflow to progress?(你 希望工作流如何进展?)(4)How should the workflow end?(该工作流应如何结 束?)选择这些“问题”之一致使有关面板出现在图4D中的GUI表单的右边。在 图4D中所示的例子中,工作流开发者选择了第一个步骤——Would you like to route approval or gather feedback?此步骤打开了具有两个选项的面板:“Route a document for approval(发送文档以供批准)”和“Route a document for feedback and comments(发送文档以获得反馈和评论)”——每个具有两个子选项。“Route a document for approval”选项的子选项是:“Allow resubmit(允许重新提交)” 和“Restrict editing(限制编辑)”。“Restrict editing”具有题为“No Changes(read only).(没有改变(只读))”的禁止改变的控制复选框。“Route a document for feedback and comments”的子选项是:“Make a new copy of this document for each participant(为每一参与者作出该文档的新副本)”和“Allow participants to see each others copies.(允许参与者看见彼此的副本)”。
在图4D中所示的例子中,工作流开发者选择了“Route a document for approval.”。工作流开发者还选择允许参与者重复递交更新的文档(Allow resubmit)以及限制对原始文档进行编辑(Restrict editing)。
如图3中所示并在上文所描述,在开发阶段之后,在包装阶段204工作流被 包装。在图5A中示出示例性包装阶段的各个步骤。包装阶段204的各个步骤可由 工作流开发者或工作流所有者执行;然而,为描述容易起见,接下来的讨论假设各 个步骤由工作流所有者执行。工作流所有者首先通过确定工作流的组件来定义包 270。
图5B是示例性工作流包320顶层组件的框图。所示的示例性工作流包320包 含3个顶层组件:产品团队审阅324、市场审阅328、以及法律审阅332,应当理 解工作流包可包含更多或更少的指定为相同或不同的顶层组件。每个示例性顶层组 件与一组不同的工作流参与者相关联。例如,市场审阅组件与包含在工作流所跟踪 的项目中的市场组参与者相关联。每个顶层组件被示为角色、任务及里程碑的包含 性列表,应当理解这些列表的数量和确定是示例性的,且不应被解释为限制。即, 顶层组件可包含更多或更少的列表,并且列表可以是或可以不是角色、任务及里程 碑。
回到图5A,在定义包270之后,工作流所有者将工作流进度表插入到包中272。 然后工作流所有者把将被包含在工作流中的这些类型的任务插入到包中274。其后 工作流所有者将参与者所需的用于与工作流交互的表单插入到包中276。工作流所 有者接下来将工作流运作所需的资源插入到包中278。工作流所有者随后将关于工 作流的元数据加入到包清单中280。包清单是包内容的详细描述。包清单包含描述 包内名称、版本、类型及资源,以及对其它包依赖关系的元数据。清单允许包成为 子描述的并能被容易地部署。最后,工作流所有者使包可用282。显然,图5A中 所示的步骤,由其是插入步骤,可按除图5A中所示并与上文描述的次序以外的各 种次序完成。在本发明的实施例中,包可以是一个或多个Microsoft.NETTM程序 集。Microsoft.NETTM程序集是可以安全方式共享的代码库。
在被包装后,工作流进入安装阶段208(图3)。图6所示是如何安装工作流 包的示例性流程图。工作流所有者将工作流包放到全局程序集高速缓存(GAC)的 二进制代码文件夹350中。例如,可将包放到“GAC/bin folder”中,且工作流包 被添加到特征列表。工作流所有者随后通过诸如SharePoint的适当程序使工作流 可用354。在图6中所示的例子中,工作流被命名为“产品审阅”。
在安装了工作流之后,工作流进入部署阶段212(图3)。图7A所示是在部 署阶段212内发生的动作的示例性流程图。在框400,所有者从多个已安装的工作 流表单中选择适当的工作流表单。适当的工作流表单包含进度表及跟踪在由工作流 管理的项目的一个方面所涉及的任务所需的所有或大多数组件。在框404,使用适 当的工作流模板来专门为要由该工作流管理的项目创建工作流。例如,名为“产品 审阅”的工作流可被用作模板来定义名为“视频编辑产品审阅”的新工作流。图 7B示出适用于创建此类工作流的示例性GUI表单410。示例性GUI表单410包括3 个部分:“Workflow Definition(工作流定义)”;“Name and Status Menu(名 称和状态菜单)”;以及“Initiation Conditions(初始条件)”。“Workflow Definition”部分允许所有者从多个已安装的工作流中选择工作流定义,即工作流 定义可借鉴的现有工作流。现有工作流被用作模板。例如,在图7B中,所有者可 选择“Route for Approval(发送已供批准)”或“Document Circulation(文档 流通)”工作流模板。通过选择两个前述工作流模板之一,所有者将工作流与包含 与项目(例如“Video Editing Project(视频编辑项目)”)相关联的各个文档 的文档库相关联。工作流现在能够跟踪该项目的文档库中的所有文档。在“Name and Status Menu”部分中,所有者为工作流输入唯一的名称,该名称将出现在文档库 中的项列表和文件夹中。还有一个允许用户为此工作流,向状态菜单添加菜单项的 单选按钮。在“Initiation Conditions”部分,所有者设置如果所有必需的工作 流参数值被设置将致使工作流启动的条件。可从以下条件中选择至少一个,可能多 于一个的开始条件:“Allow this workflow to be manually started from an item or folder(允许该工作流从项或文件夹手动启动)”;“Automatically start this workflow whenever an item or folder is changed(只要项或文件夹改变就自动 启动该工作流)”。图7A的框408示出部署阶段212的最终步骤,在该步骤将参 与者与工作流(在此例中为“视频编辑产品审阅”工作流)相关联。
一个文档库可参与一个以上的项目,因此可与一个以上工作流相关联。图7C 是用于添加或移除与文档库相关联的工作流的示例性GUI表单412。图7C中所示 的示例性GUI表单还允许察看工作流设置及改变工作流运行的顺序。具体地,图 7C的GUI表单412显示与文档库相关联的工作流的数量,并提供控制来选择其它 GUI表单以将工作流与该文档库相关联,将一个或多个工作流从该文档库解除关 联,以及改变相关联的工作流运行的顺序。
图7D是用于设置工作流中的任务的示例性GUI表单414。该GUI表单提供工 作流中的任务的5个视图416:工作流中所有任务(All Tasks);工作流中被分 配给已登陆用户的任务(My Tasks);工作流中在当天到期的任务(Due Today); 工作流中活动的任务(Active Tasks);以及工作流中按照分配的任务(By Assigned To)。在视图面板418中,基于选中的视图416呈现了每个任务的标题(Title)、 所分配的参与者(Assigned to)、状态(Status)、优先级(Priority)、到期 日(Due Date)、以及完成的百分率(%Complete)。提供了控制420以向一列喜 爱的链接添加工作流、当必需由一参与者作工作流中的某件事时张贴警报、将工作 流信息导出到数据表、以及修改工作流上的设置与报告列。
图7E的示例性GUI表单422用于改变与文档库相关联的工作流的参数值。该 GUI表单分为4个部分。“Participants and Routing Order(参与者和发送顺序)”、 “Due Date(到期日)”、“Notification Options(通知选项)”、以及“Approval Conditions(批准条件)”。在“Participants and Routing Order”部分中,可 从地址簿选择参与者,并将其添加到参与者列表,以使其与和工作流相关联的文档 库相关联。可选择同时向所有参与者发送文档库,或按照参与者在列表中出现的顺 序将文档库发送给每个参与者。在“Due Date”部分中,可输入必需完成批准的日 期和时间。在“Notification Options”部分中,可选择当任务被分配给参与者时 通知每个参与者,也可选择当工作流完成时通知工作流的所有者。在“Approval Conditions”部分中,可选择一个或多个表示批准的条件:“All participants have approved the document.(所有参与者都批准该文档)”、“One participant has approved the document.(一个参与者批准该文档)”、“A majority of participants have approved the document.(大多数参与者批准了该文档)”、 以及“The due date has passed.(已超过到期日)”。
在工作流被部署以后,工作流进入启用阶段216(图3)。图8所示是在启用 阶段216内发生的动作的流程图。在框500,所有者确定哪个工作流启用工具被参 与者所使用500。可对由参与者所使用的工作流启用工具插入菜单项或其它工具, 以直接访问工作流。在框504,所有者开启每个工作流启用工具中的工作流选择控 制,例如,所有者开启每个工作流启用工具中的“视频编辑工具产品审阅”工作流 选择特征。
在工作流被启用后,工作流进入关联阶段220(图3)。在关联阶段220起见 发生的关联动作将工作流与内容类型或列表相关联。相关联的工作流是为了使文档 库或列表对该文档库或列表的用户可用而与文档库或列表相关联的工作流。
内容类型是可应用于其它内容类型或列表(其中文档库是一类列表)的设置 的集合。例如,说明书的内容类型可在文档库列表上定义用于输入说明书作者、说 明书实施者、以及说明书文档的说明领域的元数据列。说明书内容类型可包括当创 建此内容类型的新文档时使用的默认文档模板。当说明书内容类型被添加到文档 库,其设置被复制到文档库,且该文档库的用户能将该内容类型的项或文档保存到 该文档库。注意多个内容类型可被添加到同一个列表或文档库,且内容类型也可被 添加到其它内容类型。工作流关联是可添加到内容类型的一类设置。例如,可将说 明书批准工作流关联添加到说明书内容类型,且该工作流关联会被复制到添加了说 明书内容类型的列表。对说明书内容类型上的工作流关联的后续改变可被下推至继 承该内容类型的文档库,使得站点管理员能够在一个地方配置工作流设置,并将其 广播到许多其它地方。
图9A所示是工作流如何与内容类型相关联的示例性流程图。此类关联的优势 是可以有可基于内容类型或内容类型的属性的任务。首先,选择内容类型520。然 后将内容类型与工作流相关联524。在这个点,尽管已经进行关联,它还不是非常 有用,因为关联中没有文档。为准备向关联添加文档,创建文档库528。随后将内 容类型添加到文档库532。在框536,如果诸如一列适当内容类型的文档等的项可 用,则可将该项添加到文档库。在框536可用的另一个选项是创建适当内容类型的 列表,将适当内容类型的文档添加到该列表,并将该列表添加到文档库。在框536 的第三个选项是向文档库添加适当内容类型的空列表,并向该列表添加适当内容类 型的文档。最后在项或文档上启动工作流540。
图9B所示是工作流如何与不同种类的文档库(即,允许一种以上内容类型的 文档库)相关联的示例性流程图。此类关联的优势是可以有基于非内容类型属性的 共同特性的任务。首先,选择文档库544。然后将工作流与整个文档库或库内的一 个或多个列表相关联548。在图9A的框536可用的3个选项在图9B的框552仍然 可用。最后,如同在框540,如框556中所示,在项或文档上启动工作流。
工作流关联还可通过使用一类专用GUI表单,工作流关联表单,来完成。此 类表单用于从列表或简要表管理者收集工作流参数与限制。在安装于服务器上并启 用于站点或站点集合的工作流包中定义工作流关联表单。
在工作流被关联后,工作流进入实例化阶段224(图3),在此期间进一步调 整工作流以适应该工作流要跟踪的项目的特定要求。在工作流适应于被该工作流跟 踪的项目之后,使该工作流对工作流的参与者可用。图10A所示是关于题为“视频 编辑工具项目”的示例性项目,在实例化阶段224内发生的动作的示例性流程图。 在框600,对工作流模板中的类属参数赋予专用于“视频编辑工具项目”的值。在 框604,向工作流添加专用于“视频编辑工具项目”的自定义参数,以及自定义参 数的默认值。在框608,启动(即激活)关于“视频编辑工具项目”的工作流。动 作可以显示地发生。例如,参与者可提交文档请求批准,这可能显示地激活关于批 准该文档的工作流。动作也可自动发生。例如,在开支报告所需的文档被添加到与 该开支报告相关联的文档库之后,关于批准该开支报告文档的工作流可被自动激 活。在两个例子中,都在WSS子系统中生成事件以调用将工作流引擎导向实例化所 需类型的工作流进度表的专门事件处理器。将提示触发工作流生成的所有者或参与 者输入连接到进度表中所描述的变量的特定参数。用于提示所有者或参与者的表单 的生成是基于在部署时从工作流定义许用的元数据。
启动工作流激活了与该工作流相关联并运行于工作流引擎170(图2)中的进 度表。如前文某种程度上所描述的,当进度表在工作流引擎中运行时,进度表中已 分配给参与者的任务致使工作流指令166被发送给WSS工作流OM 158。WSS工作流 OM 158将此类工作流指令166转换为发送到应用程序156的消息。当应用程序156 接收到此类消息,该应用程序在GUI表单内呈现关于该任务的信息。例如,图10B 中所示的示例性GUI表单614提供了关于延误工作流任务的消息的视图。图10B 中所示的示例性GUI表单包括关于工作流中所有任务的消息的摘要。该摘要包括 outstanding task(未完成任务)的总数、overdue task(延误任务)的总数、以 及任务已被延误的average number of days(平均天数)。提供了一列关于分配 给每个参与者的任务的信息。列中最高的条目显示参与者的名字、平均的延误天数、 以及任务完成百分率。列中每一个余下的条目显示每个所分配的任务延误的天数、 任务完成百分率、任务的名称、以及任务的到期日。
图10C是可由工作流所有者调用以查看跨越若干星期的工作流中的活动要点 (即任务)摘要的示例性GUI表单618。该示例性GUI表单示出了工作流中所有活 动任务的摘要620,包括活动任务的总数、每周活动任务的平均数、每人活动任务 的平均数、以及每人活动任务的最大数。图10C中所示的示例性GUI表单618还提 供若干行所报告的时间段中的每个星期的信息。每行以显示所覆盖的时间段中的一 个星期的开始日期以及该星期内活动任务的平均数的条目开始。行中每个余下的条 目显示参与者的名字、分配给该参与者的活动任务数、该参与者所负责的第一个和 最后一个期限、以及任务完成百分率。
工作流所有者可使用图10D中所示的示例性GUI表单622来生成各种关于工 作流的报告。图10D中所示的示例性GUI表单622提供两种报告:Specific Review Reports(特定审阅报告)和Expense Approval Reports(费用批准报告)。Specific Review Reports包含Overdue tasks by person(按人排列的过时任务)、Not complete high priority tasks by person(按人排列的未完成高优先级任务)、 Not complete tasks by person(按人排列的未完成任务)、Not complete tasks by item(按项排列的未完成任务)、Overdue workflows by due date(按到期日 排列的过时工作流)、Overdue workflows by initiator(按发起者排列的过时工 作流)、以及Completed workflows by initiator(按发起者排列的已完成工作 流)。Expense Approval Reports包含Overdue tasks by person(按人排列的过 时任务)、Not complete high priority tasks by person(按人排列的未完成高 优先级任务)、Not complete tasks by person(按人排列的未完成任务)、Not complete tasks by item(按项排列的未完成任务)、Overdue workflows by due date(按到期日排列的过时工作流)、Overdue workflows by initiator(按发起 者排列的过时工作流)、Overdue workflows by expense amount(按费用量排列 的过时工作流)、Completed workflows by initiator(按发起者排列的已完成工 作流)、以及Completed workflows by expense amount(按费用量排列的已完成 工作流)。
在图3中所示的示例性工作流生命周期中,最后的阶段是终止阶段228。图 11A所示是如何终止工作流的示例性流程图。当完成工作流中的任务,且在规律的 时间间隔,检查工作流的完成700。如果工作流已完成,从SharePoint 708删除 工作流状态。如果工作流还未完成,但与关联了该工作流的文档或列表被删除704, 则从SharePoint 708删除工作流状态。如果未删除该文档或列表,该过程循环回 到工作流完成测试700。
无论工作流怎样被删除,SharePoint等待用户可配置的天数,例如90天,以 允许工作流的所有者删除该工作流或将其重启712。如果90天后工作流未被重启, 则从SharePoint删除该工作流任务并不再对其进行跟踪716。图11B是启用工作 流终止的示例性GUI表单。该GUI表单显示工作流的标题以及该工作流的示例数。 所有者可选择允许创建工作流的新实例,可选择不移除工作流运行中的实例就限制 新工作流实例的创建,或者移除工作流的所有运行中的实例。工作流任务列表具有 跟踪有多少工作流与其相关联的使用计数器。如果试图删除具有大于0的计数的工 作流任务列表,则发布该工作流任务列表仍在被使用的警告。
本发明的各实施例可为特定工作流提供诸如实时状态等关于工作流的状态信 息,并聚合关于一组工作流的信息。例如,本发明的实施例可为工作流中的项提供 一批批准意见、一批已签署特定项的批准者、一组当前活动并在使用中的工作流、 或者职务过程各个方面的度量。
尽管已示出并描述了本发明较佳的实施例,应当理解可在其中进行各种改变 而不会偏移本发明的精神和范畴。例如,在SharePoint的环境中,工作流可与包 括但不限于,标准Microsoft Outlook消息表单的许多种表单相关联或一同运行。 仍旧在SharePoint的环境中,本发明的实施例可与包含自定义字段及其它控制的 自定义用户界面一同运行。尽管上面所描述的本发明的实施例用于与SharePoint 环境中Web站点的开发与维护有关的职务过程,应当理解本发明可应用于其它环境 中的其它类型的职务过程。在这点上,应当理解可以除了连同SharePoint以外的 方式来实施本发明。应当理解在所附的权利要求书的范畴内,可以除本文所明确描 述的方式以外的其它方式来实施本发明。
相关申请的参照
按照35 U.S.C.§119,此申请要求对2004年9月29日提交的临时专利申请 第60/614,096,题为WORKFLOW IN A COLLABORATIVE APPLICATION(协作应用程序 中的工作流)的利益,其内容通过引用包括在此。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈