2015-04-01 69 views
1

我正在嘗試使用App SDK 2.0創建里程碑報告,並希望查找已分配給里程碑的所有用戶故事。如何查詢里程碑的所有工件

我試圖使用getCollection從里程碑中提取工件。

Ext.create('Rally.data.wsapi.Store', { 
    model : 'Milestone', 

    filters : [ { 
     property : 'ObjectID', 
     operator : '=', 
     value : milestone.get("ObjectID") 
    } ], 
    fetch : [ 'Artifacts' ], 
    limit : Infinity, 
    autoLoad : true, 
    listeners : { 
     load : function(store, records) { 
      var record = records[0]; 
      var info = record.get('Artifacts'); 
      var count = info.Count; 
      record.getCollection('Artifacts').load({ 
       fetch : [ 'ObjectID' ], 
       callback : function(records, operation, success) { 
        Ext.Array.each(records, function(artifact) { 
         console.log(artifact.get('ObjectID')); 
        }); 
       } 
      }); 
     } 
    } 
}); 

我得到以下錯誤:

Uncaught Rally.data.ModelFactory.getModel(): Could not find registered factory for type: Artifact sdk-debug.js:7078

https://rally1.rallydev.com/slm/doc/webservice/,它似乎並不認爲是里程碑查詢能夠在用戶故事或PortfolioItem。無論如何,我嘗試使用任務語法,並沒有返回任何內容。

Ext.create('Rally.data.wsapi.Store', { 
    model : 'UserStory', 
     filters : [ { 
     property : 'Milestones', 
     operator : 'contains', 
     value : milestone.get("_ref") 
    } ], 
    fetch : [ 'ObjectID' ], 
    limit : Infinity, 
    autoLoad : true, 
    listeners : { 
     load : function(store, records) { 
      console.log(records); 
     } 
    } 
}); 

回答

0

在AppSDK2中有一個缺陷,它不適用於抽象類型,例如,工件,UserPermissions。 你的第一個代碼示例遇到了這個缺陷。 但是你的第二個代碼示例必須工作。我懷疑,如果它不適合你,這是一個範圍界定問題。也許你過濾的里程碑不在你所定義的項目中。您可以在商店環境中硬編碼項目參考,以確保它正在正確的項目中查找。我最初測試你的代碼在我的默認項目,並將其作爲進行加工,然後我修改了它如下,以確保找到一個里程碑,在非默認的項目:

Ext.define('CustomApp', { 
    extend: 'Rally.app.App', 
    componentCls: 'app', 
    launch: function() { 
     Ext.create('Rally.data.wsapi.Store', { 
      model : 'UserStory', 
      context:{ 
       project: '/project/16662089077' 
      }, 
      filters : [ 
       { 
        property : 'Milestones', 
        operator : 'contains', 
        value : "/milestone/33215216897" 
       } 
      ], 
      fetch : [ 'ObjectID' ], 
      limit : Infinity, 
      autoLoad : true, 
      listeners : { 
       load : function(store, records) { 
        console.log(records); 
       } 
      } 
     }); 
    } 
}); 
+0

我意識到這是一個老帖子,但是我對模型領域的可接受參數有疑問。從我在指南中讀到的內容以及從Rally API 2.0中看到的內容來看,ObjectModel中的任何內容都可以放在那裏。但是我發現如果你使用UserStory,它就會起作用。你在哪裏可以看到模型的允許值? – 2017-02-14 19:10:18