Jira看板任务状态无法自动流转怎么办?

西门凌萓 阅读 32

大家好,我在用Jira做敏捷开发时遇到个问题:设置好自动化规则后,任务从“进行中”转到“待测试”的状态一直没触发。之前按教程配置了“当问题更新时,如果完成率是100%,则更新状态为待测试”,但手动把完成率改到100%后还是没反应……

试过清空浏览器缓存、检查字段名称是否匹配,甚至重新创建规则,但都没用。有人遇到过类似情况吗?是不是需要额外勾选什么权限?或者Jira的自动化规则生效有延迟?

附上规则配置片段:issue.update("status", "待测试"); 但系统提示说找不到该状态?可状态确实存在于看板的工作流程里……

我来解答 赞 8 收藏
二维码
手机扫码查看
2 条解答
Newb.之芳
你这个配置应该是工作流状态名称不一致导致的。Jira自动化规则里写状态要严格匹配工作流定义里的名称,特别是中文环境下经常有全角半角不一致的问题。比如你工作流里实际状态名如果是“待測試”(全角),但规则里写的是“待测试”(半角),就会报错说找不到状态。

你可以试试下面这个脚本,直接用这个:

if (issue.fields.status.name === "进行中" && issue.fields.progress.percent === 100) {
issue.update("status", "待測試"); // 注意这里用全角字符
}


另外,建议你先在Jira后台的【工作流】页面里,把对应看板的完整工作流导出看一遍,确认每个状态的实际名称和ID。特别是如果你之前修改过工作流,但没发布的话,规则也会找不到状态。

还有个可能:你的自动化规则触发时机不对。别用“当问题更新时”,改用“当问题被修改时”(Issue is modified),然后加个延迟判断,比如等5秒再执行状态转换。有时候前端改完字段还没提交完成,规则就触发了,读不到最新的字段值。

最后,Jira的自动化确实会有延迟,尤其是在高并发的云版本上,但一般不会超过一分钟。你要是等了好久还不行,应该还是配置问题,不是延迟问题。
点赞 4
2026-02-05 17:11
ლ沐阳
ლ沐阳 Lv1
这个问题我也踩过坑。你那个状态“待测试”可能在工作流里存在,但不在你当前项目的状态机里。Jira自动化规则不会自动识别看板上的状态,它只认项目自己的状态列表。

直接用下面这段代码前,先确认几点:

1. “待测试”状态必须属于当前项目的可用状态。
2. 你执行的自动化规则时,确保项目上下文是对的(比如是看板项目还是其他类型项目)。
3. 确保字段“完成率”是正确的字段 ID,例如 progresscustomfield_xxxxx

可以改用如下方式尝试:

issue.setStatus("待测试");
issue.store();


或者用更明确的状态 ID 方式设置:

def status = ComponentAccessor.getWorkflowManager().getWorkflow(issue).getLinkedStatusObject("待测试");
issue.setResolution(status);
issue.store();


如果提示找不到状态,去【项目设置】-【工作流】里确认“待测试”是否真的绑定到了当前的看板列,并且在状态管理里是激活状态。另外,Jira自动化确实会有延迟,但通常不会超过几分钟,如果超过这个时间还没反应,那基本就是配置问题。

我建议你先用系统管理员账号测试一次,排除权限影响。最后,可以考虑用 Jira 的自动化日志调试功能,看具体哪一步失败了。
点赞 5
2026-02-04 14:14