BlueGrove Labs
帮助中心StatusPath ReportsJira Cloud
联系支持
EN

为什么 Time in Status 报表缺少某个 Jira 状态列

即使 Jira 工作流中存在某个状态,Time in Status 报表仍可能不显示对应列:StatusPath 在运行报表数据源时,会从符合条件的历史中发现动态指标列,然后应用列可见性。对于新的数据源结果,如果没有已选工作项包含可计算的 QA 区间,就无法添加 QA;以前发现或保存过的 QA 列也可能保留,但所有行显示横线。如果 Columns 中已有 QA 但未勾选,则应在列管理器中显示它。

工作流里有状态,不代表报表一定有对应列

Atlassian 将状态定义为团队工作流中的步骤。工作流包含 QA,只能证明这个步骤已经配置;它不能证明当前报表范围内的工作项在计算历史窗口中进入过 QA。

StatusPath 的 Time in Status 状态列是动态列。某个报表数据源的计算数据包含状态值时,报表就能发现对应列;以前发现或保存过的列选择,也可能在后续运行中继续显示,即使当前每一行都变成横线。表格视图文档说明了根据结果生成列、Columns Manager 可见性、横向滚动、筛选,以及缺失值与真实零值的区别。状态区间的基础算法见如何计算 Jira Cloud 中的状态停留时间。

首先确认实际遇到的是哪一种情况:

现象 在当前表格中的含义 首要检查
没有 QA 表头,Columns Manager 中也没有 QA 报表数据源没有发现符合条件的 QA 时长记录 数据范围、工作项日期范围、Trim History 和 Jira History
Columns Manager 中有 QA,但没有勾选 动态列已经存在,但被列配置隐藏 勾选 QA 并保存列配置
有 QA 表头,但所有行都显示 - 已保存或以前发现的列仍保留,但当前行没有 QA 值 当前范围、日期控件、Trim History 和已保存配置
有 QA 表头,但某一行显示 - 该工作项在计算窗口中没有 QA 区间记录 查看该工作项的 History;不要把横线替换成时长
有 QA 表头,但看不到预期的 QA 工作项 表格筛选可能隐藏了证据行;表格也可能已经滚动离开该行 清除表格筛选并检查完整表格

真实 Jira 场景:围绕三次 QA 转换比较两个范围

发布经理知道项目工作流包含 QA,但包含六个工作项的发布报表没有 QA 列。受控报表使用以下配置:

设置 值
报表 Time in Status
Calendar 已配置的 24×7 日历 All time (UTC)
Format Decimal Hours
工作项日期范围 留空
Trim History 关闭,计算完整历史
固定报表时间 2026 年 7 月 20 日 22:00 UTC

All time (UTC) 是为这个可复现报表配置的日历名称,不代表每个安装环境的默认日历都使用这个名称。

较窄的 JQL 范围为:

project = SR
AND issuekey IN (SR-4001, SR-4002, SR-4003, SR-4004, SR-4005, SR-4006)
ORDER BY issuekey ASC

这六个工作项都没有进入 QA:

工作项 UTC 下的相关状态历史 QA 时长记录
SR-4001 To Do 07:00 → In Progress 08:00 → Done 13:00 无
SR-4002 To Do 07:00 → In Progress 09:00 → Done 13:00 无
SR-4003 To Do 06:00 → In Progress 07:00 → Blocked 13:00 → Reopened 15:00 → In Progress 16:00 → Done 18:00 无
SR-4004 To Do 08:00 → In Progress 09:00 → In Review 16:00 → Done 18:00 无
SR-4005 To Do 07:00 → In Progress 09:00 → Ready for Release 14:00 → Done 16:00 无
SR-4006 To Do 08:00 → In Progress 09:00 → In Review 13:00 → Done 16:00 无
使用 Columns Manager 和 Time in Status 表格排查缺失的 QA 列
在六个工作项的范围中,Columns Manager 只列出这些计算历史里已发现的状态;因为六行都没有进入 QA,所以没有 QA 列。

随后,经理只扩大工作项范围:

project = SR
AND issuekey IN (SR-4001, SR-4002, SR-4003, SR-4004, SR-4005, SR-4006, SR-4007, SR-4008, SR-4009)
ORDER BY issuekey ASC

