Dynamics crm 通过javascript在网格中检索fetchxml

Dynamics crm 通过javascript在网格中检索fetchxml,dynamics-crm,dynamics-crm-online,Dynamics Crm,Dynamics Crm Online,这可能看起来有点奇怪,所以我将尝试提供一些背景资料。我的CRM上有一项功能,要求用户能够过滤视图,然后保存生成的记录,这样一个单独的流程可以提取这些记录并定期(例如每天)对其进行处理 现在有一个问题,他们希望这个过程在处理数据之前重新查询数据,所以基本上应该保存的是查询或过滤器,而不是视图中的数据 之前编写了一些javascript代码,可以在子网格上动态设置fetchxml,如下所示 Subgrid.getGrid().setParameter(“fetchXml”,fetchXml); 我

这可能看起来有点奇怪,所以我将尝试提供一些背景资料。我的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
的类型为
[对象(Mscrm.TurboGridControl)]


是否有一种方法可以以支持的方式访问此对象

对此有几点想法:

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

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

  • 当用户识别出他们想要处理的集合时,您可以使用带有Guid列表的“in”操作符使用FetchXML临时创建一个视图(SystemQuery或UserQuery),以识别要处理的确切记录。使用视图检索和处理记录后,批处理过程可以删除该视图。我可能会很乐意使用这种方法,最多可以使用几十条记录

  • 
    {A1CC84F2-BE0D-E711-8104-00155D6FD705}
    {A3CC84F2-BE0D-E711-8104-00155D6FD705}
    {A5CC84F2-BE0D-E711-8104-00155D6FD705}
    
  • 如果希望通过在要处理的记录上设置布尔标志来避免更改修改的信息,则可以创建一个N:N链接实体,并将所选记录与该实体的实例相关联 你可以做:

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

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

    希望这有助于

    <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>