javascript - SDK 1 中的 Rally 查询与 SDK 2 中的存储

标签 javascript rally

我正在尝试为 Rally 创建一个可导出到 CSV 网格应用程序以显示依赖关系。但我没有得到使用商店的 SDK 2 所期望的结果。我发现一个遗留的 SDK 1 应用程序正在返回我正在寻找的内容。

我不知道我需要做什么才能让前辈们展示。我得到的只是数据对象中存储的计数。我已经浏览了很多次文档,但我被困住了。

 var dependencydata = Ext.create('Rally.data.wsapi.Store', {
    model: 'hierarchicalrequirement',
    autoLoad: true,
    
       listeners: {
        load: function(dependencydata, data, success) {
            //process data
            console.log("Woot Data !",dependencydata, data, success);
           this.loadgrid(dependencydata);
        },
        scope: this
    },
    fetch: ['Rank','FormattedID','Name','Predecessors','Successors','Project','ScheduleState']
});//end Store

结果是

数据

格式ID 12345

废话

前任

数2

我需要的是

数据

格式ID 12345

废话

前任

   object 

   Array

    FormatId 45637

我猜在 SDK 1 中应该是这样做的

var queryConfig = {
                    type : 'hierarchicalrequirement',
                    key  : 'stories',
                    fetch: 'Rank,FormattedID,Name,Predecessors,Successors,Project,ScheduleState',
                    query: '(Release.Name = "' + relDropdown.getSelectedName() + '")',
                    order: 'Rank'
                };
                rallyDataSource.findAll(queryConfig, showUserStoriesTable);
            }
         

最佳答案

SDK 2 使用的 WSAPI v2.0 不允许像 v1.0 那样在一个请求中进行水合集合。

幸运的是,文档中有一个关于这个主题的指南: https://help.rallydev.com/apps/2.0/doc/#!/guide/collections_in_v2

您的情况稍微复杂一些,因为您需要为每个故事加载 2 个集合(前身和后继)

所以像这样的东西应该有效:

//keep track of all the pending collection loads
var promises = [];

Ext.create('Rally.data.wsapi.Store', {
    model: 'UserStory',
    fetch: ['Rank','FormattedID','Name','Predecessors','Successors','Project','ScheduleState'],
    autoLoad: true,
    listeners: {
        load: function(store, records) {              
           _.each(records, function(story) {
               //create the stores to load the collections
               story.predecessorStore = story.getCollection('Predecessors');
               story.successorStore = story.getCollection('Successors');

               //load the stores and keep track of the load operations
               promises.push(predecessorStore.load({fetch: ['FormattedID']}));
               promises.push(successorStore.load({fetch: ['FormattedID']}));
           });

           //wait for all promises to finish
           Deft.Promise.all(promises).then({
               success: function() {
                   //all data loaded.
                   console.log(records[0].predecessorStore.getRange());
                   console.log(records[0].successorStore.getRange());
               }
           });
        }
    }
});

请注意,这将生成大量请求,因此最好通过过滤器限制根存储中的故事总数。

关于javascript - SDK 1 中的 Rally 查询与 SDK 2 中的存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33814542/

相关文章:

ruby - RallyRestToolkitForRuby - project_scope_up & project_scope_down 似乎不起作用

api - 从 RallyDev 检索附件

javascript - 从父记录访问子故事

python - Rally Pyral sdk 在查询包含两个以上术语时出现错误。 (解析表达式时出错——预期为 ")",但看到的是 "AND"。)

javascript - 从用于 Rally 构建的 extjs 组合框,我如何获取子 ChangeSets 记录上的字段?

javascript - 在资源有限的浏览器(移动)中管理大型数据集的缓存

javascript - Excel-JS - 重新计算不起作用

javascript - 在页面加载时随机放置 div

javascript - highcharts,可能的错误设置工具提示格式化程序和 html?

javascript - jQuery AJAX 请求远程 API 被阻止