RPM层次结构范围的不一致

时间:2013-01-09 00:51:18

标签: rally

我正在创建一个RPM树,可用于从RPM层次结构的不同级别选择叶子故事。

通过使用here描述的方法,我能够关闭到所需的功能,但是在每个级别返回的叶子故事的数量似乎有些不一致。 RPM。

下图显示了树(项目名称出于隐私目的而覆盖)。黄色徽章显示在RPM层次结构级别下面找到的叶子故事数。从图像中可以看出,数字不一致。 (该倡议下方显示了23个叶子故事,其中一个汇总显示44个。)事实上,Rollup下面有44个叶子故事,因此问题似乎来自于在倡议层面的查询。

enter image description here

这是我写的函数,它用于返回所选RPM节点下叶子故事的所有OID数组:

                   function getDescendants(OID, callback) {
                        Ext.create('Rally.data.lookback.SnapshotStore', {
                            autoLoad: true,
                            pageSize: 1000000,
                            fetch: ['ObjectID'],
                            filters: [
                                { property: '_ItemHierarchy', value: OID                       },
                                { property: 'Children',       value: null                      },
                                { property: '__At',           value: new Date().toISOString()  },
                                { property: '_TypeHierarchy', value: 'HierarchicalRequirement' }
                            ],
                            listeners: {
                                load: function(model, data, success) {
                                    if (data && data.length && success) {
                                        var descendants = [];
                                        Ext.Array.each(data, function(story) {
                                            descendants.push(story.get('ObjectID'));
                                        });
                                        callback(Ext.Array.unique(descendants));
                                    } else {
                                        callback([]);
                                    }
                                }
                            }
                        });
                    }

1 个答案:

答案 0 :(得分:2)

该查询对我来说是正确的。我认为您遇到了Lookback API数据流中存在的已知缺陷。流中的问题已得到纠正,但返回并纠正错误历史记录的工作仍在团队积压中。如果要跟踪支持的进度,缺陷的ID为DE15647。

解决方法(因为您只查询当前数据)是取消父级和重新父级受影响的项目。

对不起。

编辑:关于问题的更多细节 - 在一段时间内,无论何时创建PortfolioItem(策略,主题,功能,主动)并同时设置其父项,Lookback API服务都没有获得通知新的PortfolioItem的父母。此问题现已解决,但旧数据仍有待修复。您可以通过查找具有空父字段的_ItemHierarchy中的PI来搜索可能存在此问题的PI。

要获得具有空父母(可能的孤儿)的PI:

fetch: ['ObjectID', '_ValidFrom', '_ValidTo'],
filters: [
    { property: '_ItemHierarchy', value: OID }, // only include this if you're limiting to a sub-hierarchy
    { property: '_TypeHierarchy', value: 'PortfolioItem' },
    { property: 'Parent', value: null },
    { property: '__At', value: 'current' }
]

对于这些“孤儿”中的每一个,检查一下将其作为孩子的父母:

fetch: ['ObjectID'],
filters: [
    { property: 'Children', value: currentChild.ObjectID },
    { property: '_TypeHierarchy', value: 'PortfolioItem' },
    { property: '_ValidFrom', operator: '<=' value: currentChild._ValidFrom.toISOString() },
    { property: '_ValidTo', operator: '>' value: currentChild._ValidFrom.toISOString() }
]

对于每一个,如果您找到声明孩子的父母(在创建孩子时),您知道您有一个受此问题影响的快照,并且可以通过在ALM中清除其父级来修复它,保存,然后重置其父级并再次保存。我在第一次检查中包含__At:'current',因为孤立的PI有可能在以后分配了不同的父级,并且您不希望覆盖它。希望这会有所帮助。