05.01.2012, 20:11 | #1 |
Участник
|
Plugin из под Admin
Господа, подскажите пожалуйста
Столкнулся с такой проблемой. Есть объект звонок, при его сохранении создается объект кастомной сущности, прав на чтение и создание которой у данного пользователя не должно быть. Можно ли заставить плагин работать из под админа? В Plugin Registration Tool - выбираю в поле Run in User Context админа, но все равно не срабатывает, выдает ошибку. Подскажите, как можно это обойти ? Заранее благодарен Пробовал поступить через IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); string t = "73E3BB87-55B3-E011-9B86-00155D053B37"; - айдишник админа Guid CallUserId=Guid.Parse(t); _serviceProxy.CallerId = CallUserId; _service = serviceFactory.CreateOrganizationService(context.UserId); //(context.UserId); orgContext = new OrganizationServiceContext(_service); ITracingService trace = (ITracingService)serviceProvider.GetService(typeof(ITracingService)); Но плагин не отрабатывает вообще. object reference not set to an instance of an object Последний раз редактировалось 2rik; 05.01.2012 в 21:26. |
|
06.01.2012, 23:56 | #2 |
Участник
|
Да, можно запустить плагин от имени админа, вот пример работающего кода:
X++: IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); IOrganizationService serviceAdmin = serviceFactory.CreateOrganizationService(new Guid ("73E3BB87-55B3-E011-9B86-00155D053B37")); |
|
|
За это сообщение автора поблагодарили: 2rik (1). |
07.01.2012, 00:53 | #3 |
Участник
|
Спасибо, как только окажусь возле срм - попробую.
Где именно вылетает - так и не успел найти. |
|
07.01.2012, 15:41 | #4 |
Moderator
|
Цитата:
Сообщение от 2rik
Господа, подскажите пожалуйста
Столкнулся с такой проблемой. Есть объект звонок, при его сохранении создается объект кастомной сущности, прав на чтение и создание которой у данного пользователя не должно быть. Можно ли заставить плагин работать из под админа? В Plugin Registration Tool - выбираю в поле Run in User Context админа, но все равно не срабатывает, выдает ошибку. Подскажите, как можно это обойти ? Заранее благодарен Пробовал поступить через IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); string t = "73E3BB87-55B3-E011-9B86-00155D053B37"; - айдишник админа Guid CallUserId=Guid.Parse(t); _serviceProxy.CallerId = CallUserId; _service = serviceFactory.CreateOrganizationService(context.UserId); //(context.UserId); orgContext = new OrganizationServiceContext(_service); ITracingService trace = (ITracingService)serviceProvider.GetService(typeof(ITracingService)); Но плагин не отрабатывает вообще. object reference not set to an instance of an object Guid можно создавать через конструкцию Код: Guid CallUserId = new Guid("73E3BB87-55B3-E011-9B86-00155D053B37");
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
11.01.2012, 13:32 | #5 |
Участник
|
Вы правы, спасибо. Действительно ошибка была в коде, а не в контексте. Все работает, благодарю
|
|
|
|