使用 ShowScopeDebugInfo 收集 SharePoint 2013 工作流故障排除数据

ShowScopeDebugInfo() 函数提供了一种更简单的方法,用于排查影响 SharePoint 2013 工作流的常见问题,并为帮助解决工作流问题的支持代理提供其他信息。

如何运行 ShowScopeDebugInfo() 函数

  1. 在遇到工作流问题的网站上,选择“设置”(齿轮图标),然后选择“网站设置>工作流设置>工作流运行状况”。

    • 还可以从 URL 访问工作流运行状况。 例如:https://<contoso>.sharepoint.com/sites/<test>/_layouts/15/WorkflowServiceHealth.aspx。 (在此示例中,将 contoso 替换为您的域,并使用 SharePoint 网站的名称进行测试
  2. 从 Web 浏览器打开开发人员工具(建议使用 Edge 或 Google Chrome)。

    • 对于 Microsoft Edge,请按 F12 键。
    • 对于 Google Chrome,请按 Shift+Ctrl+J。
  3. 选择“控制台” 。

  4. 输入以下函数名称: ShowScopeDebugInfo(),然后按 Enter。 该命令执行 JavaScript 函数以在后台打印数据。

    • 注意:必须刷新工作流服务运行状况页才能从 ShowScopeDebugInfo 获取更新的数据。 ShowScopeDebugInfo 生成的信息不会实时返回。 更新结果前稍有延迟。

示例输出:

{
  "SupportDocument": "https://go.microsoft.com/fwlink/?linkid=847765",
  "ScopePath": "/spo/ec63b09b-9748-47ba-9018-beeadd405204/f19089ae-d6c6-4feb-be0b-ff4de40a04fc/88890858-ae38-407a-b1e7-152c7cff6fe5",
  "WorkflowEndpoint": "spo-dm3-001.workflow.windows.net",
  "WorkflowAppId": "i:0i.t|ms.sp.ext|5958c314-3699-407a-b142-2d459b5161c4@72f988bf-86f1-41af-91ab-2d7cd011db47",
  "IsThrottled": false,
  "ThrottledUntil": "",
  "ActiveMessageCount": "965436",
  "StatusDetails": "MaxTopicSize",
  "ScopeSizeInBytes": "6447069028",
  "MaxScopeSizeInBytes": "6442450944",
  "CorrelationFilterCount": "1851",
  "MaxCorrelationFilterCount": "100000",
  "ScopeUsageInfoAggregatedByWorkflow": [
    {
      "workflowName": "87effe93-5c6a-474d-8a72-0ef451ff0100",
      "workflowDisplayName": "ANewWF",
      "sizeInBytes": 0,
      "correlationFilterCount": 0
    },
    {
      "workflowName": "df26aa85-85a7-4466-a273-1775c9da38bb",
      "workflowDisplayName": "Neat2013ListWorkflow",
      "sizeInBytes": 52591272,
      "correlationFilterCount": 1827
    },
    {
      "workflowName": "fc7a63c5-ff72-42e5-87fd-3f2944f8a6ef",
      "workflowDisplayName": "Spec_Document_Approval",
      "sizeInBytes": 277327,
      "correlationFilterCount": 24
    }
  ]
}

如何读取结果

