10.10.2012, 20:44 | #1 |
Участник
|
Ошибка создания продукта сделки при выполнении плагина.
Доброго времени суток!
Возникла следующая проблема. Создаю плагин для сущности OpportunityProduct, событие Create, этап PreCreate, синхронный. Код плагина: X++: public class TestPlugin : IPlugin { public void Execute( IServiceProvider serviceProvider ) { throw new InvalidPluginExecutionException( "Test Exception" ); } } Трейс прилагается. В чем может быть проблема? Версия CRM 2011, стоит роллап 10. |
|
12.10.2012, 10:20 | #2 |
Заноза в заднице
|
Всё логично
А указанный тип исключения (InvalidPluginExecutionException) как тип определяется в Visual Studio?
Каким образом создавался плагин? Event Log смотрели? Что в нём есть в указанное время? Судя по записям из трассировки, я сделал вывод о том, что вызываемое исключение неизвестно. Естественно, я понимаю, что данный вид исключения необходим для отладки, но попробуйте исключить из выполнения плагина строку throw, заменив её каким-нибудь предсказуемым вариантом исполнения. Думаю, что ошибка перестанет иметь место. Попробуйте вызвать данную ошибку на разных рабочих местах - возможно дело в конфигурации именно той машины, на которой Вы пытались исполнять действие по созданию продукта.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! Последний раз редактировалось Likefire; 12.10.2012 в 10:49. Причина: переосмыслил тему |
|
|
За это сообщение автора поблагодарили: drongo (1). |
12.10.2012, 11:14 | #3 |
Участник
|
Добрый день!
Не совсем понял, что значит "как именно определяется исключение в VS"? Плагин создавал в VS, как вручную, так и через CRM Developer Toolkit - результат идентичен. Если не выбрасывать исключение - ошибка не появляется. Но дело в том, что мне нужно прервать при определенных условиях создание продукта для сделки. поэтому необходимо сгенерировать исключение. Кстати, такая ошибка появляется не только при использовании InvalidPluginExecutionException, но и при использовании Exception. Еще заметил одну странность - при создании продукта сделки, почему-то в списке параметров Target отсутствует "Количество" (поле quantity).... Я сам полагаю, что проблема в каких-то особенностях именно моего сервера, но где именно искать - пока неясно... За совет посмотреть EventLog - спасибо, попробую, может быть там что найдется |
|
12.10.2012, 13:23 | #4 |
Заноза в заднице
|
Цитата:
В списке параметров Target отсутствуют те параметры, значения которых не определены. Если у Вас количество явно определено, то такого конечно быть не должно.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|
12.10.2012, 14:23 | #5 |
Участник
|
Проблему решил, хотя и довольно "мутным" способом.
Вначале поставил Rollup 11 - это не помогло. Затем снес сервер CRM и все что с ним связано, и поставил сервер заново (но не роллапы). Установил плагин - все работает, плагин выбрасывает исключение (как и должен), в плагин передаются все заданные параметры. Далее поставил rollup 6, rollup11 - вновь возник сбой, описанный в первом сообщении. Удалил rollup 11 (но не "подтянутые" им при установке роллапы 8 и 10) - все вновь заработало, как надо. Ошибка, видимо, возникает при установке роллапов, только не совсем понятно какого именно, т.к. изначально стоял роллап 10. Надеюсь, кому-то этот способ поможет... |
|
12.10.2012, 14:27 | #6 |
Участник
|
Цитата:
Сообщение от Likefire
В VS при вводе интеллисенс нормально "опознаёт" ввод типа исключения? Подает хинт, что тип его Microsoft.Xrm.Sdk.InvalidPluginExecutionException? Я подумал, мало ли: может в Using упоминается библиотека, в которой такой тип тоже присутствует, но если Вы говорите, что с простым Exception такая же ерунда, то тут сто процентов какой-то системный глюк. Надо смотреть EventViewer и уже по имеющимся там данным об ошибке (если таковая зарегистрирована) пробовать гуглить.
В списке параметров Target отсутствуют те параметры, значения которых не определены. Если у Вас количество явно определено, то такого конечно быть не должно. В EventViewer ничего толком не нашел, поэтому пришлось опробовать более радикальный способ (см. мое предыдушее сообщение). При создании продукта сделки, кол-во указывал. Поэтому и удивился, что его нету в списке параметров плагина... На данный момент проблема не возникает. |
|
|
|