可插接式工作流服务是可用于创建交互和回收外部数据源数据的工作流。
可插接式工作流服务提供了从外部应用程序或组件中运行工作流实例产生的以编程方式进行通信的机制。
在WF3中,工作流的响应事件的数量是有限的。
因为这些限制,客户通常会询问可扩展的模式,以便用于内部和外部的任意数量的自定义事件都可以交互和响应用户的流程。
虽然在早期版本中有类似于工作流通过代码调用外部服务的这种功能,用编写Web Service 传递参数更新指定的正在运行中的工作流实例来实现,但在SharePoint Foundation 2010 中,已经为开发人员提供了一种编码方式,来监听工作流的外部事件,无需再写Web Service。
可插接式工作流服务提供了工作流执行到指定的点,然后等待外部进程的信息。
体系结构
下列的数据流作为可插接式工作流服务的启动:
SPWorkflowService是提供访问基本功能和数据的服务的抽象类,可插接式工作流服务是继承这个类的。
在工作流中使用可插接式服务,接收来自外部传输系统的通信。
例如:某公司通过SharePoint Foundation 已经创建大规模订单处理系统。在订单列表中每条列表项代表一个订单。使用工作流自动实现订单项实施过程的业务流程。全世界范围的客户直接提交订单给各个运营商进行数据传输。最近有来自传输公司的及时更新和集成在订单详细列表里的信息的难题。因此需要自动接收传输公司的更新,不断地更新订单的信息。传输公司提供了自动化系统通知客户提交发货的状态。通过使用可插接式服务,开发人员可以在工作流等待发件人发送通知时暂停工作流。当工作流接收递交状态时,工作流就可以调用接口更新SharePoint列表和继续下一步的操作。
开发步骤:
1、自定义工作流服务。
2、在自定义工作流服务中接受外部事件和调用适合的函数响应事件处理器和Web服务,允许重新开始适当的工作流。