2016-04-29 6 views
1

Wie ich bemerkte, ist das Abrufen von Daten in Dynamics CRM mit REST viel schneller als mit SOAP speziell für Big Data.Verwenden Sie erweiterte REST-Funktionen wie enthält in Dynamics CRM

Da ich neu in diesem Thema (REST) ​​bin, möchte ich fragen, ob es notwendig ist, zusätzliche Bibliothek hinzuzufügen, um Funktionen in meiner Abfrage für "enthält" zu verwenden.

Wenn ich die Abfrage senden:

XrmServiceToolkit.Rest.RetrieveMultiple("ActivityPointerSet", 
"$filter=contains(Subject,'Test')&$top=10", 
function(results){ 
    console.log(results); 
}, 
function(error){ 
    console.log(error); 
}, 
function onComplete(){ 

}, false); 

ich die Fehlermeldung: Fehler: 400: Bad Request: Unbekannte Funktion 'enthält' an Position 0.

Ich habe mehr oder weniger komplizierte Abfragen noch mit fetchXML. Ist es in den meisten Fällen möglich, sie in REST zu ändern?

Mit freundlichen Grüßen

+1

Dynamics CRM unterstützt nur eine begrenzte Teilmenge von die OData-Spezifikation. Sehen Sie sich das CRM SDK oder die Dokumentation zu MSDN an. Dynamics CRM 2016 führt Web-API und eine vollständigere Implementierung von OData v4 ein. –

+0

Als Referenz finden Sie hier die 2011 SDK-Seite zu den Operatoren: https://msdn.microsoft.com/en-us/library/gg309461(v=crm.5).aspx – Polshgiant

Antwort

5

Sie können nicht die C# QueryExpression Funktionen in Odata Queries direkt verwenden. Sie müssen sie gemäß Odata Syntax/Functions ändern.

Bitte ändern Sie Ihre Anfrage an unten und versuchen Sie es erneut:

select=*&$filter=substringof('Test',Subject)&$top=10 

Ein sehr gutes Werkzeug zur Erzeugung komplexer Odata Queries ist Dynamics XRM Tools

enter image description here Adding Selection Criteria to REST Queries in CRM 2011