我收到此错误。
错误:500:内部服务器错误:具有有效分页cookie的查询 不应该在这个策略中执行
当我在CRM 2011中的WebResource中调用此代码时
self.loadWorkItems = function () {
var user = self.user();
var bid = user.BusinessUnitId.Id();
var systemUserId = user.SystemUserId();
var results = new Array();
SDK.REST.retrieveMultipleRecords(
"QueueItem",
"$select=*&$skip=" + self.page() * self.pageSize() + "&$top=" + self.pageSize() + "&$orderby=CreatedOn asc&$filter=OwningBusinessUnit/Id eq guid'" + bid + "' and StateCode/Value eq 0",
function (r) {
results = results.concat(r);
},
function (error) {
self.lastError(error.message);
},
function (x) {
for (var i = 0; i < results.length; i++) {
var item = results[i];
var r = ko.mapping.fromJS(item, workItemMapping);
self.workQueue.push(r);
}
}
);
};
这是knockoutjs视图模型的一部分。我正在尝试创建一个“更多”按钮,从服务器获取下一页数据并将其抛出到显示列表的末尾。
页面加载得很好,第一页回来但是当请求下一页时我得到了这个错误。
有关如何在没有错误的情况下拨打电话的任何想法?
修改 的
我错了似乎有些人使用$ skip&gt; 0工作。在这里疯了。
修改 的
我认为这个错误试图告诉我的是,跳过/顶部组合超过了总记录数而不是没有给我任何东西(正如我所料),它正在抛出异常。
所以新问题是如何避免这种愚蠢行为?我想现在我必须计算所有记录,并确保我没有太多页面。
答案 0 :(得分:1)
我们故意在执行查询时捕获所有错误,因为SDK在跳过中有一个错误并采取linq查询,这导致跳过更多然后结果有项目的问题。据我所知,这还没有得到微软的解决
答案 1 :(得分:0)
您获取不存在的“页面”。基本上你正在跳过比结果更多的元素。
因此,假设基础结果总共有10条与您的过滤器匹配的记录,并且您说
query.skip(12)然后你得到这种情况。