1

Ich habe ein Unternehmen namens als medicalcasemehr Ausbaustufen in crm WebAPI

Jeder Krankheitsfall hat ein subgrid, N: N-Beziehung mit einer als mcfamily gerufenen Einrichtung

Jeder mcfamily hat Vater, Mutter, Kind Felder, die Lookups sind Feld

Jetzt kontaktieren, wenn ich ein WebAPI Anruf

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

ich die new_father_value bekommen, aber ich will machen der Vater Lookup eine erweitern nd bekommen den Kontaktnamen. Wie kann ich es tun?

versuchte ich

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

Aber es sagte

Navigationseigenschaft nicht erweitert werden kann. Mehrere Erweiterungsebenen werden nicht unterstützt.

Antwort

3

Sie müssen manuell expandieren, indem Sie eine zweite Anfrage für den Vaterkontakt stellen.

Wenn Sie die Anforderung mithilfe einer FetchXml-Abfrage ausführen, sollten Sie die doppelte Erweiterung mit einem Aufruf durchführen können. Here ist ein Beispiel für das Senden einer Abrufabfrage über die WebAPI (zu lange, um hier zu kopieren).

-Update in Reaktion auf Ihren Kommentar

Hier ist eine Abfrage holen, die alle Ihre Vater-Namen in einem Aufruf abrufen würde. Es übernimmt die folgenden logischen Namen:

  • medicalcase Einheit: new_medicalcase
  • mcfamily Einheit: new_mcfamily
    • Lookup Vater Kontakt: new_fatherid
  • N: N Einheit: 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> 

Verwenden Sie das FetchXml Tester-Tool, das mit der XrmToolbox geliefert wird, um die richtige Abfrage zu erzielen. Nachdem Sie es ordnungsgemäß ausgeführt haben, verweisen Sie auf den Link von früher in meiner Antwort, um die Abrufabfrage mithilfe der WebAPI auszuführen. ja

+0

das ist, was ich jetzt getan $ (eachEntryInSubgrid) Ich einen Ajax-Aufruf mache und die Ergebnisse an das Array dann in diesem Fall drückt, wenn es 10 Einträge im subgrid sind, wird es 10 Ajax-Aufrufe gemacht werden Gibt es dafür keinen Weg? oder ist das die einzige verfügbare option? –

+0

@vignesh Ich habe meine Antwort aktualisiert – Polshgiant