2016-04-29 3 views
1

Как я заметил, выборка данных в Dynamics CRM с помощью REST намного быстрее, чем с SOAP, особенно для больших данных.Использование расширенных функций REST, таких как содержит в Dynamics CRM

Поскольку я новичок в этой теме (REST), я хочу спросить, нужно ли включать любую дополнительную библиотеку для использования функций в моем запросе, например, «содержит».

Если я посылаю запрос:

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

}, false); 

Я получаю сообщение об ошибке: Ошибка: 400: Bad Request: Неизвестная функция 'содержит' в положении 0.

я получил более или менее сложные запросы но с fetchXML. Можно ли в большинстве случаев изменить их на REST?

С наилучшими пожеланиями

+1

Dynamics CRM поддерживает только ограниченное подмножество спецификация OData. Взгляните на CRM SDK или документацию на MSDN. Dynamics CRM 2016 представляет Web API и более полную реализацию OData v4. –

+0

Для справки, вот страница SDK 2011 года для операторов: https://msdn.microsoft.com/en-us/library/gg309461(v=crm.5).aspx – Polshgiant

ответ

5

Вы не можете использовать C# QueryExpression функции в Odata Queries непосредственно. Вы должны изменить их в соответствии с Odata Syntax/Functions.

Пожалуйста, измените ваш запрос ниже и попробуйте еще раз:

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

Очень хороший инструмент для создания комплекса Odata Queries является Dynamics XRM Tools

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

Смежные вопросы