Тема: RetrieveMultiple
Показать сообщение отдельно
Старый 29.07.2009, 15:02   #2  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от 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 };
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit