Hi team ,
i want to implement the pagination through webapi retrive call by passing fetchxml as query and i want to limit the records let's say 5 records per page but all the 5000 records are getting fetched in one call even i am including maxpagesize property in request header , can anyone kindly address this issue?
below is the code
function fetchquery(){
var query = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>" +
"<entity name='account'>" +
"<attribute name='name' />" +
"<attribute name='accountid' />" +
"<order attribute='name' descending='false' />" +
"</entity>" +
"</fetch>";
var result = LargeDataRequest("accounts?fetchXml=" + query);
if (result != undefined && result != null && result.length > 0)
return result;
else
return null;
}
function LargeDataRequest(Query) {
debugger;
var req = new XMLHttpRequest();
req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v9.0/"+Query, false);
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("Prefer", "odata.maxpagesize=5");
req.setRequestHeader("Prefer", "odata.include-annotations=\"OData.Community.Display.V1.FormattedValue\"");
req.onreadystatechange = function () {
if (this.readyState === 4) {
req.onreadystatechange = null;
if (this.status === 200) {
var results = JSON.parse(this.response);
for (var i = 0; i < results.value.length; i++) {
var recordCount = results["@odata.count"];
var firstname = results.value[i]["name"];
}
if (results["@odata.nextLink"]) {
var nextdatacount1 = results["@odata.nextLink"];
}
while (nextdatacount1 != "") {
var req1 = new XMLHttpRequest();
req1 = new XMLHttpRequest();
req1.open("GET", nextdatacount1, false);
req1.setRequestHeader("OData-MaxVersion", "4.0");
req1.setRequestHeader("OData-Version", "4.0");
req1.setRequestHeader("Accept", "application/json");
req1.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req1.onreadystatechange = function () {
if (this.readyState === 4) {
req1.onreadystatechange = "";
if (this.status === 200) {
var results1 = JSON.parse(this.response);
for (var i = 0; i < results1.value.length; i++) {
var recordCount = results1["@odata.count"];
var firstname = results1.value[i]["name"];
}
var resul = results1["@odata.nextLink"];
if (typeof (resul) == 'undefined') {
nextdatacount1 = "";
}
else {
nextdatacount1 = results1["@odata.nextLink"];
}
}
}
};
req1.send();
}
}
else { alert(this.statusText); }
}
};
req.send();
}
*This post is locked for comments