LBAPI 没有 FormattedID 字段。您使用 _UnformattedID 是正确的。它是不带前缀的 FormattedID。例如,这个查询:
https://rally1.rallydev.com/analytics/v2.0/service/rally/workspace/1111/artifact/snapshot/query.js?find={"_ProjectHierarchy":2222,"_TypeHierarchy":"PortfolioItem/Feature","State":"Developing",_ValidFrom: {$gte: "2013-06-01TZ",$lt: "2013-09-01TZ"}},sort:{_ValidFrom:-1}}&fields=["_UnformattedID","Name","State"]&hydrate=["State"]&compress=true&pagesize:200
显示对应于 FormattedID 的 _UnformattedID,如下图所示:
我注意到您正在使用fields
and fetch
。根据LBAPI 的文档,它使用fields
而不是fetch
. 如果要获取所有字段,请使用fields=true
至于缺少的自定义字段,请确保自定义字段值是在查询日期内设置的。
比较这些几乎相同的查询:第一个查询不返回自定义字段,第二个查询返回。
查询 #1:
https://rally1.rallydev.com/analytics/v2.0/service/rally/workspace/1111/artifact/snapshot/query.js?find={"_ProjectHierarchy":2222,"_TypeHierarchy":"PortfolioItem/Feature","State":"Developing",_ValidFrom: {$gte: "2013-06-01TZ",$lt: "2013-09-01TZ"}}}&fields=["_UnformattedID","Name","State","c_PiCustomField"]&hydrate=["State","c_PiCustomField"]
查询 #2:
https://rally1.rallydev.com/analytics/v2.0/service/rally/workspace/11111/artifact/snapshot/query.js?find={"_ProjectHierarchy":2222,"_TypeHierarchy":"PortfolioItem/Feature","State":"Developing",__At: "current"}&fields=["_UnformattedID","Name","State","c_PiCustomField"]&hydrate=["State","c_PiCustomField"]
第一个查询使用时间段:_ValidFrom: {$gte: "2013-06-01TZ",$lt: "2013-09-01TZ"}
第二个查询使用__At: "current"
假设我只是在 PortfolioItem 上创建了一个新的自定义字段。无法在 PorfolioItem/Feature 上创建自定义字段,因此该字段是在 PI 上创建的,但两个查询仍然使用"_TypeHierarchy":"PortfolioItem/Feature"
.
在我创建了这个名为 PiCustomField 的自定义字段后,我为特定功能 F4 设置了该字段的值。
第一个查询没有包含该字段的单个快照,因为该字段在我们回顾的时间段内不存在。我们无法改变过去。
第二个查询为 F4 返回此字段。它不会为其他功能返回它,因为所有其他功能都没有设置此字段。
这是屏幕截图: