在按需调用MS CRM 2013的SOAP调用内的fetchxml中编码页面cookie

时间:2014-03-14 18:27:51

标签: javascript soap dynamics-crm-2011

我正在使用一个只能使用简单的javascript和SOAP与Dynamics交谈的软件程序。响应只能在E4X中处理。到目前为止我做得很好,但现在我很难过。当将SOAP发送到包含FetchXML的CRM时,我需要在SOAP Body的其余部分内对FetchXML进行编码,这很好。但是如果我想转到下一页因为5000行限制我必须使用页面cookie,这也需要编码。我只是无法正确的语法。有人有过这种问题吗?任何人都可以向我展示在整个SOAP调用的FetchMXL部分内正确编码的页面cookie,vaild SOAP调用是什么样的吗?

1 个答案:

答案 0 :(得分:0)

您是否在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。

以下是一个示例回复:

&lt;cookie page="1"&gt;&lt;way_target last="{8A3461CA-91AC-E011-8E1B-005056B37E8A}" first="{6C034728-00F2-E111-A489-0050569D0006}" /&gt;&lt;/cookie&gt;

这是我的Fetch电话:

<fetch version='1.0' mapping='logical' count='5' page='2' PagingCookie='&lt;cookie page="1"&gt;&lt;way_target last="{6C034728-00F2-E111-A489-0050569D0006}" first="{6C034728-00F2-E111-A489-0050569D0006}" /&gt;&lt;/cookie&gt;'>
    <entity name='way_target'>
        <all-attributes />
    </entity>
</fetch>