我们希望在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>
很好但是,我遇到了以下问题:
我是否错过了一些超显而易见的东西? 2.0 SDK还应该使用其他功能吗?
最佳答案
由于对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”的功能-因此,上述方法现在应该可以使您在AppSDK 1.32中使用LoginKey。