Dynamics CRM 2016 на месте Отключить пользователя не работает - PullRequest
0 голосов
/ 17 сентября 2018

Мы обновились до CRM 365 на месте (8.2.2) и используем пользовательский код для деактивации пользователей (для передачи данных другому пользователю и других вещей).В конце мы используем этот пример кода: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/sample-disable-user Но это больше не работает для нас после обновления.

Теперь мы получаем '-1 - недопустимый код состояния в почтовом ящике с идентификатором'и, глядя на ошибку на сервере, она выглядит так:

[2018-09-17 08: 07: 45.297] Процесс: w3wp | Организация: | Тема: 9 | Категория: Platform.Sdk | Пользователь:| Level: Error | ReqId: 129694cd-1d73-4723-8d3e-ca9487294697 | ActivityId: ad01991a-c02a-4f1e-9db1-3a936a432752 |VersionedPluginProxyStepBase.Execute ilOffset = 0x64

Сбой подключаемого модуля веб-службы в SdkMessageProcessingStepId: {57CDBB1B-EA3E-DB11-86A7-000A3A5473E8};EntityName: systemuser;Стадия: 30;MessageName: SetStateDynamicEntity;AssemblyName: Microsoft.Crm.Extensibility.InternalOperationPlugin, Microsoft.Crm.ObjectModel, версия = 8.0.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35;ClassName: Microsoft.Crm.Extensibility.InternalOperationPlugin;Исключение: необработанное Исключение: System.Reflection.TargetInvocationException: Исключение было сгенерировано целью вызова.в System.RuntimeMethodHandle.InvokeMethod (аргументы Object target, Object [], сигнатура сигнатуры, логический конструктор) в System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal (параметры объекта obj, Object [], аргументы Object []) в System.Reflection.RuntimeMethoIn.Вызвать (Object obj, BindingFlags invokeAttr, Binder binder, Object [] параметры, CultureInfo culture) в System.Web.Services.Protocols.LogicalMethodInfo.Invoke (Object target, Object [] values) в Microsoft.Crm.Extensibility.InternalOperationPlugin.Execute(IServiceProvider serviceProvider) в Microsoft.Crm.Extensibility.V5PluginProxyStep.ExecuteInternal (контекст PipelineExecutionContext) в Microsoft.Crm.Extensibility.VersionedPluginProxyStepBase.Execute (контекст допустимого кода PipelineExecutionContext). Исключение внутреннего исключения.почтовый ящик с идентификатором.в Microsoft.Crm.BusinessEntities.StatusCodeValidator.Validate (EntityMetadata entityMetadata, Int32 stateCode, Int32 statusCode, Guid businessEntityId) в Microsoft.Crm.BusinessEntities.BusinessProcessObject.SetState (новый объект BusinessEntity, новый объект для бизнеса, новый объект для бизнеса, новый бизнес-объект, объект32Text)Microsoft.Crm.BusinessEntities.Microsoft.Crm.ObjectModel.SystemUserServiceInternal`1.SetState (моникер BusinessEntityMoniker, Int32 newState, Int32 newStatusCode, контекст ExecutionContext) в Microsoft.Crm.ObjectModel.SystemUserService.Microsoft.Crm.txtMaseTextStateTextStateTextStateTextState) Внутреннее исключение: Систem.ArgumentException: -1 не является допустимым кодом состояния в почтовом ящике с идентификатором.Имя параметра: stateCode

Поэтому я сначала попытался деактивировать почтовые ящики пользователей, но это не помогло.Все та же проблема.У кого-нибудь есть такая же проблема и как-то ее решить?

1 Ответ

0 голосов
/ 18 сентября 2018

Попробуйте использовать метод IOrganizationService.Update () для обновления полей кода состояния / статуса.

_service.Update(new SystemUser{ Id = <systemuserid>, StateCode= new OptionSetValue(1), StatusCode= new OptionSetValue(-1)});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...