FetchXML查询以从多个链接实体中获取列

时间:2019-06-19 11:18:34

标签: dynamics-crm dynamics-crm-2011 dynamics-crm-2013 fetchxml

场景::有一个门户网站可显示网格中的数据,该数据来自Dynamics365。由于是Dynamics开发的,因此我被要求提供一个查询,该查询将以以下格式显示数据

例如,电话可以与“联系人”或“ CustomAccount(自定义实体)”关联,并且“ CustomAccount”在其表单上具有“联系人”查询。我们需要所有的电话记录,但有一个问题。在获取联系人的电话时,我们需要获取联系人的字段值,例如住宅地址,邮寄地址,电子邮件地址,电话号码。这是可行的。但是,如果电话与CustomAccount实体相关联,那么我们必须先获取与CustomAccount实体相关联的联系人,然后再获取其诸如居住地址,邮寄地址,电子邮件地址,电话号码之类的字段。

我尝试构建查询,但结果很奇怪,并且只显示与CustomAccount实体关联的电话,而没有显示联系实体。

<fetch>
  <entity name='phonecall' >
    <all-attributes/>
    <link-entity name='contact' from='contactid' to='regardingobjectid' link-type='outer' alias='contact' >
      <all-attributes/>
    </link-entity>
    <link-entity name='pref_CustAccount' from='pref_CustAccountid' to='regardingobjectid' link-type='outer' alias='account' >
      <link-entity name='contact' from='contactid' to='lpl_clientid' link-type='inner' alias='accountcontact' >
        <all-attributes/>
      </link-entity>
    </link-entity>
  </entity>
</fetch>

1 个答案:

答案 0 :(得分:2)

我刚刚在我的CRM实例上复制了您的方案。我认为您的问题出在以下行的链接类型上。

 <link-entity name='contact' from='contactid' to='lpl_clientid' link-type='inner' alias='accountcontact' >

您需要外部而不是内部。 当我给内心时,我只得到与上一行有关的那些记录。

这是我的完整抓取内容

<fetch>
  <entity name="phonecall" >
    <link-entity name="contact" from="contactid" to="regardingobjectid" link-type="outer" alias="directcontact" >
      <attribute name="fullname" />
    </link-entity>
    <link-entity name="account" from="accountid" to="regardingobjectid" link-type="outer" alias="account" >
      <link-entity name="contact" from="contactid" to="primarycontactid" link-type="outer" alias="primarycontact" >
        <attribute name="fullname" />
      </link-entity>
    </link-entity>
  </entity>
</fetch>