|
![]() |
#1 |
Участник
|
В продолжении темы. Выбрать нужных пользователей получилось. Среди них по опредиленному алгоритму выбран один, который должен быть назначен в качестве ответственного.
В результате получаю ошибку: Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: Download the details and load with Plug-in Profiler. ....................................................................................................|Detail: <OrganizationServiceFault xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/xrm/2011/Contracts"> <ErrorCode>-2147220891</ErrorCode> <ErrorDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/System.Collections.Generic"> <KeyValuePairOfstringanyType> <d2p1:key>OperationStatus</d2p1:key> <d2p1:value xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:int">0</d2p1:value> </KeyValuePairOfstringanyType> </ErrorDetails> <Message>Download the details and load with Plug-in Profiler. .......................................................................................................</Message> <Timestamp>2011-08-24T09:09:50.5222849Z</Timestamp> <InnerFault i:nil="true" /> <TraceText> [PluginProfiler.Plugins: PluginProfiler.Plugins.ProfilerPlugin] [01e336b0-30ce-e011-82f4-00155d02de0e: BusinessAccountingPlugins.AccountRegistrationPlugin: Create of account (Profiler)] Ну и далее соответственно мой текст трэйса. Судя по которому плагин выполнился полностью. Сначала я подумал что у роли "Ведущий бухгалтер" не хватает привелегий, и действительно так и оказалось. При установке руками появлялось сообщение что у пользователя надостаточно привилегий. После установки: чтение, назначение, запись, общий доступ в ручную назначить получается. А через плагин не получается. Я пробовал менять: newAccount.Attributes["owninguser"] = user.Attributes["systemuserid"]; и newAccount.Attributes["ownerid"] = user.Attributes["systemuserid"]; Эффект тот же. Насколько я понимаю ErrorCode -2147220891 говорит о "ISV code aborted the operation.". Но в чем причина? Плагин работает в контексте моего пользователя, следовательно с теми же правами что и я работая через веб-интефейс. // Obtain the execution context from the service provider. Microsoft.Xrm.Sdk.IPluginExecutionContext context = (Microsoft.Xrm.Sdk.IPluginExecutionContext) serviceProvider.GetService(typeof(Microsoft.Xrm.Sdk.IPluginExecutionContext)); IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId); UPD: Как я понимаю owninguser только для чтения, значит логично что нужно менять ownerid, но service.Update(newAccount) не выполняет изменений. Последний раз редактировалось KP0H; 24.08.2011 в 14:08. |
|
Теги |
query, пользователи, роли, запрос (query) |
|
|