2012-11-08 22 views
1

我研究並嘗試了所有可以考慮的方法來嘗試檢索迭代項目和用戶列的實際值,但我無法獲取列數據以填充迭代名稱,項目名稱和用戶提交的名稱。我已閱讀,它應該是罰款在做取我的方式和其他人說,你必須有這樣的事情獲取不會在用戶,迭代和項目中獲取的缺陷

types : ['defect','user','iteration','project'], 

指定類型。當我這樣做,我不永遠載入我的網格。我已經試過這樣的事情所推薦的一些

defect.Iteration.Name 

OR

Iteration.Name 

我真的可以使用一些幫助在這裏。我還讀過一篇文章,說WSAPI不再支持這種請求,必須在多個查詢/提取中處理。 Anywho,這裏是我使用的代碼...

function onLoad() { 
var rallyDataSource = new rally.sdk.data.RallyDataSource(
       '__WORKSPACE_OID__', 
       '__PROJECT_OID__', 
       '__PROJECT_SCOPING_UP__', 
       '__PROJECT_SCOPING_DOWN__'); 
var config = { 
       type : 'defect', 
       key : 'defects',  
       columnKeys : ["FormattedID", "Name", "Priority125", "Iteration", "Project", "SubmittedBy", "CreationDate", "ScheduleState", "State"], 
       fetch : 'FormattedID,Name,Priority125,Iteration,Project,SubmittedBy,CreationDate,ScheduleState,State', 
       query : '((State != "Closed") OR (ScheduleState != "Accepted"))', 
       order : 'Priority125' 
       }; 
var table = new rally.sdk.ui.Table(config, rallyDataSource); 
table.display("tableDiv"); 
} 
rally.addOnLoad(onLoad); 

回答

0

還有如你想需要爲了得到這個工作幾件事情:

  1. 您可以遞歸獲取高達一個深度的水平。因此,如果您想抓取缺陷的名稱,格式化ID和項目名稱,您的提取將如下所示:
  2. 提取:「Name,FormattedID,Project,Name」
  3. 通過rallyDataSource.findAll()獲取數據
  4. 後處理數據,以便爲表格提供所有字符串數據。即像Project一樣的clobber對象引用字段,而不是Project Name。
  5. 最後,填充並顯示錶格。

下面是一個工作示例,說明了我認爲您想要做的事(減去您定義的「Priority 125」自定義字段)。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<!-- Copyright (c) 2011 Rally Software Development Corp. All rights reserved --> 
<html> 
<head> 
    <title>Defect Information</title> 
    <meta name="Name" content="Defect Information" /> 
    <meta name="Version" content="1.32" /> 
    <meta name="Vendor" content="Rally Software" /> 

    <script type="text/javascript" src="https://rally1.rallydev.com/apps/1.32/sdk.js?debug=True"></script> 
    <script type="text/javascript"> 

     var rallyDataSource = null; 
     var table = null; 

     function showTable(results) { 

      if (table) { 
       table.destroy(); 
      } 

      var tableConfig = { 
       columnKeys : ["FormattedID", "Name", "Iteration", "Project", "SubmittedBy", "CreationDate", "ScheduleState", "State"], 
       columnWidths : ["85px",  "350px", "90px",  "100px", "100px",  "120px",   "100px",   "100px" ] 
      }; 

      table = new rally.sdk.ui.Table(tableConfig); 

      // Loop through the rows and clobber object attributes of the results collection with 
      // string values 
      for(var i = 0; i < results.defects.length; i++){ 

       thisDefect = results.defects[i]; 

       var iterationName = ""; 
       // Grab value fields 
       if (thisDefect.Iteration != null) { 
        iterationName = results.defects[i].Iteration.Name; 
       } else { 
        iterationName = "Un-scheduled"; 
       } 
       var projectName = thisDefect.Project.Name; 

       // Re-map SubmittedBy object to SubmittedBy string 
       submittedByDisplayName = thisDefect.SubmittedBy === null ? "": thisDefect.SubmittedBy._refObjectName;     

       // Clober objects with values 
       results.defects[i].Iteration = iterationName; 
       results.defects[i].Project = projectName; 
       results.defects[i].SubmittedBy = submittedByDisplayName; 
      } 

      table.addRows(results.defects); 
      table.display(document.getElementById('defectsDiv')); 
     } 


     function onLoad() { 
      rallyDataSource = new rally.sdk.data.RallyDataSource(
        '__WORKSPACE_OID__', 
        '__PROJECT_OID__', 
        '__PROJECT_SCOPING_UP__', 
        '__PROJECT_SCOPING_DOWN__'); 

      var config = { 
       type : 'defect', 
       key : 'defects',  
       fetch: 'FormattedID,Name,SubmittedBy,Iteration,Name,Project,Name,CreationDate,ScheduleState,State', 
       query : '((State != "Closed") OR (ScheduleState != "Accepted"))', 
      }; 
      rallyDataSource.findAll(config, showTable); 
      rallyDataSource.setApiVersion("1.38"); 
     } 

     rally.addOnLoad(onLoad); 

    </script> 

</head> 
<body> 
<div id="aDiv"></div> 
<div style="font-weight: bold;"><p>Defects</p></div> 
<div id="defectsDiv"></div> 
</body> 
</html> 
+0

完美的工作。在此api上學到的經驗教訓,感謝您的全力幫助! – balfred