新工作流事件

上次修改时间: 2010年4月16日

适用范围: SharePoint Foundation 2010

本文内容
概述
由 SharePoint Foundation 发出的工作流事件
作用域
开发工作流事件接收器

工作流可以对其周围的事件进行响应,但本身不能为其他事件接收器发出事件以进行侦听。这种情况意味着一个工作流无法侦听其他工作流,而其他事件也无法侦听工作流错误。然而,在许多情况下,这种行为却非常有用。例如,如果某个工作流能够启动另一个工作流,则开发人员可以在审批工作流的末尾添加一个步骤。通过这一功能,可以使工作流模块化,并允许重用现有代码。此外,向工作流事件添加预事件处理程序可帮助开发人员添加验证,以防止发生架构或序列化错误,并提供一种在出现错误时能够与管理员进行沟通的方法。

除了事件数量增加之外,开发人员现在还可以创建自定义事件和事件接收器来处理特殊情况。

概述

在 Microsoft SharePoint Foundation 2010 中,开发人员通过使用用于其他 SharePoint 事件的相同模型,可以为工作流编写事件处理程序。

开发人员可以编写能够调用其他工作流并等待它们完成的工作流。

开发人员通过在现有工作流中注入其他代码,从而将现有代码转成新代码,可以快速升级工作流实例。

由 SharePoint Foundation 发出的工作流事件

  • WorkflowStarting

  • WorkflowStarted

  • WorkflowCompleted

  • WorkflowLoading

  • WorkflowUnloading 

  • WorkflowPostponed

作用域

与任何事件接收器一样,可以通过使用 SPWeb(侦听在网站中运行的任何工作流的事件,包括网站工作流的事件)、SPList(侦听针对此列表中的某个项运行的任何工作流的工作流事件)或 SPContentType 来注册工作流事件接收器。(仅当从针对相应的内容类型的文档运行的工作流中触发工作流事件时,内容类型事件接收器才应触发。)此外,通过使用 SharePoint Foundation 2010,开发人员可以将接收器添加到 SPSite 中。

开发工作流事件接收器

若要创建工作流事件接收器,开发人员可重写 SPWorkflowEventReceiver 类,并实现要捕获的事件。

开发人员可使用标准的 SharePoint 事件接收器模型来注册工作流事件的接收器。该模型使用 SharePoint 功能解决方案来打包和安装事件接收器,或通过使用对象模型来注册事件接收器。