Rally外部应用程序中的PortfolioItem查询

时间:2012-10-19 15:26:00

标签: javascript rally

我们希望在我们的SharePoint网站中展示Portfolio Timeline Rally App,因此上层管理人员可以很好地了解我们的产品组合中的内容,但看起来并不像这种功能可用。因此,作为“下一个最好的东西”,他们想要一个包含开始/结束日期的组合项目列表以及表格中显示的一些其他字段。

到目前为止,我已经能够为只读用户生成登录密钥,将其放在我在Rally网站和SO之间找到的一些示例代码中,并成功显示用户故事列表:

 <script type="text/javascript" src="https://rally1.rallydev.com/apps/1.28/sdk.js?loginKey=[loginkey]"></script>
 <script type="text/javascript">
    function onLoad() {
        rally.sdk.ui.AppHeader.destroy();
        var workspaceId = "0123456789";
        var projectId = "0123456789";
        var rallyDataSource = new rally.sdk.data.RallyDataSource(workspaceId,projectId, 'false', 'true');
        var config = {type: "hierarchicalrequirement", columnKeys:["FormattedID", "Name"]};
        var table = new rally.sdk.ui.Table(config, rallyDataSource);
        table.display("tableDiv");
    }
    rally.addOnLoad(onLoad);
</script>

工作正常。但是,我遇到了以下问题:

  • 如果我尝试将配置类型从hierarchicalrequirement更改为PortfolioItem,它似乎无法检索任何内容
  • 如果我尝试将sdk.js的转速提高到1.28以上,那么rally.addOnLoad似乎根本不会触发onLoad事件,如果我做的话,我会得到一些其他错误(例如RallyDataSource未定义)和代码它用我自己的onLoad事件激发

我错过了一些非常明显的东西吗?我还应该使用2.0 SDK吗?

1 个答案:

答案 0 :(得分:2)

由于Rally Webservices API中包含的更改允许dynamic typing of Portfolio Items,因此在使用AppSDK 1.x时,必须将最新可用版本的AppSDK Javascript工具包(1.32)与Webservices API版本配对1.37,它处理PortfolioItems的动态类型。

以下方法适用于您的代码:

<script type="text/javascript" src="https://rally1.rallydev.com/apps/1.32/sdk.js?loginKey=[loginkey]"></script>
 <script type="text/javascript">
    function onLoad() {
        rally.sdk.ui.AppHeader.destroy();
        var workspaceId = "123456789";
        var projectId = "2345678910";
        var rallyDataSource = new rally.sdk.data.RallyDataSource(workspaceId,projectId, 'false', 'true');
        // Set Webservices API version to use 1.37
        rallyDataSource.setApiVersion('1.37');
        var config = {type: "portfolioitem", columnKeys:["FormattedID", "Name"]};
        var table = new rally.sdk.ui.Table(config, rallyDataSource);
        table.display("tableDiv");
    }
    rally.addOnLoad(onLoad);
</script>

AppSDK 2.0+将是处理投资组合项目类型的最佳方法,因为它一旦成为GA,它将成为首选和支持的Javascript工具包。但是,此时,AppSDK 2.0预览中还没有“LoginKey-like”功能 - 所以上面的方法现在可以通过AppSDK 1.32中的LoginKey来实现。