|
11.08.2014, 15:53 | #1 |
Участник
|
Отмена изменений Note-s в Account в Crm 2013
С Б.П
Всем привет, Задача такая: контролировать возможность users изменять Note-s v Account. Если в кастомизациях отменить "Write" - то тогда пропадает возможность создавать Notes. 1. Какие есть варианты реализовать эту задачу, кроме плагина? 2. Если через плагин на PreUpdate => написал: Entity target = PluginOperations.GetContextTarget(m_pluginExecutionContext, out success); if (success) { string[] rolesFromSystemParams = RetrieveRolesFromSystemParameters(); if (rolesFromSystemParams != null && rolesFromSystemParams.Length > 0) { bool canUpdate = RetrieveLogedInUserRoles(rolesFromSystemParams); if (!canUpdate) { throw new InvalidPluginExecutionException("The user has no priveleges to update note records.") { Source = "Plugin : NoteBL. Method : PreUpdateAnnotation. The user has no priveleges to update note records" }; } } else { throw new InvalidPluginExecutionException("The user has no priveleges to update note records.") { Source = "Plugin : NoteBL. Method : PreUpdateAnnotation. The user has no priveleges to update note records" }; } } => В таком случае выскакивает 2! сообщения об ошибке : и после нажатия ОК: Можно ли убрать первое сообщение об ошибке и почему оно вообще появилось? Можно ли изменить Business Process Error на мое сообщение? Спасибо Последний раз редактировалось gibor2000; 11.08.2014 в 15:55. |
|
12.08.2014, 10:44 | #2 |
Moderator
|
Все верно. Единственный системный метод проконтролировать изменения известный мне - это плагин. Изменить внешний вид страницы сообщения, увы, нельзя. Однако, должно отображаться только одно сообщение. Возможно, проблема в том, что ваш плагин нарушает работу какой-то системной логики, потому ошибки вылетает 2. В этом случае, в системном логе тоже должно быть две записи об ошибке. Думаю это позволит пролить свет на то что происходит.
p.s. У меня не было опыта подобной работы с 2013, возможно что-то изменилось. Если лог не прольет свет на происходящее, попробуйте написать простой плагин для другой системной сущности, который бы просто выбрасывал исключение. Интересно сколько сообщений об ошибке будет в этом случае.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
|
За это сообщение автора поблагодарили: gibor2000 (1). |
12.08.2014, 12:46 | #3 |
Участник
|
С Б.П
Спасибо за ответ. Отменил все свои кастомные плагины кроме этого - тоже самое В системном логе - это где ты имеешь ввиду? в Trace ili v EventViewer v Windows Logs - Application? - посмотрел в EventViewer - вообще не увидел там ошибки. В Trace есть упоминание об ошибки , но не могу найти там где именно выскакивает первое сообщение (Trace прикрепил) plugin_error.txt По поводу предложения сделать простой плагин с Exceptions Сделал плагин на AccountUpdate - только выброс Exception - там только одно окно- Business Process Error protected void ExecutePostAccountUpdate(LocalPluginContext localContext) { throw new InvalidPluginExecutionException("ACCOUNT : TEST TEST TEST") { Source = "ACCOUNT : TEST" }; } тоже самое и на Pre-UpdateStage |
|
12.08.2014, 13:56 | #4 |
Moderator
|
Раз мы пошли эмпирическим путем, попробуйте перевесить плагин, который выбрасывает исключение на изменение Annotation.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
12.08.2014, 14:50 | #5 |
Участник
|
Цитата:
Я пробовал этот код и для Annotation (note) PreUpdate: protected void ExecutePreNoteUpdate(LocalPluginContext localContext) { throw new InvalidPluginExecutionException(" NOTE : TEST TEST TEST") { Source = NOTE : TEST" }; } Без вызова какого-то другого кода + отменил все другие кастомные плагины Как дополнительная проверка добавил плагин : Plugin Description="Plug-in to PreValidateNoteUpdate" FriendlyName="PreValidateNoteUpdate" Все равно две ошибки |
|
12.08.2014, 15:01 | #6 |
Чайный пьяница
|
А нельзя в пре плагине через имадж получать старое значение, перетирать им новое введённое, если у пользователя нет прав на внесение изменений, а над табом с записями повесить большой дисклеймер, который при необходимости объяснит это?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
12.08.2014, 15:04 | #7 |
Участник
|
Цитата:
Вопрос в этом случае - как сообщить юзеру. Дать ему алерт или что-то в этом роде Что такое : а над табом с записями повесить большой дисклеймер? Что ты имеешь ввиду? |
|
12.08.2014, 15:13 | #8 |
Чайный пьяница
|
Цитата:
А по поводу запрещать - не запрещать. С плагинами, думаю, намучаешься. Мой совет изучай контрол и как в него можно внедрить свой код.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
|