FetchXML link 包含空值的实体
FetchXML link entity including null values
我正在尝试使用 FetchXML 查询 CRM。这是对帐户实体的查询,这 returns 我有 10 条记录,这里 new_primaryactivityname 字段有 NULL
几条记录。
<fetch mapping="logical" version="1.0">
<entity name="account">
<attribute name="accountid" />
<attribute name="name" />
<attribute name="new_primaryactivity" />
</entity>
</fetch>
现在我想 link 它与另一个实体一起获得一个新字段,我想像 sql 那样做 LEFT OUTER JOIN
,以保持 NULL
值在 linking 时,所以我提供了 link 类型作为外部类型,并且我为少数条件应用了过滤器。
<fetch mapping="logical" version="1.0">
<entity name="account">
<attribute name="accountid" />
<attribute name="name" />
<attribute name="new_primaryactivity" />
<link-entity name="stringmap" from="attributevalue" to="new_primaryactivity" alias="new_primaryactivity_lookup_name" link-type="outer">
<attribute name="value" />
</link-entity>
<filter type="and">
<condition entityname="new_primaryactivity_lookup_name" attribute="attributename" operator="eq" value="new_primaryactivity" />
<condition entityname="new_primaryactivity_lookup_name" attribute="objecttypecode" operator="eq" value="999" />
</filter>
</entity>
</fetch>
结果(少于10条记录)忽略new_primaryactivityname作为NULL
的记录,我在FetchXML查询中缺少什么?
除了使用 FetchXML 之外,我没有太多访问系统的权限,我提到了一些使用工具来帮助构建 FetchXML 查询的建议,但由于限制我不能这样做。
我认为这是您的过滤器块的位置。
按照现在的写法,您将 account
和 stringmap
与外连接链接在一起,然后将过滤器应用于结果。
我认为您需要像这样在 outer-join
中执行过滤器:
<fetch mapping="logical" version="1.0">
<entity name="account">
<attribute name="accountid" />
<attribute name="name" />
<attribute name="new_primaryactivity" />
<link-entity name="stringmap" from="attributevalue" to="new_primaryactivity" alias="new_primaryactivity_lookup_name" link-type="outer">
<attribute name="value" />
<filter type="and">
<condition attribute="attributename" operator="eq" value="new_primaryactivity" />
<condition attribute="objecttypecode" operator="eq" value="999" />
</filter>
</link-entity>
</entity>
</fetch>
或者您可以尝试以不同的方式编写过滤器并明确允许空值
<fetch mapping="logical" version="1.0">
<entity name="account">
<attribute name="accountid" />
<attribute name="name" />
<attribute name="new_primaryactivity" />
<link-entity name="stringmap" from="attributevalue" to="new_primaryactivity" alias="new_primaryactivity_lookup_name" link-type="outer">
<attribute name="value" />
</link-entity>
<filter type="or">
<condition entityname="new_primaryactivity_lookup_name" attribute="attributename" operator="eq" value="" />
<filter type="and">
<condition entityname="new_primaryactivity_lookup_name" attribute="attributename" operator="eq" value="new_primaryactivity" />
<condition entityname="new_primaryactivity_lookup_name" attribute="objecttypecode" operator="eq" value="999" />
</filter>
</filter>
</entity>
</fetch>
我还没有测试过其中任何一个,但希望其中一个对你有用
我正在尝试使用 FetchXML 查询 CRM。这是对帐户实体的查询,这 returns 我有 10 条记录,这里 new_primaryactivityname 字段有 NULL
几条记录。
<fetch mapping="logical" version="1.0">
<entity name="account">
<attribute name="accountid" />
<attribute name="name" />
<attribute name="new_primaryactivity" />
</entity>
</fetch>
现在我想 link 它与另一个实体一起获得一个新字段,我想像 sql 那样做 LEFT OUTER JOIN
,以保持 NULL
值在 linking 时,所以我提供了 link 类型作为外部类型,并且我为少数条件应用了过滤器。
<fetch mapping="logical" version="1.0">
<entity name="account">
<attribute name="accountid" />
<attribute name="name" />
<attribute name="new_primaryactivity" />
<link-entity name="stringmap" from="attributevalue" to="new_primaryactivity" alias="new_primaryactivity_lookup_name" link-type="outer">
<attribute name="value" />
</link-entity>
<filter type="and">
<condition entityname="new_primaryactivity_lookup_name" attribute="attributename" operator="eq" value="new_primaryactivity" />
<condition entityname="new_primaryactivity_lookup_name" attribute="objecttypecode" operator="eq" value="999" />
</filter>
</entity>
</fetch>
结果(少于10条记录)忽略new_primaryactivityname作为NULL
的记录,我在FetchXML查询中缺少什么?
除了使用 FetchXML 之外,我没有太多访问系统的权限,我提到了一些使用工具来帮助构建 FetchXML 查询的建议,但由于限制我不能这样做。
我认为这是您的过滤器块的位置。
按照现在的写法,您将 account
和 stringmap
与外连接链接在一起,然后将过滤器应用于结果。
我认为您需要像这样在 outer-join
中执行过滤器:
<fetch mapping="logical" version="1.0">
<entity name="account">
<attribute name="accountid" />
<attribute name="name" />
<attribute name="new_primaryactivity" />
<link-entity name="stringmap" from="attributevalue" to="new_primaryactivity" alias="new_primaryactivity_lookup_name" link-type="outer">
<attribute name="value" />
<filter type="and">
<condition attribute="attributename" operator="eq" value="new_primaryactivity" />
<condition attribute="objecttypecode" operator="eq" value="999" />
</filter>
</link-entity>
</entity>
</fetch>
或者您可以尝试以不同的方式编写过滤器并明确允许空值
<fetch mapping="logical" version="1.0">
<entity name="account">
<attribute name="accountid" />
<attribute name="name" />
<attribute name="new_primaryactivity" />
<link-entity name="stringmap" from="attributevalue" to="new_primaryactivity" alias="new_primaryactivity_lookup_name" link-type="outer">
<attribute name="value" />
</link-entity>
<filter type="or">
<condition entityname="new_primaryactivity_lookup_name" attribute="attributename" operator="eq" value="" />
<filter type="and">
<condition entityname="new_primaryactivity_lookup_name" attribute="attributename" operator="eq" value="new_primaryactivity" />
<condition entityname="new_primaryactivity_lookup_name" attribute="objecttypecode" operator="eq" value="999" />
</filter>
</filter>
</entity>
</fetch>
我还没有测试过其中任何一个,但希望其中一个对你有用