2015-11-19 22 views
0

我想創建一個可導出到CSV網格應用程序的拉力來顯示依賴關係。但我沒有得到我期望的使用商店的SDK 2的結果。我發現了一箇舊版SDK 1應用程序,它返回了我正在查找的內容。在SDK中的拉力賽查詢1 vs在SDK中的商店2

我不知道我需要做什麼讓前輩展示。我所得到的只是數據對象中商店的計數。我經歷過很多次文檔,並且被卡住了。

var dependencydata = Ext.create('Rally.data.wsapi.Store', { 
 
    model: 'hierarchicalrequirement', 
 
    autoLoad: true, 
 
    
 
     listeners: { 
 
     load: function(dependencydata, data, success) { 
 
      //process data 
 
      console.log("Woot Data !",dependencydata, data, success); 
 
      this.loadgrid(dependencydata); 
 
     }, 
 
     scope: this 
 
    }, 
 
    fetch: ['Rank','FormattedID','Name','Predecessors','Successors','Project','ScheduleState'] 
 
});//end Store

結果是

數據

FormatId 12345

布拉赫

前身

計數2

我需要的是

數據

FormatId 12345

胡說

前身

object 

    Array 

    FormatId 45637 

在SDK 1它會一直做這樣的我想

var queryConfig = { 
 
        type : 'hierarchicalrequirement', 
 
        key : 'stories', 
 
        fetch: 'Rank,FormattedID,Name,Predecessors,Successors,Project,ScheduleState', 
 
        query: '(Release.Name = "' + relDropdown.getSelectedName() + '")', 
 
        order: 'Rank' 
 
       }; 
 
       rallyDataSource.findAll(queryConfig, showUserStoriesTable); 
 
      } 
 
    
的WSAPI

回答

1

2.0其中使用由SDK 2不允許水合集合在一個請求等V1.0那樣。

幸運的是,有在處理這個確切的主題文檔指南: https://help.rallydev.com/apps/2.0/doc/#!/guide/collections_in_v2

你的情況稍微複雜一些,因爲你需要加載2個集合每個故事(前輩和接班人)

所以這樣的事情應該工作:

//keep track of all the pending collection loads 
var promises = []; 

Ext.create('Rally.data.wsapi.Store', { 
    model: 'UserStory', 
    fetch: ['Rank','FormattedID','Name','Predecessors','Successors','Project','ScheduleState'], 
    autoLoad: true, 
    listeners: { 
     load: function(store, records) {    
      _.each(records, function(story) { 
       //create the stores to load the collections 
       story.predecessorStore = story.getCollection('Predecessors'); 
       story.successorStore = story.getCollection('Successors'); 

       //load the stores and keep track of the load operations 
       promises.push(predecessorStore.load({fetch: ['FormattedID']})); 
       promises.push(successorStore.load({fetch: ['FormattedID']})); 
      }); 

      //wait for all promises to finish 
      Deft.Promise.all(promises).then({ 
       success: function() { 
        //all data loaded. 
        console.log(records[0].predecessorStore.getRange()); 
        console.log(records[0].successorStore.getRange()); 
       } 
      }); 
     } 
    } 
}); 

注意這將產生一噸的請求,所以最好限制在通過FIL根店的故事總數TER值。

+0

謝謝,我會稍後再試試這個晚上。猜猜我不應該嘗試從樹的頂端拉36000 +故事的頂部故事的整個集合:-) – Scrummando

+0

感謝您的幫助,我已經能夠得到這個與上面的代碼一起工作。現在我正在努力將此傳遞給網格。我需要我想,將需要拼接記錄[0]與記錄[0] .predecessor顯示在一行。在網格上。 – Scrummando

+0

您需要使用具有渲染器功能的自定義列定義。因此,將這樣的內容傳遞給網格中的columnCfgs: {dataIndex:'Successors',text:'Dependencies',renderer:function(value,metaData,record){//使用record.predecessorStore和record.successorStore返回您希望在單元格中顯示的HTML}} –