标签 定义
SupportDocument SharePoint 2013 工作流公共文档可帮助工作流作者避免常见的工作流设计和常见错误。
ScopePath 吸引 SharePoint 2013 工作流功能所有者所需的信息。
WorkflowEndpoint 吸引 SharePoint 2013 工作流功能所有者所需的信息。
WorkflowAppId 吸引 SharePoint 2013 工作流功能所有者所需的信息。
IsThrottled 指示 Azure 工作流服务是否正在限制当前 SharePoint 网站的 SharePoint 2013 工作流。 限制按 SharePoint 网站进行,每 10 分钟评估一次。 如果所有 SharePoint 2013 工作流实例都超过动态限制,Azure 工作流服务将所有 SharePoint 2013 工作流实例限制至少五分钟,工作流实例在下一个 10 分钟的处理窗口中恢复。
ThrottledUntil 如果 IsThrottled 为 true,则 ThrottledUntil 包含 UTC 日期和时间,用于指示限制何时过期。
ActiveMessageCount 表示 ServiceBus 订阅 ActiveMessageCount。 启动 SharePoint 2013 工作流实例时,消息在 Azure ServiceBus 中排队,这些消息由 Azure 工作流服务后端处理。 如果 SharePoint 2013 工作流实例正在缓慢处理,则通常由于限制和/或大型 Azure ServiceBus 队列(由 ActiveMessageCount 指示)。
StatusDetails 指示当前 SharePoint 网站的 SharePoint 2013 工作流未进行进度的原因,以及无法手动或自动启动 SharePoint 2013 工作流实例的原因。 目前, 包括 MaxTopicSizeMaxCorrelationFilter 以指示超出限制。
ScopeSizeInBytes 表示 Azure 工作流服务中的 SharePoint 网站 SharePoint 2013 工作流存储。 Azure 工作流服务使用 Azure 服务总线 和 Azure SQL 来启用 SharePoint 2013 工作流。 每个 SharePoint 网站分配 6 GB。 Azure 工作流服务是本地工作流管理器的云版本。 如果 ScopeSizeInBytes 超过了 MaxScopeSizeInBytes则 StatusDetails 指示 MaxTopicSize。 这意味着超出限制,SharePoint 2013 工作流实例在手动触发时或通过在 SharePoint Online 中创建和编辑数据不会启动。 可以通过检查 ScopeUsageInfoAggregatedByWorkflow 来确定哪些 SharePoint 2013 工作流使用的空间最多。 ScopeUsageInfoAggregatedByWorkflow 不会实时返回,但相对最新。 每个 SharePoint 2013 工作流都包含 sizeInBytes ,并可用作标识要从 SharePoint 列表或库中删除的 SharePoint 2013 工作流的指南。 通过从列表或库的 “工作流设置” 页中删除 SharePoint 2013 工作流,将启动清理过程。 该过程完成后,SharePoint 网站的工作流将恢复处理。 StatusDetails 列不再包含 MaxTopicSizeScopeSizeInBytes。 它小于 MaxScopeSizeInBytes。 可以启动 SharePoint 2013 工作流。
MaxScopeSizeInBytes 表示在 Azure 工作流服务中为当前 SharePoint 网站分配的最大存储。
CorrelationFilterCount 表示 Azure ServiceBus 相关筛选器的 Azure 工作流服务当前使用情况。 手动启动简单的 SharePoint 2013 工作流或在 SharePoint Online 中创建或编辑数据时,每个工作流实例使用两个关联筛选器。 随着 SharePoint 2013 工作流变得更加复杂,使用更相关的筛选器。 “等待字段更改”或“等待列表中的更改”等操作完全使用相关筛选器。

MaxCorrelationFilterCount 表示最大关联筛选器限制为 100,000。 如果创建了最简单的 SharePoint 2013 工作流,这意味着每个 SharePoint 网站最多有 50,000 个活动工作流实例。 但是,不太可能达到 50,000 个工作流实例,因为大多数工作流使用的默认两个相关筛选器超过启动工作流实例所需的默认两个关联筛选器。 工作流实例完成后,相关筛选器计数会减少。 这为更多工作流实例腾出空间。

如果 CorrelationFilterCount 大于 MaxCorrelationFilterCount则 StatusDetails 包含 MaxCorrelationFilter。 无法启动工作流实例。 当 CorrelationFilterCount 超过 MaxCorrelationFilterCount,ScopeSizeInBytes 中所述的行为相同。 此外,也可以使用相同的解决方案。 使用 ScopeUsageInfoAggregatedByWorkflow 并查找具有最高相关性FilterCount 的工作流,并考虑使用“工作流设置”页将其从 SharePoint 列表或库中删除。 如果使用 SharePoint Designer 删除 SharePoint 2013 工作流,它将删除工作流逻辑,需要重新创建工作流。 最好使用“工作流设置”页删除工作流,然后根据此处找到的建议调整工作流逻辑。
MaxCorrelationFilterCount 表示在 Azure 工作流服务中为当前 SharePoint 网站分配的相关筛选器计数。
ScopeUsageInfoAggregatedByWorkflow 包含当前 SharePoint 网站的 SharePoint 2013 工作流。 每个工作流包含以下数据:workflowName、workflowDisplayName、sizeInBytes 和 correlationFilterCount。 ScopeUsageInfoAggregatedByWorkflow 中的数据不会实时更新。 它是经常更新的快照。
  • workflowName 映射到 WorkflowSubscription.Id
  • workflowDisplayName 映射到 WorkflowSubscription.Name。 此名称是 SharePoint 2013 工作流在 SharePoint UX 中的名称。 此名称可能与 SharePoint Designer 中的名称不同。
  • sizeInBytes 是工作流存储使用情况。 它聚合到 ScopeSizeInBytes 中。
  • correlationFilterCount 是工作流相关筛选器用法。 它聚合到 CorrelationFilterCount 中。