2013-01-09 60 views
1

我正在創建一個RPM樹,可用於從不同級別的RPM層次結構中選擇葉子故事。RPM層次結構範圍內的不一致性

我是能夠通過使用描述here的方法來獲得接近到所期望的功能,但有似乎是在葉層數某些不一致的RPM的每個級別被返回。

下圖顯示了樹(隱私目的涵蓋的項目名稱)。黃色徽章顯示在RPM層次結構下找到的葉子故事數量。正如你從圖片中看到的那樣,這些數字是不一致的。 (在倡議下方顯示了23個葉子故事,並且在彙總的44個故事之下顯示了44個。)實際上在彙總下有44個葉子故事,所以問題似乎來自於在倡議層面查​​詢。

enter image description here

這裏是我寫的功能,其目的是恢復所有的OID的數組,所選擇的RPM節點下葉的故事:

    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([]); 
            } 
           } 
          } 
         }); 
        } 

回答

2

該查詢看起來是正確的給我。我認爲您遇到了數據流中存在的回傳API中存在的已知缺陷。流中的問題已得到糾正,但返回並糾正錯誤歷史記錄的工作仍在團隊積壓中。如果您想通過支持跟蹤其進展情況,則缺陷ID爲DE15647。

解決方法(因爲您只查詢當前數據)是取消父母和重新保留受影響的項目。

對不起。

編輯:有關此問題的更多詳細信息 - 一段時間內,無論何時創建PortfolioItem(策略,主題,功能,計劃)並且同時設置了其父級設置,Lookback API服務不會得到新的PortfolioItem的父項的通知。這個問題現在已經解決了,但是舊數據仍然需要修復。您可以通過在具有空父字段的_ItemHierarchy中查找可能存在此問題的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有一個不同的父母后來分配,你不想覆蓋這個。希望這可以幫助。

+0

這是一個真正的無賴,雖然它回答了我爲什麼有些故事受到影響而其他人不是。感謝您的加入。 –

+0

快速提問...您的意思是不重新提供RPM級別,用戶故事還是兩者? –

+0

您只需要重新設置RPM級別,因爲它是那些未將其父級設置到流中的父級設置爲Lookback API的級別。 –