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

Jira 状态重命名和本地化后如何核对工作流报表

Jira 状态被重命名或翻译后,核对报表时应把 ID(而不是可见标签)作为状态身份。重命名会改变状态对象的当前名称;翻译会改变按用户语言返回或渲染的标签;删除后重建或替换状态则会产生新的身份。StatusPath 可以为不同的同名状态分别计算列,但当前表格和导出表头会重复可见标签,并不会显示 Jira 状态 ID。不能把表头文字本身当作审计身份依据。

区分状态身份和显示标签

状态标签回答“现在显示什么文字”,状态 ID 回答“哪个 Jira 状态对象产生了这项指标”。状态重命名、Jira 按语言显示翻译,或两个状态对象使用相同当前名称时,这两个问题就会分开。

Atlassian 说明,重命名状态会更新所有使用该共享状态的工作流和空间。Jira 也支持工作流状态翻译,缺少对应翻译时会使用默认值。Atlassian 的本地化状态 REST 示例表明,同一个稳定 id 可以具有随用户语言变化的 name,并同时返回 untranslatedName。因此,可见标签不能作为跨项目的稳定关联键。

变更 状态 ID 可能变化的内容 报表处理
重命名 相同 当前默认名称 保留指标身份,更新记录标签
翻译 相同 用户语言下的 name 保留指标身份,记录审核语言
删除后重建或替换 不同 身份和历史映射 视为新状态,并核对两个 ID

修改报表前,先使用以下判断表:

证据 含义 报表处理
状态 ID 相同,当前标签改变 同一个 Jira 状态对象有了新的显示名称 保留一个指标身份,并更新记录中的标签
状态 ID 相同,不同语言查看者看到不同标签 同一个状态按语言显示不同文字 保留一个指标身份,并记录审核时使用的语言
状态 ID 不同,当前标签相同 两个不同 Jira 状态对象看起来相同 保留两项指标,并保留 ID 到工作流的映射
预期状态 ID 没有计算值 可能是范围、历史或列发现问题 使用状态列缺失排查指南

Atlassian 的工作流状态 REST 文档使用 id 和 name 共同描述状态。文档还特别提醒:一个名称可能被多个状态使用,需要精确结果时应优先使用 ID。

真实 Jira 场景:两个不同状态现在都叫 Review

假设一份跨项目 Time in Status 报表包含两个工作项。Platform 工作流的状态 ID 为 10012,记录的转换区间中标签是 Peer Review,当前状态目录中的名称则是 Review。Storefront 工作流使用另一个独立状态,ID 为 10013,当前名称也为 Review。

固定报表配置如下:

设置 值
Source key in (PLAT-1, SHOP-1) ORDER BY key ASC
Report Time in Status
Calendar All time (UTC)
Format Decimal Hours
History 完整历史
状态选择 ID 10012 和 10013

相关 Jira 证据为:

工作项 项目 区间中的状态 ID 区间记录的标签 当前目录标签 UTC 区间
PLAT-1 Platform 10012 Peer Review Review 7 月 22 日 09:00–11:00
SHOP-1 Storefront 10013 Review Review 7 月 22 日 10:00–14:00

Jira 工作项的 Activity → History 会记录字段编辑和工作流移动。应检查实际 changelog 记录,以及集成能够取得的状态 ID;不要假设每一种 Jira 历史界面都会始终以相同形式保留旧标签。

中文 StatusPath Time in Status 表格显示两个都叫评审的独立状态列
中文表格保留两个独立计算列,但两个可见表头都显示为评审。
英文 StatusPath Time in Status 表格显示两个都叫 Review 的独立状态列
英文表格的两个可见表头都显示 Review,而 2.00 与 4.00 的计算单元格仍保持分开。

可见标签随语言变化,而计算时长保持不变。这两张截图不能证明 StatusPath 会显示底层 ID:当前版本不会在冲突表头中追加 ID,CSV/XLSX 导出也可能包含重复状态标签。如果结果需要脱离报表单独作为审计证据,应在 Jira 中使用不同的状态名称,或随导出文件保存经过审核的 ID 到列映射。

人工验算两个状态列

使用 All time (UTC) 时,每个时长都是直接相减:

PLAT-1,状态 10012 = 2026-07-22 11:00Z - 2026-07-22 09:00Z
                      = 2 小时

SHOP-1,状态 10013 = 2026-07-22 14:00Z - 2026-07-22 10:00Z
                      = 4 小时

预期指标矩阵如下:

工作项 状态 10012(可见标签:Review) 状态 10013(可见标签:Review) 行总计
PLAT-1 2.00 - 2.00
SHOP-1 - 4.00 4.00
列总计 2.00 4.00 6.00

横线表示该工作项在这个独立状态 ID 下没有可计算区间,不表示一次零时长停留。人工验算中的 6.00h 小计只是交叉检查(2.00h + 4.00h),报表不会按名称自动合并两个 ID 列;只有明确建立并审核报表状态组时才应组合。Time in Status 区间计算指南说明了进入时间、离开时间、Calendar 和历史窗口规则。

逐步核对重命名或本地化状态

1. 按 ID 获取当前状态目录

在本例中,英文账户与中文账户可以为同一个 ID 得到不同的 name:

