在日常使用 Jira 进行敏捷项目管理时,开发团队经常需要创建动态筛选器来跟踪当前迭代的工作进展。传统硬编码迭代名称的方式存在明显缺陷:每当新迭代启动时,管理员都必须手动更新筛选条件。本文将深入探讨 JQL 语言中迭代筛选的最佳实践及其现存限制。
一、动态筛选的核心方案
通过 Jira Agile 6.6 及以上版本提供的 openSprints() 函数,用户可以实现动态迭代筛选。基础语法为:
Project = WA AND sprint IN openSprints()
此方法通过调用系统内置函数自动识别处于”开放”状态的迭代,无需手动维护迭代名称。但需特别注意两点:
- 该功能仅适用于 Jira Agile 6.6+ 版本(官方文档可参考 Atlassian 知识库)
- “开放”状态的定义包含活跃迭代和未开始的未来迭代
二、现有方案的局限性
多位用户在实践验证中发现,openSprints() 函数会同时返回以下两类迭代:
- 当前正在进行中的活跃迭代
- 已创建但尚未启动的未来迭代
某开发团队尝试通过组合查询排除未来迭代:
sprint IN openSprints() AND sprint NOT IN futureSprints()
但实际测试表明 futureSprints() 函数存在识别偏差,其定义与用户预期的“非当前/已关闭迭代”存在差异,导致过滤效果不稳定。
三、改进建议
针对当前方案的不足,Jira 用户社区提出了多个增强建议:
1. currentSprint()函数
最受期待的解决方案,可直接返回当前活跃迭代。超过5个独立团队在讨论中明确支持该提案,某 Web 团队在2023年Q4的需求报告中特别强调了该功能必要性。
2. 多维迭代控制函数
进阶提案建议引入更精细的函数体系:
- newestOpenSprint():基于迭代开始时间返回最新开放迭代
- oldestOpenSprint():识别最早开放的迭代
- currentActiveSprints():与 Scrum 看板的“Active Sprints”视图保持同步
四、临时解决方案建议
在官方功能更新前,推荐采用以下过渡方案:
- 通过 REST API 定期获取当前迭代 ID
- 使用脚本自动更新筛选器条件
- 结合迭代开始/结束日期进行辅助过滤:sprint IN openSprints() AND startDate <= now() AND endDate >= now()
五、版本兼容性注意事项
实施动态筛选时需特别注意:
- Jira Software 8.0+ 版本优化了迭代状态追踪机制
- 云版本与本地部署版本的函数支持范围存在差异
- 使用 Board Filter 模式可能获得更准确的活跃迭代识别
当前 JQL 在迭代筛选方面已具备基础动态处理能力,但要实现精准的当前迭代识别仍需依赖外部工具或等待功能更新。建议用户关注 Atlassian 官方路线图,同时积极参与社区提案投票以推动 currentSprint() 等函数的开发进程。对于时效性要求极高的团队,建议建立迭代元数据监控体系,通过自动化脚本桥接现有函数的功能缺口。
六、ONES 提供 Jira & Confluence 迁移解决方案
ONES 作为国内领先的企业级研发管理平台,从需求管理、迭代跟进到测试,能够帮助企业高效响应、高质量交付,实现端到端的软件研发管理。ONES 还提供了筛选器组件,可以利用多种筛选条件,帮助用户更加精确地将想要查看和管理的工作项筛选出来。每个用户可以建立多个筛选器和视图,满足不同的工作需求。

如果您有 Jira & Confluence 迁移需求,可点击下方链接免费获取《企业级研发管理系统迁移指南》,希望这份指南能够帮助您评估和选择最适合您团队的迁移方式。
>>> 免费获取《企业级研发管理系统迁移指南》:https://ones.cn/migration/guide
阅读指南还可获取:
Jira 和 ONES Project 功能对比表
Confluence 和 ONES Wiki 功能对比表
从 Jira 到 ONES Project 的数据迁移效果图
从 Confluence 到 ONES Wiki 的数据迁移效果图