为CRM RetrieveMultiple插件生成分页Cookie

时间:2014-11-04 18:08:20

标签: plugins dynamics-crm crm dynamics-crm-2013

我处于一个奇怪的情况,我需要为CRM生成一个通常由CRM服务生成的分页cookie(更多关于下面的原因)但是我找不到它的架构或任何涵盖它的文档。 / p>

我推断的格式如下,任何人都可以确认它是完整的吗?:​​

<cookie page="{page no#}">
    <{first sort column logical name} first="{value of first returned items sort column - format unknown}" last="{value of last returned items sort column - format unknown}" />
</cookie>

我的情况是我写了一个RetrieveMultiple插件,它返回一个实际存在于外部数据库中的伪实体,因为组织服务没有获取我不能依靠CRM为我提供这个值的数据。

分页cookie需要迭代OData查询,即使我的插件完全忽略它可以自由使用它自己的逻辑,我正在通过验证消息,而不是我包括{{1} } querystring参数:

  

[ - 2147220715]:检索更多记录所需的分页cookie。更新   您的查询要检索总记录低于5000

有没有办法抑制此错误消息?

1 个答案:

答案 0 :(得分:1)

我已经对分页cookie格式进行了调查,这些是我的发现,如果新功能变得明显,我会在时间允许的情况下更新这些结果。

分页cookie是HTML encoded string,如果我有时间,我很乐意把它写成一个正确的架构,但现在功能设计必须要做:

  • &#34;饼干&#34;是根元素
  • &#34;饼干&#34;有一个int属性&#34; page&#34;,这是页面号#,从1
  • 开始计算
  • &#34; cookie&#34;的子节点是订单字段的逻辑名称,复杂类型也后缀为&#34; name&#34;,即:&#34; owneridname&#34;,&#34; statecodename&#34;
  • 这些子节点有4个潜在属性,但只有2个存在
  • &#34;第一&#34; /&#34;最后&#34;是第一个和最后一个结果记录的排序列中的文本/名称值,即:first=&quot;Active&quot; last=&quot;Inactive&quot;
  • 替代参数&#34; firstnull&#34;和&#34; lastnull&#34;将永远是&#34; 1&#34;如果存在,他们会替换&#34;第一&#34; /&#34;最后&#34;属性分别表示结果集中排序列的第一个值为null,反之亦然
  • 有一个最终子节点&#34; cookie&#34;以查询实体的主键字段命名,它还包含first / last属性,但这些属性设置为&#34; {}&#34;中包含的记录的GUID ID。括号
  • ADDED:如果第一个和最后一个值是长字符串,则在编码字符串之前将其值修剪为2000个字符
  • 已添加:第一个和最后一个值是双重HTML编码,例如:换行符为&amp;#xA;