Plugins 为CRM RetrieveMultiple插件生成分页Cookie

Plugins 为CRM RetrieveMultiple插件生成分页Cookie,plugins,dynamics-crm,crm,dynamics-crm-2013,Plugins,Dynamics Crm,Crm,Dynamics Crm 2013,我遇到了一个奇怪的情况,我需要为CRM生成一个通常由CRM服务生成的分页cookie(下面将详细介绍为什么),但是我找不到它的模式或任何涉及它的文档 我推断的格式如下,有人能确认它是完整的吗 <cookie page="{page no#}"> <{first sort column logical name} first="{value of first returned items sort column - format unknown}" last="{valu

我遇到了一个奇怪的情况,我需要为CRM生成一个通常由CRM服务生成的分页cookie(下面将详细介绍为什么),但是我找不到它的模式或任何涉及它的文档

我推断的格式如下,有人能确认它是完整的吗

<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查询所必需的,尽管它会被我的插件完全忽略,而我的插件可以自由使用它自己的逻辑,但每当我包含
skip
querystring参数时,我都会被验证消息所困扰:

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


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

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

分页cookie是一个很好的工具,如果我有时间的话,我很想把它写成一个合适的模式,但是现在功能设计必须做到:

  • “cookie”是根元素
  • “cookie”有一个int属性“page”,即页码,从1开始计数
  • “cookie”的子节点是订单字段的逻辑名称,复杂类型也以“name”作为后缀,即:“owneridname”、“statecodename”
  • 这些子节点有4个潜在属性,但仅存在2个
  • “first”/“last”分别是第一条和最后一条结果记录的排序列中的文本/名称值,即:
    first=“Active”last=“Inactive”
  • 可选参数“firstnull”和“lastnull”如果存在将始终为“1”,它们分别替换“first”/“last”属性,并指示结果集中排序列的第一个值为null,反之亦然
  • “cookie”的最后一个子节点是为查询实体上的主键字段命名的,它还包含第一个/最后一个属性,但这些属性设置为“{}”大括号中包围的记录的GUID ID
  • 添加:如果第一个和最后一个值是长字符串,则在对字符串进行编码之前,它们的值将被修剪为2000个字符
  • 添加:第一个和最后一个值是双重HTML编码的,例如:换行符是
    &#xA

我不确定如何避免此错误,但如果您的CRM OData查询将包含5000条或更少的记录,您可以尝试使用$top参数:OData限制为50条记录IIRC,不幸的是,我需要检索循环中的所有记录。每当我使用$skip参数时,它似乎都会导致此错误(因此我的第一个查询只使用$top,但后续查询需要cookie)。目前,我认为我唯一的选择是通过JavaScript使用FetchXML,我希望它不会面临相同的验证要求。您可以尝试增加每页返回的记录数。请注意,这将是一个全局设置,而不是特定于您的应用程序。感谢您的建议,但这种定制永远不应该在生产环境中进行。此外,尽管此更改将使我能够检索50条以上的记录,即使我将其设置为100000条(尽管由于服务器对消息大小的限制,这可能不起作用),但如果记录数超过100000条,我仍然会遇到此问题。我同意应谨慎使用它(因此警告并非特定于您的应用程序). 您可以尝试使用FetchXML,但如果您将拥有超过5000条记录,那么我不知道是否会有一种受支持的方法来完成您正在寻找的内容。