Обновление сайтов в Dynamics CRM 4 через CRM-веб-сервис занимает вечность - PullRequest
2 голосов
/ 23 июня 2010

У меня проблемы с Dynamics CRM 4. Я пытаюсь обновить цены и доступность с помощью crm-сервиса в WPF-приложении, но это занимает вечность.До получаса около 6000 продуктов.Должно ли это занять так много времени?Могу ли я сделать это другим быстрым способом?

QueryExpression query = new QueryExpression();
query.EntityName = EntityName.product.ToString();

BusinessEntityCollection entities = crmService.RetrieveMultiple(query);

foreach (product crmProduct in entities.BusinessEntities.OfType<product>())
{
  crmProduct.price = new CrmMoney() { Value = 123M };
  crmProduct.stock = new CrmNumber() { Value = 123 };
  crmService.Update(crmProduct);
}

Ответы [ 2 ]

2 голосов
/ 28 июня 2010

Чтобы повысить производительность, попробуйте обновить только те поля, которые вы действительно хотите обновить.Ваш код обновляет каждый атрибут, потому что вы используете продукт, который поставляется с CRM.Когда вы делаете это, все плагины запускаются и поскольку продукт является основной сущностью CRM, при обновлении этой сущности может быть задействовано больше логики CRM.

Попробуйте получить только первичный ключ продукта (productid) и установите обаполя и вызвать оператор обновления.При этом вы должны выполнять около 100 запросов в секунду на стандартном оборудовании при использовании последовательного процесса.

Чтобы получить больше обновлений, попробуйте запустить процесс на сервере CRM или использовать параллельную обработку.

0 голосов
/ 23 июня 2010

Попробуйте установить это в своем объекте службы CRM:

crmService.UnsafeAuthenticatedConnectionSharing = true;

Это позволяет службе аутентифицироваться только один раз, а затем использовать те же учетные данные.Это было бы плохо, если бы код находился на веб-сайте, где несколько человек собирались использовать одну и ту же службу CRM, поскольку будущие пользователи могли получить доступ к записям, чего не должно быть в приложении WPF, где есть только одинпользователь, это не проблема.

Вот статья с большим количеством метрик и некоторыми другими вещами, которые нужно подумать о настройке.Первоначально он применяется к CRM 3, но мы обнаружили, что те же настройки в 4 все еще повышают производительность.

...