Rally 请求实体太大

Rally 请求实体太大,rally,appsdk2,lookbackapi,Rally,Appsdk2,Lookbackapi,由于详细说明的lbapi的限制,我对lbapi的查询的大小急剧增加(我正在将一组“可见”项目传递给lbapi,这将只返回我有查看权限的项目中的工作项),直至出现“请求实体太大”错误 我知道我需要一次只使用一些可见的项目来分解我的查询。我想通过编程实现这一点——对于每100个可见的项目,进行一次查询,获取返回的记录并将其放入一个数组中 然而,当我试图确定何时继续时,这会变得有点混乱——是否所有的查询都返回并填充总计数组?有人能想出一个干净的方法来实现这一点吗 for (var i = 0; i &

由于详细说明的lbapi的限制,我对lbapi的查询的大小急剧增加(我正在将一组“可见”项目传递给lbapi,这将只返回我有查看权限的项目中的工作项),直至出现“请求实体太大”错误

我知道我需要一次只使用一些可见的项目来分解我的查询。我想通过编程实现这一点——对于每100个可见的项目,进行一次查询,获取返回的记录并将其放入一个数组中

然而,当我试图确定何时继续时,这会变得有点混乱——是否所有的查询都返回并填充总计数组?有人能想出一个干净的方法来实现这一点吗

for (var i = 0; i < Math.ceil(App.visibleTeams.length / 100); i++) {
    console.log('i',i);
    var tempProj = [];
    for (var j = i * 100; j < Math.min((i + 1) * 100, App.visibleTeams.length); j++) {
        tempProj.push(App.visibleTeams[j]);
    }
    console.log('tempProj.length',tempProj.length);
    // query
    App.completeRecords = [];
    Ext.create('Rally.data.lookback.SnapshotStore', {
        pageSize : 10000,
        fetch    : ['Parent','Name','_UnformattedID','PortfolioItemType','PercentDoneByStoryPlanEstimate','ObjectID','PlannedStartDate','PlannedEndDate','ActualStartDate','ActualEndDate','LeafStoryPlanEstimateTotal'],
        filters  : [{
            property : '__At',
            value    : 'current'
        },{
            property : '_TypeHierarchy',
            value    : 'PortfolioItem'
        },{
            property : '_ItemHierarchy',
            operator : 'in',
            value    : node.ObjectID
        },{
            property : 'Project',
            operator : 'in',
            value    : tempProj
        },{
            property : 'LeafStoryPlanEstimateTotal',
            operator : '>',
            value    : 0
        }]
    }).load({
        callback: function(records, operation, success) {
            if (!success) {
                Ext.getBody().unmask();
                Ext.Msg.alert('Error ' + operation.error.status + ': ' + operation.error.statusText, operation.error.errors[0]);
            } else {
                App.completeRecords.push.apply(App.completeRecords, records);
                // if done, callback(), else, do nothing
            }
        }
    });
}
for(var i=0;i”,
数值:0
}]
}).装载({
回调:函数(记录、操作、成功){
如果(!成功){
Ext.getBody().unmask();
Ext.Msg.alert('Error'+operation.Error.status+':'+operation.Error.statusText,operation.Error.errors[0]);
}否则{
App.completeRecords.push.apply(App.completeRecords,记录);
//如果完成,则回调(),否则不执行任何操作
}
}
});
}

我们添加了一些新功能来解决这个问题。我对您提出的另一个问题添加了更详细的回答。

此解决方案有效,只是比较混乱。谢谢大家的关注!