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 查询的建议,但由于限制我不能这样做。

我认为这是您的过滤器块的位置。

按照现在的写法,您将 accountstringmap 与外连接链接在一起,然后将过滤器应用于结果。

我认为您需要像这样在 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>

我还没有测试过其中任何一个,但希望其中一个对你有用