Dynamics crm 检索帐户的所有相关活动-Dynamics CRM

Dynamics crm 检索帐户的所有相关活动-Dynamics CRM,dynamics-crm,microsoft-dynamics,dynamics-365,fetchxml,dynamics-crm-365,Dynamics Crm,Microsoft Dynamics,Dynamics 365,Fetchxml,Dynamics Crm 365,我想去掉Dynamics 365上的社交窗格,将其替换为帐户窗体上的子网格,该子网格将列出帐户的活动和帐户联系人的活动。我们目前正在使用“parentcustomerid”查找将联系人与非层次结构的帐户相关联。我找不到一个使用FetchXML的解决方案来获得我想要的东西。如果存在层次关系,则以下FetchXML将起作用: <fetch> <entity name="activitypointer" > <attribute name="activityid" /&g

我想去掉Dynamics 365上的社交窗格,将其替换为帐户窗体上的子网格,该子网格将列出帐户的活动和帐户联系人的活动。我们目前正在使用“parentcustomerid”查找将联系人与非层次结构的帐户相关联。我找不到一个使用FetchXML的解决方案来获得我想要的东西。如果存在层次关系,则以下FetchXML将起作用:

<fetch>
<entity name="activitypointer" >
<attribute name="activityid" />
<attribute name="regardingobjectid" />
<attribute name="subject" />
<attribute name="regardingobjecttypecode" />
<filter type="and" >
  <condition attribute="isregularactivity" operator="eq" value="1" />
  <filter type="or" >
    <condition entityname="accountparty" attribute="accountid" operator="eq-or-under" value="5D8E9289-7F86-E811-910D-0050568B95ED" />
    <condition entityname="contactparty" attribute="contactid" operator="eq-or-under" value="5D8E9289-7F86-E811-910D-0050568B95ED" />
  </filter>
</filter>
<link-entity name="activityparty" from="activityid" to="activityid" link-type="outer" alias="activityparty" >
  <link-entity name="account" from="accountid" to="partyid" link-type="outer" alias="accountparty" />
  <link-entity name="contact" from="contactid" to="partyid" link-type="outer" alias="contactparty" >
    <link-entity name="account" from="accountid" to="parentcustomerid" link-type="outer" alias="contactaccount" />
  </link-entity>
</link-entity>


目标是有一个插件,在预操作中捕获查询,以便添加所需的条件和过滤器

正如您已经得出的结论,解决这个问题的核心是在查询中使用
UnderOrEqual
条件

使用视图设计器以您想要的方式实现此功能可能很困难(恐怕不可能)。因此,您需要添加一些代码来实现这一点

虽然创建自定义webresources和使用自定义网格的方法可能更容易调试,但它需要大量自定义代码和控件

另一种方法是在表单中添加一个标准子网格,其中包含与父帐户相关的活动的“关联视图”,然后添加一个pre
RetrieveMultiple
插件来标识查询,然后调整查询以满足您的需要

然后,您将使用标准控件和功能,这些控件和功能将是可升级的,并且仍然遵循Microsoft等可能的设计更改

要查看一个完全可用的解决方案,下面的文章详细描述了此模式:

正如您已经得出的结论,解决这个问题的核心是在查询中使用
UnderOrEqual
条件

使用视图设计器以您想要的方式实现此功能可能很困难(恐怕不可能)。因此,您需要添加一些代码来实现这一点

虽然创建自定义webresources和使用自定义网格的方法可能更容易调试,但它需要大量自定义代码和控件

另一种方法是在表单中添加一个标准子网格,其中包含与父帐户相关的活动的“关联视图”,然后添加一个pre
RetrieveMultiple
插件来标识查询,然后调整查询以满足您的需要

然后,您将使用标准控件和功能,这些控件和功能将是可升级的,并且仍然遵循Microsoft等可能的设计更改

要查看一个完全可用的解决方案,下面的文章详细描述了此模式:

使用自定义HTML webresource和bootstrap&我们自己的js库来处理web api调用/fetchxml查询,这种汇总很容易实现。我们今天正在这样做

由于我们无法在fetchxml中执行
UNION
,我们可能必须合并两个结果集,因此我们可以使用jQuery数据表合并/可视化结果


此外,这种方法很容易修改、调试,而不是截取自定义fetchxml查询的服务器调用。

这种汇总很容易通过自定义HTML webresource和bootstrap实现&我们自己的js库处理web api调用/fetchxml查询。我们今天正在这样做

由于我们无法在fetchxml中执行
UNION
,我们可能必须合并两个结果集,因此我们可以使用jQuery数据表合并/可视化结果


此外,这种方法很容易修改、调试,而不是拦截自定义fetchxml查询的服务器调用。

您可以通过将与联系人相关的活动直接链接到其父帐户
来解决此问题,通过活动实体中的自定义查找,可能还有一个
Retrieve/RetrieveMultiple
插件,根据
regardingobjectid
是否是
联系人来自动填充它

这样,您只需要在网格中引用该字段


我们使用了类似的方法来创建跨越多个关系的“汇总”。您可以通过将与联系人相关的活动直接链接到其父帐户来解决此问题,通过活动实体中的自定义查找,可能还有一个
Retrieve/RetrieveMultiple
插件,根据
regardingobjectid
是否是
联系人来自动填充它

这样,您只需要在网格中引用该字段


我们使用了类似的方法来创建跨越多个关系的“汇总表”。

这是不允许作为答案的,所以我只是将其作为一个注释来写:这是您问题的解决方案@JonasRapp我以前发现过此链接,它帮助我理解,但联系人和帐户之间的关系是通过“parentcustomerid”建立的这不是一个层次关系,所以很遗憾,它不能工作。这是不允许作为答案的,所以我只是把它作为一个评论来写:这是你问题的解决方案@JonasRapp我以前找到过这个链接,它帮助我理解,但联系人和帐户之间的关系是通过“parentcustomerid”建立的这不是一个层次关系,所以很遗憾,它不能工作。正如我在回答您的评论时所说的,我必须在联系人表单上使用本地的“parentcustomerid”引用,将联系人链接到帐户(1:n关系),它不是层次关系。否则这个解决方案就是我要找的。@HubertSolecki好的,明白了。。。但还是。。。陛下我认为这应该是可能的,添加一些链接实体,然后在该链接下添加层次关系。。。但我上次尝试已经有一段时间了。正如我回答您的评论时所说的,我必须在联系人表单上使用本地的“parentcustomerid”引用,将联系人链接到帐户(1:n关系),并且它不是分层的。否则这个解决方案就是我要找的。@HubertSolecki好的,明白了。。。但还是。。。陛下我认为这应该是可能的