AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.02.2012, 10:20   #1  
kenzo is offline
kenzo
Участник
 
12 / 10 (1) +
Регистрация: 30.11.2005
? Объясните, как работает AccountSet
Добрый день!
Простой вопрос для гуру СРМ2011:
Задача: создать для всех клиентов записи в связанной сущности.

var clients = from a in svc_crm.AccountSet
select new Account
{
AccountId = a.AccountId,
Name = a.Name
};
foreach (var c in clients) { создаю новые записи для связанной сущности }

Все замечательно отрабатывает, но только для первых 50 клиентов. Почему?
Старый 09.02.2012, 10:38   #2  
griefon is offline
griefon
Участник
 
131 / 52 (2) ++++
Регистрация: 07.12.2010
Адрес: down under
oData имеет такое ограничение на количество возвращаемых записей. Нужно использовать оператор $skip или что-то вроде:
...AccountSet.AddQueryOption("$skip", 50)
Старый 09.02.2012, 10:53   #3  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Это ограничение системы, сделанное чтобы обеспечить быстродействие. Записи выдаются постранично в зависимости от ностроек пользователя. По умолчанию по 50 штук. Судя по SDK:
Цитата:
In Microsoft Dynamics CRM 2011 and Microsoft Dynamics CRM Online you can page the results of a large .NET Language-Integrated Query (LINQ) query by using the Take and Skip operators. The Take operator retrieves a specified number of results and the Skip operator skips over a specified number of results.
Однако сам код привести почему-то запамятовали. Для метода RetriveMultiple / QueryExpression примеры использования постраничного вывода есть в SDK.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 09.02.2012, 12:48   #4  
kenzo is offline
kenzo
Участник
 
12 / 10 (1) +
Регистрация: 30.11.2005
Все равно выводит только 50... Skip и Take не помогли.

X++:
Console.WriteLine("Loading clients..");
         var clients = (from a in svc_crm.AccountSet
                              select new Account
                              {
                                  AccountId = a.AccountId,
                                  Name = a.Name
                              });
               foreach (var c in clients.Skip(100))
                {
                    Console.WriteLine("Clients " + i);

                    Console.WriteLine("Creating new dlr_legalentity..");
                    var new_legalperson = new CRM.dlr_legalentity()
                    {
                        dlr_legalentityId = Guid.NewGuid(),
                        dlr_name = String.Format("auto for client ({0})", c.Name.Substring(0, Math.Min(c.Name.Length, 30)), c.AccountId),
                        dlr_accountid = new EntityReference { Id = c.AccountId, LogicalName = "account" }
                    };

                    svc_crm.AddTodlr_legalentitySet(new_legalperson);

                    svc_crm.SaveChanges();
                    i++;}
Старый 09.02.2012, 12:50   #5  
griefon is offline
griefon
Участник
 
131 / 52 (2) ++++
Регистрация: 07.12.2010
Адрес: down under
Да, только по идее должны быть не первые 50, а далее. Соответственно нужно в цикле перебирать по 50 записей.
А skip скорее надо применять к svc_crm.AccountSet, хотя не буду утверждать, плохо знаком с Linq.
За это сообщение автора поблагодарили: kenzo (1).
Теги
accountset

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Не работает простой отчет. Dzam Dynamics CRM: Разработка 4 20.10.2015 11:46
Не работает фильтрация по сроку в действиях DimaV Dynamics CRM: Функционал 9 29.04.2010 06:48
Не работает переключение языков a33ik Dynamics CRM: Администрирование 11 23.12.2008 11:05
CRM Deployment Manager. User manager не работает kras Dynamics CRM: Администрирование 18 05.12.2006 17:34
CRM очень медленно работает... CRM30 Dynamics CRM: Администрирование 12 26.07.2006 18:01

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:18.