SharePoint 工作流开发最佳做法

为使用 Visual Studio 在 SharePoint 中创建工作流的开发人员提供最佳实践集合。

注意

自 2020 年 8 月 1 日起,SharePoint 2010 工作流已对新租户停用,并于 2020 年 11 月 1 日从现有租户中删除。 如果你使用的是 SharePoint 2010 工作流,我们建议迁移到 Power Automate 或其他支持的解决方案。 有关详细信息,请参阅 SharePoint 2010 工作流停用

工作流开发最佳做法

若要开发无差错的 SharePoint 工作流,最好遵循一些通用准则,或"最佳实践"。无论使用 SharePoint Designer 2013 还是 Visual Studio 2008 开发工作流,这一点都毋庸置疑。

包含集成工作流的 SharePoint 相关应用程序必须编辑 workflowmanifest.xml 文件中的标记

可通过将应用程序包的 workflowmanifest.xml 文件中的以下标记更改为 true,来区分包含集成工作流(可与父 Web 上的列表相关联)的 SharePoint 外接程序与普通工作流应用程序:


<SPIntegratedWorkflow xmlns="http://schemas.microsoft.com/sharepoint/2014/app/integratedworkflow">
    <IntegratedApp>true</IntegratedApp>
</SPIntegratedWorkflow>

当您使用记录到历史记录列表操作时,信息越多越好

使用“记录到历史记录列表”操作(或 LogToHistoryListActivity 类,如果使用的是 Visual Studio),可以记录工作流在其生命周期内给定时间点完成了哪些工作。 这让它成为最重要的故障排除工具之一。 提供的工作流中重要点的信息越多,意外事件排查起来就越容易。

有关详细信息,请参阅以下资源:

将您构建的每个字符串和变量的值都写入到历史记录列表中

如果您使用 Log to History List 操作将字符串和变量写入到历史记录列表中,则对使用 SharePoint 设计器创建的工作流进行调试将变得更加容易。

有关详细信息,请参阅以下资源:

在工作流中的每个工作步骤或重要单元执行前后,都输出跟踪日志

为了帮助调试工作流,在每个工作的重要单元执行前后捕获有意义的信息非常重要;应该将这些重要信息提交到跟踪日志中。 有关详细信息,请参阅以下资源:

验证变量均为非空且包含预期值

在工作流中使用变量之前,请确保没有空变量。 此外,也要确保变量包含预期值,并且具有正确的数据类型。 有关详细信息,请参阅 变量和参数

确保工作流文本字段中的字符串不超过 255 个字符

工作流文本字段中字符串的最大允许长度是 255 个字符。 如果您将文本字段设置为超出此限制,则其超出 255 个字符的内容将被截掉。

使用模拟时,在中立帐户上使用提升的权限

当在工作流中使用模拟步骤时,您应该使用中立帐户(即不与特定用户绑定的帐户)来编写工作流。 这样可以防止您的工作流在作者帐户因故废弃时发生中断。

有关详细信息,请参阅 使用 SharePoint 工作流平台创建具有提升权限的工作流

在可重用工作流中,使用关联栏以确保列表字段无差错

如果您创建的可重用工作流依赖于具有特定字段的列表,您可以 (1) 将工作流限制为含有指定字段的内容类型,或者 (2) 使字段成为关联栏。 建议使用选项 2,这是因为内容类型有可能会有变化并导致工作流发生中断。

工作流设计:在单一的工作流中模拟一个业务流程

在可能的情况下,比起将工作流逻辑分解成几个小的工作流,在单一工作流中模拟业务流程的做法更好。

工作流设计:有效地使用审批操作

在可能的情况下,比起创建多个 Approval 操作,更有效的做法是在 Approval 操作中使用 Stages 功能。

另请参阅