具有不同实体的FetchXML过滤器

时间:2013-04-10 05:20:47

标签: dynamics-crm-2011 fetchxml

我希望使用fetchXML过滤器在CRM2011中过滤我的实体。但是,我在不同实体上遇到AND和OR分组问题。

我根据他们的同意搜索客户,每个客户将获得1或0个有效同意。如果没有有效的同意,我想退回客户。我还希望客户在获得同意后返回,但如果没有指定代理商,则不会获得“限制”同意(例如,client.consent.type =='restricted'AND client.consent.users CONTAINS user)

到目前为止,我有这个:

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true">
  <entity name="contact">
    <attribute name="fullname" />
    <attribute name="thr_verifiedproofofidentity" />
    <attribute name="thr_interpreterrequired" />
    <attribute name="emailaddress1" />
    <attribute name="thr_consent" />
    <attribute name="birthdate" />
    <attribute name="thr_individualreferencenumber" />
    <attribute name="contactid" />
    <order attribute="fullname" descending="false" />
    <filter type="and">
      <condition attribute="statecode" operator="eq" value="0" />
      <condition attribute="thr_consent" operator="not-null" />
    </filter>
    <link-entity name="thr_consent" from="thr_clientid" to="contactid" alias="aa">
      <filter type="and">
        <filter type="or">
          <condition attribute="thr_consenttype" operator="eq" value="130120003" />
          <condition attribute="thr_consenttype" operator="ne" value="130120003" />   *
        </filter>
      </filter>
      <link-entity name="thr_thr_consent_thr_agency" from="thr_consentid" to="thr_consentid" visible="false" intersect="true">
        <link-entity name="thr_agency" from="thr_agencyid" to="thr_agencyid" alias="ab">
          <filter type="and">
            <condition attribute="thr_agencyid" operator="eq" uiname="Test" uitype="thr_agency" value="(agency id goes here)" />   *
          </filter>
        </link-entity>
      </link-entity>
    </link-entity>
  </entity>
</fetch>

此代码中唯一缺少的是我需要使用'*'对两个条件属性市场进行AND分组。

可以这样做吗?

1 个答案:

答案 0 :(得分:1)

正如Guido Preite指出的那样,使用Advanced find来创建Fetch Xml会比较简单,而不是手工编辑它。

但是...

由于您没有进行任何分组,我建议您不要使用Fetch Xml,而是使用其他支持的SDK选项之一(QueryExpressions,Linq to CRM,oData等)。

我不确定我是否完全理解您的请求(如果您可以将查询编写为SQL语句,那将会有所帮助),但我认为您需要拥有link-type="outer"的2个thr_consent链接实体。第一个具有等于130120003的条件,第二个具有代理ID条件的链接。