wf3只创建了响应数量有限的事件. 在Sharepoint 功能上,工作流程可与更多的事件交互,还提供了创建自定义事件和事件事件接收器.
在WF3中流程只能响应围绕着他们的事件,不能发出自己的事件,去监听其他事件接受器。
这就意味着一个工作流不能监听其他工作流,而其他事件也不能获取工作流的错误信息。
但在很多实例中,这种行为是很有用的。
例如,工作流可以发起其他工作流,那么开发人员就可以在审批流程的末尾添加一步骤,启动其他流程。
这种功能可使流程模块化,重用现有的代码。
将前事件处理程序添加到工作流事件中可以帮助开发人员添加验证以防架构或系列化错误出现时启动了流程,为管理员提供监听流程出错的机制。
除了添加一些事件,开发人员还可以创建自定义事件和事件接收器来处理特殊情况。
在SharePoint Foundation 中开发人员可以采用对象模型或SharePoint 事件创建工作流的事件处理程序。
开发人员可以编写调用其它工作流并等待流程完成的程序。
开发人员可通过插入代码的形式更新正在运行的流程。
有SharePoint Foundation 发出的流程事件:
- WorkflowStarting
- WorkflowStarted
- WorkflowCompleted
- WorkflowLoading
- WorkflowUnloading
- WorkflowPostponed
可通过SPWeb,SPList,SPContentType注册工作流事件接收器,开发人员可以添加接收器到SPSite
SPWeb:监听运行在站点中的工作流事件,包括站点工作流。
SPList:监听运行在列表的Item中的工作流事件。
SPContentType:监听内容类型事件接收器只在文档库内容类型触发工作流,所产生的事件。
开发工作流事件接收器可重写SPWorkflowEventReceiver类和接口来实现。
通过标准SharePoint事件接收器的对象模型来注册工作流事件接收器。