SR-4007、SR-4008 和 SR-4009 提供了缺失的证据:

工作项 进入 QA 进入 Done QA 时长
SR-4007 2026-07-20 12:00 UTC 2026-07-20 14:00 UTC 2h
SR-4008 2026-07-20 14:00 UTC 2026-07-20 18:00 UTC 4h
SR-4009 2026-07-20 14:00 UTC 2026-07-20 20:00 UTC 6h

Atlassian 文档说明,工作项的 Activity → History 会记录字段编辑和工作项在工作流中的移动。这个 History 视图提供了每个 QA 进入和离开时间戳的来源证据。

扩大 Jira Time in Status 范围后显示九行以及 2、4 和 6 小时 QA 时长
把 SR-4007、SR-4008 和 SR-4009 加入九个工作项的范围后,动态 QA 列显示 2.00、4.00 和 6.00,另外六个未贡献工作项显示横线。

人工验算缺失状态与恢复状态

在较窄范围中,QA 贡献者数量为零:

QA 贡献者 = 0 / 6
QA 时长记录 = 无

从业务角度把这六条历史相加,QA 总时长为零小时;但表格不会虚构一个空的 QA = 0.00 列,因为没有可用于生成这个动态列的 QA 时长记录。

扩大范围后:

SR-4007 QA 时长 = 2026-07-20 14:00 - 2026-07-20 12:00
                 = 2 小时
SR-4008 QA 时长 = 4 小时
SR-4009 QA 时长 = 6 小时
QA 贡献者        = 3 / 9
QA 总时长        = 2h + 4h + 6h = 12.00 小时

因此,预期表格为:

工作项 QA
SR-4001 -
SR-4002 -
SR-4003 -
SR-4004 -
SR-4005 -
SR-4006 -
SR-4007 2.00
SR-4008 4.00
SR-4009 6.00

横线代表每一行缺少对应值,而不是六个数值零。整列缺失和单个单元格为空是两种不同状态。

按固定顺序排查缺失的状态列

1. 确认准确的状态名称

打开一个已知工作项,从 Jira History 中复制状态名称。不要假设 QA、In QA、Quality Assurance 和 Testing 可以互换。Atlassian 指出,重命名状态会更新使用该状态的工作流,也可能影响报表显示。本步骤只用于找到预期名称;跨项目状态身份和国际化问题需要单独核查。

2. 在 Jira 中证明工作项范围

以同一个用户身份运行准确的 Project、已保存 Filter、JQL、Sprint 或 Epic 范围。在这个场景中,应对比两条明确列出工作项键的查询,确认只有扩大后的查询包含 SR-4007、SR-4008 和 SR-4009。

JQL 也可以查找发生过 QA 变更且当前用户有权访问的工作项:

project = SR
AND status CHANGED TO "QA"
ORDER BY issuekey ASC

Atlassian 的 JQL 运算符参考说明,CHANGED 支持 TO、FROM、BEFORE、AFTER 和 DURING 等条件。该查询用于寻找证据工作项,不能计算时长。

3. 单独检查工作项日期范围

工作项日期范围可以根据 Created、Updated 或 Resolved 日期移除原本匹配的工作项。如果它排除了全部三个 QA 贡献者,最终数据就会失去 QA 值。对于新的数据源发现,QA 列可能完全不存在;如果保留了已保存或以前发现的 QA 选择,表头可能还在,但所有行都会显示横线。为了复现本例,应先清空这个控件;解释清楚列以后,再恢复业务所需的边界。

4. 对照 QA 区间检查 Trim History

Trim History 会改变每个已选工作项中参与计算的历史范围。如果裁剪窗口排除了 SR-4007、SR-4008 和 SR-4009 的全部三个 QA 区间,扩大后的结果就没有 QA 时长记录。根据 QA 是已经被发现,还是从已保存配置中恢复,后续表格可能不显示该列,也可能保留列但显示横线。单项边界核对应使用 SR-4007 在 7 月 20 日 12:00–14:00 的区间。日期范围和历史裁剪指南详细说明了工作项筛选和计算边界的区别。

5. 打开 Columns Manager

