我们希望在我们的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吗?
答案 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来实现。