繁体   English   中英

提取无法跨用户,迭代和项目获取的缺陷

[英]fetch for defects not fetching across user, iteration, and project

我已经研究并尝试了所有可以想到的东西,以尝试检索Iteration,Project和User列的实际值,但是我永远无法获得要填充的列数据,例如迭代名称,项目名称,以及用户提交的名称。 我读过,按我的方式进行抓取应该没问题,其他人则说过,您必须用类似这样的方式指定类型

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

当我这样做时,我永远不会加载网格。 我已经按照一些人的建议尝试过这种事情

defect.Iteration.Name

要么

Iteration.Name

我真的可以在这里使用一些帮助。 我还读了一篇文章,说WSAPI不再支持这种请求,必须在多个查询/提取中进行处理。 任何人,这是我正在使用的代码...

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);

为了使此功能按您的意愿工作,需要做一些事情:

  1. 您可以递归地获取一个深度。 因此,如果您想获取缺陷的名称,格式化的ID和项目名称,则获取将类似于:
  2. 提取:“名称,FormattedID,项目,名称”
  3. 通过rallyDataSource.findAll()抓取数据
  4. 对数据进行后处理,以便将所有字符串数据输入表中。 即,像“项目”这样的“对象对象引用”字段,改为使用“项目名称”。
  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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM