我希望使用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分组。
可以这样做吗?
答案 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条件的链接。