Я использую файл JavaScript веб-ресурса для извлечения нескольких записей из CRM.
var fetchXML = `
<fetch mapping="logical" output-format="xml-platform" version="1.0" page="1">
<entity name="account" >
<attribute name="name" />
</entity>
</fetch>`;
var query = "accounts?fetchXml=" + fetchXML;
callWebAPI(query);
После получения файла paging-cookie в первом запросе я пытаюсь отправить его во второй запрос для получения данных для второй страницы:
<fetch mapping="logical" output-format="xml-platform" version="1.0" page="2" paging-cookie="cookie i get from first request"
...
</fetch>`;
Исходный файл cookie из ответа выглядит следующим образом:
%253ccookie%2520page%253d%25221%2522%253e%253cname%2520last%253d%2522Deco%2520Voyages%2522%2520firstnull%253d%25221%2522%2520%252f%253e%253caccountid%2520last%253d%2522%257b9AFBEAA6-9EA7-E711-8103-70106FAA4841%257d%2522%2520first%253d%2522%257b0A86656D-BEA7-E711-8103-70106FAA4841%257d%2522%2520%252f%253e%253c%252fcookie%253e
Я пытался преобразовать и отправить файл cookie в соответствии с документацией: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/org-service/page-large-result-sets-with-fetchxml
var transformedCookie1 = GetDecodedCookie1(decodeURIComponent(decodeURIComponent(pagingcookie)));
var transformedCookie2 = GetDecodedCookie2(decodeURIComponent(decodeURIComponent(pagingcookie)));
function GetDecodedCookie1(cookie) {
return cookie.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
}
function GetDecodedCookie2(cookie) {
return cookie.replace(/</g, "%26lt;")
.replace(/>/g, "%26gt;")
.replace(/"/g, "%26quot;")
}
1)В первом случае, когда я использую GetDecodedCookie1, я получаю:
Script error. in at 0:0 null
Мои параметры строки запроса нарушены.
2) Во втором случае, когда я использую GetDecodedCookie1 Query String Parameters, выглядит нормально, но я получаю:
Malformed XML in the Paging Cookie
В чем здесь проблема?