通过 javascript 在网格中检索 fetchxml

Posted

技术标签:

【中文标题】通过 javascript 在网格中检索 fetchxml【英文标题】:Retrieve the fetchxml in grid via javascript 【发布时间】:2018-02-23 17:24:15 【问题描述】:

这可能看起来有点奇怪,所以我会尝试提供一些背景信息。我的 CRM 上有一个功能,它要求用户应该能够过滤视图,然后保存结果记录,以便单独的进程可以提取它们并定期处理它们,例如每天。

现在要注意了,他们希望这个进程在处理数据之前重新查询数据,所以基本上应该保存的是查询或过滤器,而不是视图中的数据。

之前编写了一些 javascript 代码,可以像这样在子网格上动态设置 fetchxml

Subgrid.getGrid().setParameter("fetchXml", fetchxml);

虽然在网格中检索 fetchxml 应该相当简单

Subgrid.getGrid().getParameter("fetchXml");

但这不起作用,我似乎找不到任何文档或任何可以为我指明正确方向的东西。我已经使用开发者工具检查了Mscrm.XrmControlGridWrapper 的属性,但我找不到任何有用的东西..

如果有人知道我如何使用 javascript 检索为子网格提供动力的 fetchxml,那会很有帮助吗?

编辑

我刚刚发现我可以做到这一点

Subgrid.getGrid().getFilter().$3_1.GetParameter("fetchXml")

这正是我想要的,但这只是骇人听闻和不受支持的尖叫。 $3_1 的类型为 [object (Mscrm.TurboGridControl)]

有没有一种方法可以让我以受支持的方式访问该对象?

【问题讨论】:

【参考方案1】:

对此的一些想法:

    您可以检索 SystemForm 记录,然后解析 FormXml 以获取 ViewId。然后您可以从 SavedQuery 实体中检索视图,并获取 FetchXML。下面是 FormXml 中 ViewId 的示例:

    您可以向实体添加一个布尔字段,当用户保存他们想要处理的集合时,您可以标记这些记录以供以后的批处理检索。

    当用户确定他们要处理的集合时,您可以使用 FetchXML 临时创建一个视图(SystemQuery 或 UserQuery),并使用带有 Guid 列表的“in”运算符来确定要处理的确切记录。使用视图检索和处理记录后,批处理可以删除视图。使用这种方法最多可以处理几十条记录,我可能会很自在。

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
  <entity name="account">
    <filter type="and">
      <condition attribute="accountid" operator="in">
        <value>A1CC84F2-BE0D-E711-8104-00155D6FD705</value>
        <value>A3CC84F2-BE0D-E711-8104-00155D6FD705</value>
        <value>A5CC84F2-BE0D-E711-8104-00155D6FD705</value>
      </condition>
    </filter>
  </entity>
</fetch>
    如果您想通过在要处理的记录上设置布尔标志来避免更改修改信息,您可以创建一个 N:N 链接实体并将所选记录与该实体的实例相关联。

【讨论】:

【参考方案2】:

你可以这样做:

既然你有之前设置为SubGrid 的过滤器的fetchxml,为什么不直接存储这个变量。您可以将此变量保存在 localStorage 中,甚至可以保存在为此目的创建的虚拟字段中。并在所需的过程中使用它。

顺便说一句,获取 fetchXml 的支持方式:Xrm.Page.getControl(gridControlName).getFetchXml()

希望这会有所帮助...

【讨论】:

以上是关于通过 javascript 在网格中检索 fetchxml的主要内容,如果未能解决你的问题,请参考以下文章

通过 Node-Fetch 检索 OAuth2 令牌

无法在 ext.net 网格面板内的组合框中检索和设置值

检索为 sorl 生成的缩略图

JavaScript、asp.net 和 Sql Server

如何通过 Javascript 在 wordpress 中检索当前用户?

通过在 JavaScript 中检索它们的值来自动选择复选框 [重复]