Dynamics CRM 2016内部部署禁用用户不起作用

问题描述 投票:1回答:1

我们升级到CRM 365内部部署(8.2.2),我们使用自定义代码来停用用户,(将数据移动到另一个用户和其他东西)。最后,我们使用这个示例代码:https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/sample-disable-user但升级后它不再适用于我们。

现在我们得到'-1不是带有Id'的邮箱上的有效状态代码,并查看服务器上的错误,它看起来像这样:

[2018-09-17 08:07:45.297]进程:w3wp |组织:|主题:9 |类别:Platform.Sdk |用户:|级别:错误|请求:129694cd-1d73-4723-8d3e-ca9487294697 | ActivityId: ad01991a-c02a-4f1e-9db1-3a936a432752 | VersionedPluginProxyStepBase.Execute ilOffset = 0x64

SdkMessageProcessingStepId中的Web服务插件失败:{57CDBB1B-EA3E-DB11-86A7-000A3A5473E8}; EntityName:systemuser;阶段:30; MessageName:SetStateDynamicEntity; AssemblyName:Microsoft.Crm.Extensibility.InternalOperationPlugin,Microsoft.Crm.ObjectModel,Version = 8.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35; ClassName:Microsoft.Crm.Extensibility.InternalOperationPlugin;异常:未处理的异常:System.Reflection.TargetInvocationException:调用的目标抛出了异常。在System.RevlectionMethodHandle.InvokeMethod(Object target,Object [] arguments,Signature sig,Boolean constructor)at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj,Object [] parameters,Object [] arguments)at System.Reflection.RuntimeMethodInfo。在Microsoft.Crm.Extensibility.InternalOperationPlugin.Execute的System.Web.Services.Protocols.LogicalMethodInfo.Invoke(Object target,Object [] values)中调用(Object obj,BindingFlags invokeAttr,Binder binder,Object []参数,CultureInfo文化) (IServiceProvider serviceProvider)Microsoft.Crm.Extensibility.V5PluginProxyStep.ExecuteInternal(PipelineExecutionContext context)at Microsoft.Crm.Extensibility.VersionedPluginProxyStepBase.Execute(PipelineExecutionContext context)内部异常:Microsoft.Crm.CrmArgumentException:-1不是有效的状态代码带有Id的邮箱。 at Microsoft.Crm.BusinessEntities.StatusCodeValidator.Validate(EntityMetadata entityMetadata,Int32 stateCode,Int32 statusCode,Guid businessEntityId)at Microsoft.Crm.BusinessEntities.BusinessProcessObject.SetState(BusinessEntityMoniker moniker,Int32 newState,Int32 newStatusCode,BusinessEntity originalEntity,ExecutionContext context)at at Microsoft.Crm中的Microsoft.Crm.BusinessEntities.BusinessProcessObject.SetState(BusinessEntityMoniker moniker,Int32 newState,Int32 newStatusCode,ExecutionContext context),位于Microsoft.Crm.ObjectModel.MailboxServiceInternal1.SetState(BusinessEntityMoniker moniker, Int32 newState, Int32 newStatusCode, ExecutionContext context) at Microsoft.Crm.ObjectModel.SystemUserServiceInternal1.SetMailboxState(BusinessEntityMoniker moniker,Int32 newState,Int32 newStatusCode,ExecutionContext context)。 Microsoft.Crm.ObjectModel.SystemUserService.Microsoft.Crm.Sdk.IStateful.SetStateStatus(BusinessEntityMoniker,Int32,Int32,ExecutionContext)的ObjectModel.SystemUserServiceInternal`1.SetState(BusinessEntityMoniker moniker,Int32 newState,Int32 newStatusCode,ExecutionContext context)内部异常:小号ystem.ArgumentException:-1不是具有Id的邮箱上的有效状态代码。参数名称:stateCode

所以我试图首先停用用户邮箱,但它没有帮助。仍然是同一个问题。任何人有同样的问题并以某种方式解决它?

c# dynamics-crm
1个回答
0
投票

尝试使用IOrganizationService.Update()方法更新statecode / statuscode字段。

_service.Update(new SystemUser{ Id = <systemuserid>, StateCode= new OptionSetValue(1), StatusCode= new OptionSetValue(-1)});
© www.soinside.com 2019 - 2024. All rights reserved.