MSCRM异步javascript SDK.REST.retriveMultipleRecords只返回50条记录,一次
MSCRM async javascript SDK.REST.retrieveMultipleRecords return only 50 records, need all records at a time
我在异步调用"SDK.REST.reveiveMultipleRecords"函数时遇到了一些问题。以下是我的问题代码
function Main_Method(_AnimalList)
{
new SearchInAnimalRecords(_AnimalList);
}
function SearchInAnimalRecords(_AnimalList)
{
$('#divProgressDetail').append('<br>Start searching Animal Records...');
for (var i = 0; i < _AnimalList.length; i++)
if (_AnimalList[i].SchemaName != "Lion")
this.Process(AnimalSchemaName);
}
SearchInAnimalRecords.prototype.Process = function (AnimalSchemaName)
{
$('#divProgressDetail').append('<br>Retriving ' + AnimalSchemaName + ' Animal Records...');
///SDK.REST.retrieveMultipleRecords : Sends an asynchronous request to retrieve records.
SDK.REST.retrieveMultipleRecords
(
AnimalSchemaName, /// The Schema Name of the Entity type record to retrieve.
"$select=" + AnimalSchemaName + "Id", /// A String representing the OData System Query Options to control the data returned
function (AnimalRecords) // "AnimalRecords" only contain 50 records
此函数将被传递,并为返回的每一页记录调用。每页50条记录。如果您希望返回一页以上的记录,这个函数应该循环遍历结果,并将记录推送到函数外的数组中。使用OnComplete事件处理程序可以知道何时处理了所有记录。
{
var length = AnimalRecords.length;
for (var i = 0; i < length; i++)
{
var guid = AnimalRecords[i][AnimalSchemaName + 'Id'];
var IsGuidMatch = IsKeyGuidMatchWith(guid);
if (IsGuidMatch)
{
$('#divProgressDetail').append('<br>Key animal found in ' + AnimalSchemaName + ' Records.');
$('#divProgressDetail').append('<br>Searching stop.');
break;
}
}
},
function () /// The function that will be passed through and be called by a failed response.
{
$('#divProgressDetail').append('<br>Error while Retriving ' + AnimalSchemaName + ' Records.');
},
function () /// OnComplete EventHandler The function that will be called when all the requested records have been returned. No parameters are passed to this function.
{
$('#divProgressDetail').append('<br>Completed searching in ' + AnimalSchemaName + ' Records.');
}
);
}
在Process函数中,它们是一个匿名函数,接受一个名为"AnimalRecords"的参数。所以问题是这个AnimalRecords只包含50个记录,我需要在这里一次所有的记录。
我认为这是对返回记录数量的限制。每次检索记录时,只返回查询中的前50条记录。如果记录超过50条,则XML中会有一个">节点或结果集末尾的JSON__next属性。您可以使用该节点或属性中的URL值继续处理下一组记录。URL包含一个$skiptoken参数,该参数提供有关分页边界的信息
参考:http://msdn.microsoft.com/en-us/library/gg334767.aspx
如果您想访问所有记录,请尝试使用xrmservicetoolkit
XrmServiceToolkit.Soap.QueryAll:返回所有记录(大于5k)的方法。
http://xrmservicetoolkit.codeplex.com/
我相信您正在使用Dynamics CRM 2011。SDK早期提供的帮助文件只返回前50个,但在最新的SDK版本中进行了修改。如果你有权访问CRM 2011的最新SDK,那么'RetrieveMultiple'jQuery调用的帮助程序文件中已经自行处理了50条记录的限制;这意味着实现已经在那里检索所有记录,而不仅仅是前50个。
请尝试下载最新的SDK并使用该代码。你应该得到想要的结果。
- 节点导出返回一个空对象
- ES6构造函数返回基类的实例
- 监视函数从服务返回不起作用,但作用域函数起作用
- 控制台返回var不是't定义,但它是
- 从函数返回角度承诺
- Javascript返回值只在循环中返回一次
- 从控制器返回后Ajax启动事件激发
- CKFinder 3为所选文件返回错误的URL
- 如何在d3.js中返回路径的y坐标
- 如何从jquery函数返回变量
- MSCRM异步javascript SDK.REST.retriveMultipleRecords只返回50条记录,一次
- JavaScript getMonth() 返回 50 作为月份值
- 数据存储在ember中只返回一条记录
- Ember data find()方法返回数组,但我需要一条记录
- API返回3条记录-主干集合不匹配
- 返回主视图后,移除徽标问候并固定滚动条位置
- 滚动后将导航条返回到原始位置
- 将EJS中的列表迭代限制为前50条记录
- AJAX调用相同的函数,返回的记录不超过50条
- 返回到动态大小页面上的滚动条位置