我正在使用FetchXml来查询CRM 4.0。我们有一个特殊情况需要在CRM entites之间进行复合连接。 FetchXml schema表示允许多个链接实体元素,并且还指示可以将多个过滤器/条件元素添加到链接实体。我面临的问题是条件元素的value属性似乎不允许实体/列名称。它期望明确声明的值。
例如,FetchXml允许您指定:
<link-entity name='myentity' from='column1' to='column2'/>
...这与T-SQL相当:
JOIN myentity on column1 = column2
它可以让你指定:
<link-entity name='myentity' from='column1' to='column2'>
<filter type='and'>
<condition attribute='column3' operator='eq' value='myvalue' />
</filter>
</link>
...这是T-SQL的等价物:
JOIN myentity on column1 = column2 AND column3 = 'myvalue'
但是,FetchXml不会出现以下内容:
JOIN myentity on column1 = column2 AND column3 = column4
注意区别。 FetchXml提供了连接中的条件,但它确实提供了一个复合连接,即跨多个列的连接。
在网络空间中有没有人能够使用CRM 4.0中的FetchXml执行复合连接?谢谢!
更多信息:
我正在寻找一个使用FetchXml来完成此任务的答案 - 而不是SQL或QueryExpression语法。上面的SQL只是为了解释这个概念。
答案 0 :(得分:6)
不,它不允许这样做。当涉及到连接中的任何非基本内容时,获取XML非常有限。如果我很好奇,我通常会使用Stunnware Tools测试我的查询。如果它没有暴露在那里,它可能无法完成。
不幸的是,在这些情况下,我通常最终(被迫进入)采用多种查询方法解决问题。
我知道你说你对此并不感兴趣 - 但我很确定QueryExpression也不会处理它。根据我的经验,它只提供了fetchxml功能的一个子集。