Цитата:
Сообщение от
vital.mih
Хочу вытащить записи по значению атрибута. Пробовал 2 разных кода:
ConditionExpression condition = new ConditionExpression();
condition.AttributeName = "new_ExtID";
condition.Operator = ConditionOperator.Equal;
condition.Values = new string[] { ExtID };
FilterExpression filter = new FilterExpression();
filter.FilterOperator = LogicalOperator.And;
filter.Conditions = new ConditionExpression[] { condition };
QueryExpression query = new QueryExpression();
query.EntityName = EntityName.account.ToString();
query.ColumnSet = new AllColumns();
query.Criteria = filter;
BusinessEntityCollection Customer = service.RetrieveMultiple(query);
и
QueryByAttribute query = new QueryByAttribute();
query.ColumnSet = new AllColumns();
query.EntityName = EntityName.account.ToString();
query.Attributes = new string[] { "new_ExtID" };
query.Values = new string[] { ExtID };
BusinessEntityCollection Customer = service.RetrieveMultiple(query);
где "new_ExtID" искомый атрибут, ExtID - входящее значение.
Запускаю через расширенную SQL процедуру, работает 7-8 минут, затем выдает ошибку: The request was aborted: The request was canceled.
Добрый день. Попробуйте использовать RetrieveMultipleRequest и Execute метод веб сервисов CRM. Замечено уже не только мной несовсем адекватную работу RetrieveMultiple метода, если используются кастомные сущности или кастомные аттрибуты стандартный.
При формировании RetrieveMultipleRequest укажите RetrieveDynamicEntity - true.
Кроме того напишите, пожалуйста, какого типа аттрибут new_ExtID. Если это лукап - тогда в качестве параметров для фильтрации надо использовать GUID, а не строку.
Кроме того попытайтесь таким образом объявить фильтр:
query.Values = new object[] { ExtID };