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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.07.2014, 13:21   #1  
magicandy is offline
magicandy
Участник
 
111 / 12 (1) ++
Регистрация: 15.07.2014
Конфликт плагина и рабочего процесса
Приветствую, коллеги.

Нужен совет в следующей сложившейся ситуации.
Есть плагин, зарегистрированный на Pre Email Create. Плагин проводит некие манипуляции со связанным с письмом обращением (regarding case). Один из шагов плагина - это обновление связанного обращения (service.Update). Но вот в чём проблема, на шаге апдейта получается рекурсия с другим real-time рабочим процессом, который падает в эксепшн, который в свою очередь не даёт корректно отработать самому плагину. Ниже текст самого эксепшена.
Код:
[Microsoft.Crm.ObjectModel: Microsoft.Crm.ObjectModel.SyncWorkflowExecutionPlugin][7133aad3-f70b-e411-80d9-0050568c1ffc: ]
Starting sync workflow 'Простановка категории организации', Id: 6833aad3-f70b-e411-80d9-0050568c1ffc
Entering UpdateStep1_step: 
Sync workflow 'Простановка категории организации' terminated with error 'Value cannot be null.
Parameter name: culture'
Тут же отмечу, что запуск конфликтного рабочего процесса осуществляется по апдейту одного единственного поля. И, видимо, стартует по событию апдейта обращения, обрабатываемого плагином. Плагином же обновляется атрибут, отличный от атрибута, задействованного в рабочем процессе. Код события апдейта плагина ниже:
Код:
regardingCase = service.Retrieve("incident", regardingCaseId, new ColumnSet(true));
regardingCase["dt_ustomerrating"] = userRating.ToString();
service.Update(regardingCase);
Я пытался ограничить количество передаваемых на апдейт атрибутов:
Код:
regardingCase = service.Retrieve("incident", regardingCaseId, new ColumnSet(new string[] { "dt_ustomerrating" }));
Но это решение выкидывало в эксепшн "The given key was not present in the dictionary". Плюс, на сколько я понял из курения МСДН, ColumnSet возвращает только not null значения. А у меня по основному сценарию атрибут "dt_ustomerrating" не зполнен. Но даже если и заполнен, результат всё равно "The given key was not present in the dictionary".
Ну и на последок, если я отключаю конфликтный рабочий процесс, то плагин отрабатывает без ошибок и проблем. Ещё пробовал утилитой XrmToolBox понизить приоритет запуска проблемного р\п, но это тоже не помогло.

Как лучше всего выйти из сложившейся ситуации и сделать так, чтобы р\п и плагин не мешали и не конфликтовали друг с другом? Заранее благодарю за помощь .
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Помощь в настройке плагина CRM для Outlook joyer Dynamics CRM: Администрирование 6 27.02.2013 23:11
Неконтролируемый многократный запуск бизнес-процесса. Uoa Dynamics CRM: Функционал 5 30.11.2011 14:28
Под кем выполняется код плагина? Tony Green Dynamics CRM: Разработка 1 14.02.2011 18:41
Модификая контекста плагина ZooY Dynamics CRM: Разработка 3 28.09.2008 13:52
Мир CRM: Автоматизирование добавления основного контакта при помощи Бизнес-Процесса Blog bot Dynamics CRM: Blogs 0 31.07.2008 02:08

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

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

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