rally.sdk.ui.StandardReport.ReleaseDefectTrend使用loginkey不会在Rally之外生成准确的结果

时间:2013-09-20 16:19:03

标签: rally

我正在尝试创建一个发布趋势图表,但如果我在一个拉力赛应用程序中运行代码而不是使用有效的登录密钥在集会之外运行应用程序,我会得到不同的结果。以下是有问题的代码。

在让图表正常工作后,我希望能够显示一些数据子集,类似于Rally中的实际ReleaseDefectTrend图表,可以指定XXX天数/周/月/等。是否有图表配置的设置,允许您这样做。

提前致谢!

            <!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>
            <!-- <script type="text/javascript" src="/apps/1.32/sdk.js?debug=false"></script> -->
            <script type="text/javascript" src="https://rally1.rallydev.com/apps/1.32/sdk.js?loginKey=myvalidloginkeyhere"></script>
            <script type="text/javascript">
                function onLoad() {

            //alert('ProjOID = ' + __PROJECT_OID__);
                   /
                   var rallyDataSource = new  rally.sdk.data.RallyDataSource("myvalidworkspaceID","myvalidprojectID","false","false");
                    var ddown1=document.getElementById("ddown1");
                    var config = { label: "Select a release " };
                    var releaseDropdown = new rally.sdk.ui.ReleaseDropdown(config,rallyDataSource);
                    releaseDropdown.display(ddown1,releaseSelected);

                }


                function releaseSelected(dropdown,eventArgs) {
                    var selectedItem=eventArgs.item;
                    var selectedValue = eventArgs.value;
                    var releaseObjids =  new Array();
                    releaseObjids[1]=selectedItem.ObjectID;
                    displayChart1(releaseObjids[1]);
                }

                function displayChart1(release) {
                    var config = {
                        report: rally.sdk.ui.StandardReport.ReleaseDefectTrend,
                        //itle: 'Technical Debt',
                        width : 600,
                        height: 250,
                        releases: release
                    };
                    alert('chart1 release = ' + release);

                    var report = new rally.sdk.ui.StandardReport(config);
                    var div1=document.getElementById("div1");
                    report.display(div1);
               }

                rally.addOnLoad(onLoad);
            </script>
            </head>
            <body>
            <table border="1">
            <tr>
             <td align="center"><div id="ddown1"></div></td>
            </tr>
            <tr>
             <td><div id="div1"></div></td>
            </tr>
            </table>

            </body>
            </html>

1 个答案:

答案 0 :(得分:0)

看起来代码中没有发布的硬编码对象ID,也没有指定工作空间。所有WS API查询都绑定到工作空间,并且在没有指定工作空间和给定用户的默认值的情况下,无法保证您在Rally中看到的内容在外部是相同的。要缩小此范围,您不需要在此故障排除阶段使用登录密钥。请确保应用程序在Rally之外按预期工作 - 登录密钥只允许您避免登录提示。范围未在您的代码中指定,但应用程序需要从某个位置提取可用版本。 在自定义找到的原始代码here之前,查看当您对特定版本的对象ID进行硬编码时,原始代码是否在Rally内部和内部产生相同的结果,然后在有多个时复制到更复杂的场景ObjectID经过硬编码,然后尝试从下拉值动态使用变量集:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
   <meta name="Name" content="Component Example: Standard Report">
   <script type="text/javascript" src="https://rally1.rallydev.com/apps/1.26/sdk.js"></script>
   <script type="text/javascript">
     function initPage() {
       var config = {
           report: rally.sdk.ui.StandardReport.ReleaseDefectTrend,
           width : 800,
           height: 400,
       releases: [1111,2222]
         };
       var report = new rally.sdk.ui.StandardReport(config);
       report.display("aDiv");
     }

     rally.addOnLoad(initPage);
   </script>
</head>
<body>
   <div id="aDiv"></div>
</body>
</html>

有关详细信息,请参阅Apps Outside of Rally

通常,标准报告是预设报告,无法在JSON配置对象允许的范围之外进一步自定义。 AppSDK1允许您通过以下语法提供对自定义页面的访问来加载报表:

report: rally.sdk.ui.StandardReport.ReleaseDefectTrend

但如果你想放大,要显示更多信息,也许在图表中,这必须从头开始编码。