SharePoint Foundation 处理工作流活动的方式
上次修改时间: 2010年4月16日
适用范围: SharePoint Foundation 2010
有必要了解 Microsoft SharePoint Foundation 如何在运行的工作流程实例中处理 SharePoint Foundation 特定的工作流程活动。
SharePoint Foundation 运行工作流程直到到达某个点,当到达该点时它不能继续,因为它正在等待某些事件发生:例如,用户必须将某个任务指定为已完成。仅在此"提交点",SharePoint Foundation 才会提交在前面的 SharePoint Foundation 特定的工作流程活动中进行的更改。将在单个 SQL 事务中对这些更改进行批处理。此方法具有两大优势:
在单个 SQL 事务中对这些更改进行批处理与在每个更改发生时将其作为单独的事务提交相比,性能加强的程度要小一些。
如果在提交时任何更改失败,SharePoint Foundation 会将所有更改回滚到上一个"提交点"。这将大大减少开发人员在为 Windows SharePoint Services 特定的工作流程活动创建异常处理程序和补偿处理程序时所需完成的工作量。
当工作流程所等待的事件发生时,SharePoint Foundation 将继续运行此工作流程。工作流重新运行直到到达另一个事件或工作流程结束,此时,SharePoint Foundation 将提交自上一个提交点之后的 SharePoint Foundation 特定的工作流程活动所作的任何更改。此过程将继续,直到工作流程获得其结论或被用户停止。
此方法会影响在其中将 Code 活动与 SharePoint Foundation 特定的工作流程活动配置在一起的工作流程。虽然对 SharePoint Foundation 特定的工作流程活动的写入操作进行了批处理,并且在未到达提交点之前不会提交这些写入操作,但是 Code 活动中包含的任何写入操作在发生时将被提交。同样,Code 活动没有 SharePoint Foundation 特定的工作流程活动的隐式回滚功能;如果希望对这些活动进行错误处理,则必须为其编写异常和补偿处理程序。