crm webapi的多级扩展

时间:2016-04-20 07:06:47

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

我有一个名为medicalcase的实体

每个医疗案例都有一个子网格,N:N关系与一个名为mcfamily的实体

每个mcfamily都有父,母,子字段,这些字段是查找联系字段

现在,如果我进行webapi通话

http://serverurl/api/data/v8.0/new_medicalcase(caseid)?$expand=new_medcase_mcfamily

我得到new_father_value,但我想扩展父查找并获取联系人姓名。我该怎么办?

我试过

http://serverurl/api/data/v8.0/new_medicalcase(caseid)?$expand=new_medcase_mcfamily($expand=new_father($select=fullname))

但它说

  

导航属性无法展开。多级扩展   不受支持。

1 个答案:

答案 0 :(得分:4)

您必须通过向父亲联系发出第二次请求来手动扩展。

如果您使用FetchXml查询发出请求,则应该能够通过一次调用进行双重扩展。 Here是一个如何通过WebAPI发送获取查询的示例(此处复制时间太长)。

更新以回复您的评论

这是一个fetch查询,可以在一次调用中检索所有父名。它假定以下逻辑名称:

  • medicalcase entity:new_medicalcase
  • mcfamily实体:new_mcfamily
    • 查找父亲联系人:new_fatherid
  • N:N实体:new_medicalcase_new_mcfamily
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true">
  <entity name="contact" >
    <attribute name="fullname" />
    <link-entity name="new_mcfamily" from="new_fatherid" to="contactid">
      <link-entity name="new_medicalcase_new_mcfamily" from="new_mcfamilyid" to="new_mcfamilyid" intersect="true">
        <link-entity name="new_medicalcase" from="new_medicalcaseid" to="new_medicalcaseid">
          <filter>
            <condition attribute="new_medicalcaseid" operator="eq" value="FAEEE5D8-D67C-E511-80E6-3863BB3CA578" />
          </filter>
        </link-entity>
      </link-entity>
    </link-entity>
  </entity>
</fetch>

要使查询正常工作,请使用XrmToolbox附带的FetchXml Tester工具。在使其正常工作后,请参考我在答案前面的链接,使用WebAPI执行获取查询。