【问题标题】:Encoding page cookie within fetchxml inside a SOAP call to MS CRM 2013 on-demand在对 MS CRM 2013 的按需 SOAP 调用中的 fetchxml 中编码页面 cookie
【发布时间】:2014-03-14 18:27:50
【问题描述】:
我正在使用一个只能使用简单的 javascript 和 SOAP 与 Dynamics 对话的软件程序。只能在 E4X 中处理响应。到目前为止我做得很好,但现在我很难过。当将 SOAP 发送到包含 FetchXML 的 CRM 时,我需要在 SOAP 主体的其余部分中对 FetchXML 进行编码,这很好。但是,如果由于 5000 行的限制,我想移动到下一页,我必须使用一个也需要编码的页面 cookie。我只是无法使语法正确。有没有人遇到过这种问题?谁能告诉我在整个 SOAP 调用的 FetchMXL 部分中正确编码的页面 cookie 的有效 SOAP 调用是什么样的?
【问题讨论】:
-
-
sFetchXML=' '+ ' '+ ' '+ ' '+ ' '+ ' '+ ' '+ ']]>'
-
但是无论我尝试放入页面cookie 中的任何内容都失败了。 cookie 看起来像 .因此,如果我尝试用 " 替换“它会失败,并且如果我尝试用 > 替换所有 xml,< 它会出错:尝试在任何高页面上检索一组记录时需要分页 cookie。
标签:
javascript
soap
dynamics-crm-2011
【解决方案1】:
您是否在 FetchXML 中指定“页面”?
<fetch version='1.0' mapping='logical' count='5' page='2'>
<entity name='way_target'>
<all-attributes />
</entity>
</fetch>
首先,您甚至可能不需要指定分页 cookie。尝试在没有分页 cookie 的情况下请求第 2 页。在上面的示例中,分页工作正常,添加分页 cookie 不会改变我的回报(即使我想要它)。
无论如何,您的分页 cookie 应该在您的第一个页面请求时返回。第 1 页不应发送 pagingCookie 值,但如果记录超过 5,000 条,则将返回 pagingCookie。你应该以你收到它的相同格式发回这个分页cookie。
这是一个示例响应:
<cookie page="1"><way_target last="{8A3461CA-91AC-E011-8E1B-005056B37E8A}" first="{6C034728-00F2-E111-A489-0050569D0006}" /></cookie>
在我的 Fetch 调用中:
<fetch version='1.0' mapping='logical' count='5' page='2' PagingCookie='<cookie page="1"><way_target last="{6C034728-00F2-E111-A489-0050569D0006}" first="{6C034728-00F2-E111-A489-0050569D0006}" /></cookie>'>
<entity name='way_target'>
<all-attributes />
</entity>
</fetch>