Слишком большой объект запроса ралли
Из-за ограничений 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
}
}
});
}
1 ответ
Мы добавили некоторые новые функции, которые помогут решить эту проблему. Я добавил более подробный ответ на другой вопрос, на который вы ссылались.