英文 /rest/api/3/status → {"id":"10012","name":"Review","untranslatedName":"Review"}
中文 /rest/api/3/status → {"id":"10012","name":"评审","untranslatedName":"Review"}

应使用已认证的 Jira 站点响应,并同时记录工作流或项目上下文。Atlassian 说明 REST 结果会反映请求账户的语言。状态查询还受 Jira 权限和工作流使用情况影响;工作流状态 API 对相关操作记录了 Browse projects 权限与活动工作流限制。重名正是待排查问题时,不要使用只含名称的查询:Atlassian 提醒这可能只解析第一个匹配,而 ID 是精确键。

2. 证明转换证据

打开每个代表性工作项的 Activity → History,记录转换时间戳、可以取得的状态 ID、显示标签和查看者语言。先用不依赖状态名称的 JQL 固定工作项范围:

key in (PLAT-1, SHOP-1)
ORDER BY key ASC

Atlassian 当前的 JQL 字段参考与 JQL 运算符参考对历史状态 ID 匹配的说明并不一致。因此本例只用 key 固定工作项范围,用 REST/changelog ID 核对身份;JQL 不计算时长。

3. 固定计算输入

保持 JQL 范围、Calendar、Format、工作项日期范围、Trim History 边界和报表时间不变,并同时选择两个状态身份。只对比名称,无法区分标签变化与数据范围或计算变化。

4. 先核对 ID,再核对标签

先把每个指标列映射到 Jira 状态 ID,再显示或记录当前标签。审核本地化结果时,还应记录每张截图或审批所用的 Jira 语言。不要通过手工替换指标列来“翻译”ID 到状态的映射。

5. 保存可审核的映射

在 Saved Report 旁保留简短清单:

状态 ID 英文标签 中文标签 相关项目或工作流
10012 Review 评审 Platform
10013 Review 评审 Storefront

StatusPath 表格视图文档说明了动态指标列、可见性、筛选,以及缺失值和显示零值之间的差异。当同名表头可能产生歧义时,应把这份映射与已审核配置一起保存。由于当前表格与导出都不显示 ID,不能把列顺序或重复表头当作可独立使用的长期证据。

常见错误

按可见表头合并列

两个名为 Review 的列可能属于不同状态 ID。只有当报表问题明确要求跨工作流状态组,并且审核者批准映射时,才应组合它们。

假设当前表头或导出能够标识状态 ID

不能。当前表格和导出遇到同名状态时可能出现重复表头。应使用 Jira 状态目录和经过审核的映射;如果导出文件必须能够独立识别,应先让 Jira 状态名称保持不同。

把翻译当成新的工作流步骤

本地化标签可能只是同一个状态身份的另一种显示文字。添加另一项指标或认定 Jira 又记录了一次转换前,应先检查 ID。

使用只包含名称的 REST 查询

名称重复时,ID 才是精确键。Atlassian 提醒,按名称查询可能只返回第一个匹配状态。

假设旧标签始终可见

本例中受控的 PLAT-1 changelog 区间包含 Peer Review,但这不能证明 Jira 在所有情况下都遵循同一种存储或显示规则。应检查本站点的实际 History 或 changelog 响应,并保留观察到的证据。

期待 JQL 计算时长

JQL 可以固定候选工作项,但在本次核对中不是状态身份依据。Time in Status 还需要经过验证的状态 ID、进入和离开时间、历史边界与 Calendar。

把同名列误判为缺失列

如果两个底层 ID 和数值都存在,问题是标签歧义,而不是列发现。如果某个预期 ID 完全没有对应列,再按照独立的缺失列流程排查。

常见问题

重命名 Jira 状态会创建新的状态 ID 吗?

不要根据新标签推断身份。应在变更前后获取 ID:ID 相同表示现有状态对象换了名称;ID 不同则表示正在比较不同状态。

两个 Review 列一定是重复列吗?

不一定。本例中的 ID 10012 和 10013 彼此独立。决定两个指标是否回答同一个业务问题前,应核对 ID、工作流和代表性历史。

StatusPath 会在同名状态列表头中显示 Jira 状态 ID 吗?

当前版本不会。计算可以保持分开,但重复可见标签仍有歧义。当输出必须自带身份信息时,应保存外部映射或使用不同的 Jira 状态名称。

本地化会改变计算时长吗?

仅翻译标签不会改变转换发生的时间。时长变化应从工作项范围、进入或离开时间戳、Calendar、历史边界或报表时间中排查,不能在没有证据时归因于翻译文字。

JQL 能区分同名状态吗?

同名状态核对不能只依赖 JQL。Atlassian 当前的字段与运算符参考对历史 ID 匹配的说明并不一致,因此应用 JQL 固定工作项范围,再用 REST 或 changelog ID 与工作流上下文核对身份;实际时长仍需另外计算。

如果 Jira History 没有显示旧名称怎么办?

不要凭记忆重建。记录当前 ID 和标签,检查可以取得的 changelog 证据;审计确实需要旧标签时,再使用经过批准的工作流变更记录。

相关指南

把身份依据和可见标签保存在一起

使用 StatusPath Reports,在你的 Jira 权限范围内复现双 ID 核对,并把状态映射与审核后的报表一起保存。根据表格视图文档设置可见列;准备好用自己的 Jira History 验证重命名或本地化状态时,可在 Atlassian Marketplace 试用 StatusPath Reports。

截图预览