如何获取Rally自定义HTML报表Timebox筛选器的选中Release标识
Rally自定义HTML组件获取Timebox筛选器选中Release值方案
- 你当前使用
PROJECT_OID获取项目ID的逻辑属于Rally报表运行时上下文的全局参数调用,同层级已经暴露了Timebox筛选器的选中值,不需要额外解析DOM或者调用未公开的内部变量。 - 标准获取方式(适配v2.0及以上版本SDK,和
PROJECT_OID兼容性一致):
直接在自定义组件的Javascript代码中调用全局上下文rallyContext的内置方法,即可拿到选中Release的完整属性:
拿到唯一ID后可以替换你原来的名称模糊匹配逻辑,避免同项目下重名Release导致的查询错误,优化后的API查询示例:// 获取当前Release筛选器选中的对象 const activeRelease = rallyContext.getTimeboxFilter('release'); // 常用字段 const releaseUniqueId = activeRelease.ObjectID; // Release全局唯一ID,API过滤优先用这个 const releaseName = activeRelease.Name; // Release显示名称 const releaseApiRef = activeRelease._ref; // 可直接调用的API资源路径/slm/webservice/v2.0/release/?query=(ObjectID = {{releaseUniqueId}})&fetch=Name,PlannedVelocity,PlanEstimate - 旧版兼容方案:如果你的报表运行在v2.0以下旧版SDK环境,
rallyContext对象不存在时,可以通过dashboardContext对象取值:const activeRelease = dashboardContext.getTimeboxSelections().release;
调试技巧:你可以在自定义JS中临时添加
console.log(rallyContext)代码,打开浏览器开发者工具控制台,就能看到当前上下文暴露的所有可用参数,包括迭代、里程碑等其他筛选器的选中值,和你获取PROJECT_OID的调用逻辑完全同源。
注意:不建议用Name contains的方式做Release过滤,同项目下可能存在同名不同周期的Release,用ObjectID做精确匹配是官方推荐的写法,查询性能也更高。
内容的提问来源于stack exchange,提问作者mmills9
相关产品推荐
相关产品推荐