如果 QA 可选但未勾选,应勾选并保存。如果根本没有 QA 选项,仅改变可见性无法解决问题;应返回检查工作项范围和计算历史。Saved Report可以保存列选择,但保存的是配置,不是 Jira 数据的冻结副本。

6. 清除行筛选并检查完整宽度

表格筛选会改变可见行。它可以隐藏一个或全部三个 QA 贡献者,但不能生成缺失的 QA 历史记录。清除当前筛选、展开指标列组并横向滚动,再判断整列是否缺失。

7. 人工核对一个工作项

对于 SR-4007,在 Jira History 中核对 12:00 进入和 14:00 离开,计算两个时间戳之差,并确认在 24×7 UTC 日历与 Decimal Hours 格式下显示 2.00。然后核对 SR-4008 = 4.00 和 SR-4009 = 6.00,再确认总计为 12.00 小时。如果报表使用工作日历,则应只计算与工作时间表的重叠部分,不能期待得到这些自然时间结果。

常见错误

把工作流图当成时长证据

已配置的 QA 状态是一个可能经过的工作流步骤,不能证明任何已选工作项真正进入过 QA。

只检查 Jira 当前状态

status = "QA" 只查找当前处于 QA 的工作项,可能漏掉以前经过 QA 的已完成工作项。历史证据应使用 History 以及合适的 WAS 或 CHANGED 查询。

期待 JQL 计算缺失时长

JQL 用于选择工作项,也能检查状态历史条件,但不会把两次变更之间的区间直接转换为 Time in Status 值。

证据行不在工作项范围内,却只修改 Trim History

Trim History 无法把 SR-4007、SR-4008 或 SR-4009 加入只包含六个工作项的 JQL 结果。应先修正工作项范围,再设置计算窗口。

期待表格筛选生成或删除已发现的列

表格筛选作用于当前行。它可以把全部三个 QA 贡献者隐藏起来,但能否计算 QA 值取决于数据源和历史。

把横线、整列缺失和零值当成同一件事

在已有 QA 表头下显示横线,表示该行没有计算出的 QA 值;没有 QA 表头则属于列发现或可见性问题;显示出来的零时长是第三种独立状态。

在查明报表原因之前修改 Jira 工作流

不要为了让报表出现某一列就添加、删除或重命名状态。应先判断原因是否属于范围、历史、名称或列可见性。只有流程本身确实有问题,并且相应 Jira 管理员已评估影响时,才应修改工作流。

常见问题

没有工作项进入 QA 时,可以强制显示空 QA 列吗?

当前 Time in Status 表格根据计算后的报表数据生成基础状态列。如果 Columns Manager 中没有 QA,应纳入能够产生 QA 值的适当工作项和历史窗口;不要把虚构的零值列当成已记录历史。

Columns Manager 中有 QA,为什么表格中看不到?

QA 可能没有勾选、位于宽表格的屏幕外,或包含在已折叠的指标列组中。应勾选并保存配置,然后展开列组并横向滚动。

status CHANGED TO "QA" 会计算 Time in Status 吗?

不会。它只筛选发生过符合条件状态变化的工作项。Time in Status 仍需要进入和离开时间戳、历史窗口、日历和时长格式。

表格筛选会删除 QA 列吗?

表格筛选从当前网格中移除可见行,可能隐藏唯一具有 QA 值的行;已发现的列本身仍属于列配置问题。如果表头完全不存在,应检查范围、计算历史和 Columns Manager。

为什么 Saved Report 之后又缺少某个状态列?

Saved Report 保存配置,不保存冻结结果。当前 Jira 工作项范围、权限、状态历史或工作流名称可能已经变化。应使用一个包含已知证据的小范围重新运行,并与已保存配置比较。

应该修改 Jira 工作流来恢复这一列吗?

通常不应该。如果已知工作项确实进入过 QA,应先修正报表范围、历史窗口或可见性。只有预期流程本身确实缺少 QA 时才修改工作流,不能把工作流修改当成报表变通办法。

相关指南

用证据恢复状态列,而不是靠猜测

使用 StatusPath Reports 重新运行包含已知 QA 区间的最小范围,核对时间戳,然后选择已发现的 QA 列。按照表格视图:动态列、Columns Manager 和筛选保存可审核的列配置,并确保最终结果与 Jira History 一致。

截图预览