通过javascript检索网格中的fetchxml

问题描述:

这似乎有点奇怪,因此我会尝试提供一些背景。我的CRM有一项功能,要求用户应该能够过滤一个视图,然后保存结果记录,这样一个单独的过程可以将它们选中并定期处理它们,例如,日常。通过javascript检索网格中的fetchxml

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

先前已经写了一些JavaScript代码动态地设置fetchxml上亚格像这样

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

我虽然它应该是相当简单的潜在检索网格

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

的fetchxml然而,这不起作用,我似乎无法找到任何文件或任何可以指向正确方向的文件。我已经使用开发工具来检查Mscrm.XrmControlGridWrapper的属性,但我找不到任何有用的东西。

如果有人知道如何检索使用javascript的子网格的fetchxml,这将是巨大的帮助?

编辑

我刚刚发现,我能做到这一点

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

,并返回正是我想要的,然而,这只是尖叫的哈克和不支持的。 $3_1有一种[object (Mscrm.TurboGridControl)]

有没有办法以支持的方式访问此对象?

在这几个想法:

  1. 您可以检索SYSTEMFORM记录,然后解析FormXml得到ViewId。然后,您可以从SavedQuery实体中检索视图,并获取FetchXML。这里的ViewId在FormXml的例子: enter image description here

  2. 你可以一个布尔字段添加到实体,当用户保存他们要处理,你可以标记为以后的批量处理这些记录来检索集。

  3. 当用户识别他们想要处理的集合时,您可以使用带有Guid列表的“in”运算符来使用FetchXML临时创建视图(SystemQuery或UserQuery)来标识要处理的确切记录。在使用视图检索和处理记录后,批处理可能会删除该视图。我可能会习惯使用这种方法达到几十条记录。

<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> 
  1. 如果要避免改变通过设置上记录的布尔标志的修改后的信息进行处理,可以创建一个N: N链接实体并将选择的记录与该实体的实例相关联。
开始=“4”>