可插入工作流服务

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

适用范围: SharePoint Foundation 2010

本文内容
概述
用法示例
开发步骤

可插入工作流服务提供了一种机制,以允许外部应用程序或组件以编程方式与服务器上当前运行的工作流实例进行通信。

概述

在 Windows SharePoint Services 3.0 中,工作流可响应的事件数是有限的。为扩展工作流功能,曾要求开发人员开发能够通过代码调用外部服务的工作流,然后编写带参数的 Web 服务,以便更新运行的特定工作流实例。与早期版本中的工作流相比,Microsoft SharePoint Foundation 2010 中的新工作流可以提供更广泛的扩展性,从而可与更多数目的自定义事件(包括内部和外部事件)进行交互和响应。SharePoint Foundation 为开发人员提供了一种对工作流进行编码以侦听特定外部事件的方式。

可插入工作流服务提供了一种方法,从而使工作流能够在指定位置执行,然后等待来自外部进程的信息。

体系结构

下面是可插入工作流服务启动时的数据流:

  1. 工作流代码启动并加载工作流引擎。

  2. 工作流引擎从配置文件读取通道类和程序集。

  3. 从全局程序集缓存 (GAC) 加载通道,并启动工作流运行时。

SPWorkflowService 是抽象类,可为服务提供对基本功能和数据的访问权限。所有可插入服务都必须从此类继承。

用法示例

使用工作流中的可插入服务从外部传送系统接收通信

某公司已使用 SharePoint Foundation 构建了一个扩展订单处理系统。每个订单均由其订单列表中的一个列表项表示。他们使用工作流来自动完成从订单接收到产品交付这一业务流程。但是,为进行运送,他们通过各种运输公司来将货物运送到位于世界各地的客户处。

最近,在及时获取货运公司更新,以及将此信息与订单详情进行集成方面,他们遇到一些问题。他们需要一种能够自动从货运公司接收更新的方法,以便他们的订单信息始终保持最新。货运公司可提供自动化系统来向客户通知其货物的运送状态。

使用可插入工作流服务后,他们的开发人员可在等待运输公司的运送通知时暂停工作流。当工作流收到运送状态时,它会更新 SharePoint 列表并继续执行工作流的下一步,即开票。

开发步骤

工作流服务开发人员只需实现以下两项服务:

  1. 自定义工作流服务。

  2. 事件处理程序或 Web 服务,以便通过调用自定义工作流服务中的相应函数来接收外部事件和响应,从而恢复工作流正常运行。

请参阅

概念

创建可插入工作流服务