Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dynamics crm 使用fetchxml的活动指针的联接/筛选语法_Dynamics Crm_Fetch_Dynamics Crm 2013_Fetchxml - Fatal编程技术网

Dynamics crm 使用fetchxml的活动指针的联接/筛选语法

Dynamics crm 使用fetchxml的活动指针的联接/筛选语法,dynamics-crm,fetch,dynamics-crm-2013,fetchxml,Dynamics Crm,Fetch,Dynamics Crm 2013,Fetchxml,我需要传递fetch语句,以便在CRM 2013中使用子网格。它需要获得以下信息: 关于通过连接连接到联系人的联系人的所有活动。(这句话的意思是) 与联系人相关的机会相关的所有活动。((此语句得到了这些)) 以及与联系人本身有关的所有活动 我尝试了几种不同的连接组合,但我不确定它们的位置或语法是否正确。不幸的是,我删除了这些尝试,因为它们都没有结果。这是我尝试的最后一个版本之一,它也没有返回任何结果 <?xml version="1.0" encoding="UTF-8"?>

我需要传递fetch语句,以便在CRM 2013中使用子网格。它需要获得以下信息:

关于通过连接连接到联系人的联系人的所有活动。(这句话的意思是)


与联系人相关的机会相关的所有活动。((此语句得到了这些))


以及与联系人本身有关的所有活动


我尝试了几种不同的连接组合,但我不确定它们的位置或语法是否正确。不幸的是,我删除了这些尝试,因为它们都没有结果。这是我尝试的最后一个版本之一,它也没有返回任何结果

<?xml version="1.0" encoding="UTF-8"?>
<fetch distinct="false" mapping="logical" output-format="xml-platform" version="1.0">
   <entity name="activitypointer">
      <attribute name="activitytypecode" />
      <attribute name="subject" />
      <attribute name="statecode" />
      <attribute name="modifiedon" />
      <attribute name="instancetypecode" />
      <attribute name="scheduledend" />
      <attribute name="actualend" />
      <attribute name="regardingobjectid" />
      <attribute name="activityid" />
      <order descending="false" attribute="modifiedon" />
      <link-entity name="opportunity" to="regardingobjectid" from="opportunityid">
         <attribute name="name" />
      </link-entity>
      <link-entity name="contact" to="regardingobjectid" from="contactid">
         <link-entity name="connection" to="contactid" from="record1id">
            <attribute name="record1id" />
         </link-entity>
      </link-entity>
      <filter type="or">
         <condition entityname="connection" attribute="record2id" value="&quot; + Xrm.Page.data.entity.getId() + &quot;" uitype="contact" operator="eq" />
         <condition entityname="activitypointer" attribute="regardingobjectid" value="&quot; + Xrm.Page.data.entity.getId() + &quot;" uitype="contact" operator="eq" />
         <condition entityname="opportunity" attribute="customerid" value="&quot; + Xrm.Page.data.entity.getId() + &quot;" uitype="contact" operator="eq" />
      </filter>
   </entity>
</fetch>
select *
from activitypointer
join opportunity on ..
join connection on...
join contact on...
WHERE (opportunity.regardingID = SomeID) OR (opportunity.customerid = SomeID) OR (activitypointer.regardingobjectid = SomeID)

如果有人能帮我格式化,我将不胜感激


提前感谢。

在我看来,尽管您现在可以在CRM 2013中跨表使用OR过滤器(您的语法看起来正确),OR不适用于链接本身。在SQL术语中,就好像在表之间进行了完全联接,然后将OR逻辑放在WHERE语句中。如果任何联接不匹配,则不会返回任何结果

<?xml version="1.0" encoding="UTF-8"?>
<fetch distinct="false" mapping="logical" output-format="xml-platform" version="1.0">
   <entity name="activitypointer">
      <attribute name="activitytypecode" />
      <attribute name="subject" />
      <attribute name="statecode" />
      <attribute name="modifiedon" />
      <attribute name="instancetypecode" />
      <attribute name="scheduledend" />
      <attribute name="actualend" />
      <attribute name="regardingobjectid" />
      <attribute name="activityid" />
      <order descending="false" attribute="modifiedon" />
      <link-entity name="opportunity" to="regardingobjectid" from="opportunityid">
         <attribute name="name" />
      </link-entity>
      <link-entity name="contact" to="regardingobjectid" from="contactid">
         <link-entity name="connection" to="contactid" from="record1id">
            <attribute name="record1id" />
         </link-entity>
      </link-entity>
      <filter type="or">
         <condition entityname="connection" attribute="record2id" value="&quot; + Xrm.Page.data.entity.getId() + &quot;" uitype="contact" operator="eq" />
         <condition entityname="activitypointer" attribute="regardingobjectid" value="&quot; + Xrm.Page.data.entity.getId() + &quot;" uitype="contact" operator="eq" />
         <condition entityname="opportunity" attribute="customerid" value="&quot; + Xrm.Page.data.entity.getId() + &quot;" uitype="contact" operator="eq" />
      </filter>
   </entity>
</fetch>
select *
from activitypointer
join opportunity on ..
join connection on...
join contact on...
WHERE (opportunity.regardingID = SomeID) OR (opportunity.customerid = SomeID) OR (activitypointer.regardingobjectid = SomeID)

在下面的示例中,您的活动必须通过连接链接到opportunity和contact,其中一个或另一个必须满足OR筛选器中的条件。不幸的是,我不认为你可以写你想要的,但我不是100%肯定这一点,所以如果有人可以证实或反驳这一点,请这样做。提供了一个很好的示例,说明了在表之间使用或筛选可以做什么。

看起来您正在寻找左外部联接,CRM 2013支持这一点。因为在查询中,他需要活动:1。有相关的机会2。关于这是否是他所需要的联系方式,在获取XML时有点不同。对。我们知道如何使用SQL,但使用fetch似乎是不可能的。我的想法是:
我不确定他想要什么,但他可能会操纵fecth来获得他需要的东西。我想我可能已经尝试过了,但今天晚些时候我会再给你一次机会,告诉你怎么了。谢谢大家的支持!