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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.11.2008, 15:04   #1  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
374 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
Тип ошибки при программном создании записи
CRM 4.0
На событие Pre-Create сущности зарегистрирован плагин.
Можно ли при программном создании записи этой сущности, в случае ошибки создания, определить, что это именно ошибка плагина, а не какая-то системная ошибка, или хотя бы получить текст ошибки, а не просто "Server was unable to process request".
Старый 10.11.2008, 09:01   #2  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,911 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Если речь идет об отладке, то можно подключить дебаггер к процессу w3wp.exe CRM сервера. Если вам надо просто показывать пользователю код ошибки, то поместите весь код в try catch и заворачивайте пойманные исключения в InvalidPluginExecutionException
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 11.11.2008, 10:29   #3  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
374 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
Хм... Видимо я не совсем понятно объяснил задачу...
Имеется в виду ситуация, когда я вообше из другого приложения (из какого-нибудь ASP.NET расширения) создаю запись, на которую зарегистрирован плагин.
Старый 11.11.2008, 10:39   #4  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,911 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Тогда вряд ли.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 12.11.2008, 16:04   #5  
Белый Михаил is offline
Белый Михаил
Участник
 
2 / 10 (1) +
Регистрация: 01.10.2008
Для точного определения, что ошибка при создании или изменении объекта произошла в плагине, я использую блок try {} catch {}, и в блоке catch генерирую исключение типа InvalidPluginExecutionException, где прописываю свой текст сообщения. Пример:

voidIPlugin.Execute(IPluginExecutionContext context)
{
try
{
// Реализация плагина
}
catch (SoapHeaderException se)
{
throw new InvalidPluginExecutionException("Ошибка в плагине.", se);
}
catch (Exception ex)
{
throw new InvalidPluginExecutionException("Ошибка в плагине.", ex);
}
}

Текст сообщения "Ошибка в плагине", передаваемый исключению позволяет определить, что ошибка произошла во время выполнения плагина.
Старый 12.11.2008, 17:42   #6  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,911 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Невнимательно читаете, Михаил. Нужно из другого приложения получить код ошибки. Веб сервис CRM вернет только общую ошибку.
Кроме того у вас код с душком. Второй catch ловит то, что выкидывает первый.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 13.11.2008, 09:07   #7  
Alexandr Zhuravlev is offline
Alexandr Zhuravlev
Участник
 
16 / 10 (1) +
Регистрация: 10.11.2008
Адрес: Питер
У SoapException есть свойство Detail типа XmlElement. Из него можно дернуть код ошибки и описание.
__________________
"Hello World!" 17 errors, 31 warnings
Старый 13.11.2008, 11:29   #8  
Белый Михаил is offline
Белый Михаил
Участник
 
2 / 10 (1) +
Регистрация: 01.10.2008
Вопрос был в том, как я понял, как определить, что ошибка произошла именно в плагине. И второй catch никак не поймает первый.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Не удаляются записи,хотя у меня админские права Системы! Alexey-IT Dynamics CRM: Функционал 7 05.08.2009 18:18
Тип сущности, использующей плагин Казарин Александр Dynamics CRM: Разработка 2 02.04.2009 20:29
Ошибка в плагине при создании связей N:N SJK Dynamics CRM: Разработка 4 18.03.2009 20:19
Событие "Назначение записи" для бизнес-процесса Lazarus Dynamics CRM: Функционал 1 22.01.2009 19:54
Общий доступ на записи tirex Dynamics CRM: Функционал 2 25.04.2007 13:34
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:37.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.