如何在Dynamics365中使用聚合作为系统视图实现自定义FetchXML

时间:2017-09-11 03:29:45

标签: dynamics-crm crm fetchxml dynamics-365

我有一个名为课程注册的自定义实体,它可以查找联系人实体 我希望看到有活跃课程注册的联系人。

我不相信这可以通过联系实体来完成,因此我必须创建一个活动课程注册视图,该视图仅显示联系人字段。

如果他们有多个我不想要的课程注册,这样做会给我重复的联系。

为避免这种情况,我尝试在FetchXML中创建聚合查询:

- Effect: Allow
  Resource:
  - !Sub 'arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/codebuild/${PipelineName}-lambda'
  - !Sub 'arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/codebuild/${PipelineName}-lambda/*'
  Action:
  - 'logs:CreateLogGroup'
  - 'logs:CreateLogStream'

此查询适用于XRM Toolbox FetchXML测试程序。但是当我将它导入CRM时无效。

我通过导出包含包含相同字段的视图的解决方案将其导入CRM;并用我创建的FetchXML替换系统生成的FetchXML,并重新导入它。

我在尝试再次导入后查看此视图​​时收到通用CRM错误,该视图表示"应始终在Retrieve Multiple上指定列。"

CRM Generic Error Screenshot

<fetch version="1.0" aggregate="true" >
  <entity name="flr_courseenrolment" >
    <link-entity name="contact" from="contactid" to="flr_contact" alias="a_69c0f6b80d94e711812ae0071b66a541" >
      <attribute name="emailaddress1" alias="contactemailaddress1" groupby="true" />
      <attribute name="fullname" alias="contactfullname" groupby="true" />
      <filter type="and" >
        <condition attribute="statecode" operator="eq" value="0" />
        <condition attribute="flr_islearner" operator="eq" value="1" />
        <condition attribute="flr_advisor" operator="eq" uiname="Test User" uitype="systemuser" value="{28C0D53B-5E19-E611-8106-C5346CC262D1}" />
      </filter>
    </link-entity>
    <attribute name="flr_courseenrolmentid" alias="aggregateflr_enrolmentid" groupby="true" />
  </entity>
</fetch>

我有一种感觉:

  • flr_courseenrolmentid上的别名导致视图中断
  • CRM视图中根本不支持Aggregate / groupby
  • 我需要以某种方式自定义LayoutXML以及FetchXML

我想实现的目标是什么?有没有办法在CRM中的视图中显示此FetchXML,还是有另一种方法来实现我需要的视图?

2 个答案:

答案 0 :(得分:2)

在联系人下创建视图。

作为条件,选择相关实体&#34;课程注册(联系)&#34; (我在这里假设名称)并且条件为&#34;联系人包含数据&#34;和&#34;状态等于活动&#34;。

这与获取有活动联系人的所有帐户相同。

答案 1 :(得分:1)

不幸的是,您无法在视图中使用聚合查询。 将distinct="true"添加到fetch元素,而不是使用aggregate。

可能会有所帮助

测试不同选项的最简单方法是使用XrmToolBox中的 FetchXML Builder 插件,从中可以打开要更改的视图,更改查询,然后将其保存回CRM。无需导入解决方案或手动customizations.xml编辑。