Problem mit Ansichten und Filter

3. November 2015 11:50

Hallo Leute,

wir haben derzeit ein etwas größeres Problem mit unserem neuen CRM2015.
Bei ca. der Hälfte unserer User lassen sich keine perönlichen Ansichten speichern, auch persönliche Filter (sync mit Outlook Client für Kontakte etc) lassen sich nicht speichern.
Das Ganze betrifft wie es den Anschein hat nur User die bereits im System vorhanden sind. Neu angelegte User mit den gleichen Sicherheitsrollen haben kein Problem.
Kurze Vorgeschichte:
2011er Version migriert auf 2013 und im Anschluss auf 2015, beides über Erstellen einer SQL Datenbanksicherung, einspielen auf neuem SQL Server und anschließend Import der Organisation.
Hat auch ohne Probleme alles geklappt.
Hatte hier eventuell schon jemand mal ein solches Problem und eventuell eine Lösung?

THX
Andy

Re: Problem mit Ansichten und Filter

3. November 2015 15:42

Hallo,

und erst einmal herzlich willkommen in unserem Forum :-)

Habt ihr beim Update eventuell die Sprache des Betriebssystems oder des SQL Servers geändert, dann siehe hier: https://michaelsulz.wordpress.com/2015/07/08/crm-2013-benutzer-konnten-nicht-geandert-werden-nachdem-von-crm-online-auf-crm-onpremise-gewechselt-wurde/

Wurde eventuell etwas anderes außer der CRM Version geändert?

Re: Problem mit Ansichten und Filter

4. November 2015 10:30

Hallo,

es wurde außer CRM natürlich noch ein paar Sachen geändert z.B. euer SQL Server (2014).
In der OrganizationBase habe ich gerade nachgeschaut, steht korrekt auf DateFormatCode=2 und TimeFormatCode=0. Wir habe ja auch kein Problem beim anlegen von Usern.
Bei neuen Usern funktioniert ja auch alles :-( nur ein Teil der alten User haben das Problem.

Ich häng mal das Log dazu mit an, was entsteht, wenn man eine neue Ansicht bei dem betreffenden Usern speichern will.

Code:
>Web Service Plug-in failed in SdkMessageProcessingStepId: {CCCDBB1B-EA3E-DB11-86A7-000A3A5473E8}; EntityName: systemuser; Stage: 30; MessageName: UpdateUserSettings; AssemblyName: Microsoft.Crm.Extensibility.InternalOperationPlugin, Microsoft.Crm.ObjectModel, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35; ClassName: Microsoft.Crm.Extensibility.InternalOperationPlugin; Exception: Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Web.Services.Protocols.LogicalMethodInfo.Invoke(Object target, Object[] values)
   at Microsoft.Crm.Extensibility.InternalOperationPlugin.Execute(IServiceProvider serviceProvider)
   at Microsoft.Crm.Extensibility.V5PluginProxyStep.ExecuteInternal(PipelineExecutionContext context)
   at Microsoft.Crm.Extensibility.VersionedPluginProxyStepBase.Execute(PipelineExecutionContext context)
Inner Exception: Microsoft.Crm.CrmSecurityException: SecLib::AccessCheckEx failed. Returned hr = -2147187962, ObjectID: ce6e52d9-11f6-e311-9e8b-0050569f5082, OwnerId: 00000000-0000-0000-0000-000000000000,  OwnerIdType: 8 and CallingUser: ce6e52d9-11f6-e311-9e8b-0050569f5082. ObjectTypeCode: 150, objectBusinessUnitId: caa3c1a2-842b-df11-8ef7-005056bb3360, AccessRights: WriteAccess
   at Microsoft.Crm.BusinessEntities.SecurityLibrary.AccessCheckEx2(ExecutionContext context, SecurityPrincipal principal, SecurityPrincipal ownerPrincipal, Guid objectId, Int32 objectTypeCode, Guid objectBusinessUnitId, AccessRights rights)
   at Microsoft.Crm.BusinessEntities.SecurityLibrary.AccessCheckEx(ExecutionContext context, SecurityPrincipal ownerPrincipal, Guid objectId, Int32 objectTypeCode, Guid objectBusinessUnitId, AccessRights rights)
   at Microsoft.Crm.BusinessEntities.SecurityLibrary.AccessCheckEx(ExecutionContext context, SecurityAttributes attributes, AccessRights rights)
   at Microsoft.Crm.BusinessEntities.SecurityExtension.PreUpdateHandlerEntityPrivilegeCheck(Object sender, SecurityTraits traits, SecurityAttributes attributes, ExtensionEventArgs e)
   at Microsoft.Crm.BusinessEntities.SecurityExtension.PreUpdateHandler(ExtensionEventArgs e, Object sender)
   at Microsoft.Crm.BusinessEntities.BusinessProcessObject.PreUpdateEventHandler.Invoke(Object sender, ExtensionEventArgs e)
   at Microsoft.Crm.BusinessEntities.BusinessProcessObject.UpdateWithPipelineAndExtensions(IBusinessEntity entity, ExecutionContext context)
   at Microsoft.Crm.ObjectModel.UserSettingsServiceInternal`1.Update(IBusinessEntity usersettings, ExecutionContext context)
   at Microsoft.Crm.ObjectModel.SystemUserServiceInternal`1.UpdateUserSettings(Guid userId, UserSettings settings, ExecutionContext context)
.
[2015-10-06 13:18:50.320] Process: w3wp |Organization:670b7390-842b-df11-8ef7-005056bb3360 |Thread:   19 |Category: Exception |User: ce6e52d9-11f6-e311-9e8b-0050569f5082 |Level: Error |ReqId: c9744e20-9874-4e40-96df-348def25fe65 | CrmException..ctor  ilOffset = 0x7
   at CrmException..ctor(String message, Exception innerException, Int32 errorCode, Boolean isFlowControlException)  ilOffset = 0x7
   at CrmException..ctor(String message, Exception innerException, Int32 errorCode)  ilOffset = 0x5
   at RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)  ilOffset = 0xFFFFFFFF
   at RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)  ilOffset = 0xF7
   at RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)  ilOffset = 0x1E7
   at Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)  ilOffset = 0xBB
   at Activator.CreateInstance(Type type, Object[] args)  ilOffset = 0x39
   at VersionedPluginProxyStepBase.WrapExceptionToThrow(CrmException exception)  ilOffset = 0xA5
   at VersionedPluginProxyStepBase.Execute(PipelineExecutionContext context)  ilOffset = 0x65
   at PipelineInstrumentationHelper.Execute(Boolean instrumentationEnabled, String stopwatchName, ExecuteWithInstrumentation action)  ilOffset = 0x2D
   at Pipeline.Execute(PipelineExecutionContext context)  ilOffset = 0xD8
   at <>c__DisplayClass1.<RunStage>b__0()  ilOffset = 0x0
   at PipelineInstrumentationHelper.Execute(Boolean instrumentationEnabled, String stopwatchName, ExecuteWithInstrumentation action)  ilOffset = 0x2D
   at MessageProcessor.RunStage(PipelineExecutionContext context, Int32 pipelineStage)  ilOffset = 0x39
   at MessageProcessor.Execute(PipelineExecutionContext context)  ilOffset = 0x171
   at InternalMessageDispatcher.Execute(PipelineExecutionContext context)  ilOffset = 0xE4
   at ExternalMessageDispatcher.ExecuteInternal(IInProcessOrganizationServiceFactory serviceFactory, IPlatformMessageDispatcherFactory dispatcherFactory, String messageName, String requestName, Int32 primaryObjectTypeCode, Int32 secondaryObjectTypeCode, ParameterCollection fields, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId, Guid transactionContextId, Int32 invocationSource, Nullable`1 requestId, Version endpointVersion)  ilOffset = 0x16E
   at OrganizationSdkServiceInternal.ExecuteRequest(OrganizationRequest request, CorrelationToken correlationToken, CallerOriginToken callerOriginToken, WebServiceType serviceType, UserAuth userAuth, Guid targetUserId, OrganizationContext context, Boolean returnResponse, Boolean checkAdminMode)  ilOffset = 0x1EE
   at OrganizationSdkServiceInternal.ExecuteRequest(OrganizationRequest request, CorrelationToken correlationToken, CallerOriginToken callerOriginToken, WebServiceType serviceType, Boolean checkAdminMode)  ilOffset = 0x2D
   at OrganizationSdkServiceInternal.Execute(OrganizationRequest request, CorrelationToken correlationToken, CallerOriginToken callerOriginToken, WebServiceType serviceType, Boolean checkAdminMode)  ilOffset = 0x26
   at OrganizationSdkService.Execute(OrganizationRequest request)  ilOffset = 0xD
   at   ilOffset = 0xFFFFFFFF
   at SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)  ilOffset = 0x241
   at DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)  ilOffset = 0x100
   at ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)  ilOffset = 0x48
   at MessageRpc.Process(Boolean isOperationContextSet)  ilOffset = 0x62
   at Wrapper.Resume(Boolean& alreadyResumedNoLock)  ilOffset = 0x1B
   at ThreadBehavior.SynchronizationContextStartCallback(Object state)  ilOffset = 0x0
   at ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)  ilOffset = 0x70
   at ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)  ilOffset = 0x4
   at QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()  ilOffset = 0x0
   at ThreadPoolWorkQueue.Dispatch()  ilOffset = 0xA3

Re: Problem mit Ansichten und Filter

17. November 2015 11:41

Hi,

schau mal hier ob es das gleiche Problem ist.
http://www.msdynamics.de/viewtopic.php?f=65&t=28609&p=113816#p113816
Gruß
Jan

Re: Problem mit Ansichten und Filter

18. November 2015 09:23

Hallo,

Inner Exception: Microsoft.Crm.CrmSecurityException: SecLib::AccessCheckEx failed. Returned hr = -2147187962, ObjectID: ce6e52d9-11f6-e311-9e8b-0050569f5082, OwnerId: 00000000-0000-0000-0000-000000000000, OwnerIdType: 8 and CallingUser: ce6e52d9-11f6-e311-9e8b-0050569f5082. ObjectTypeCode: 150, objectBusinessUnitId: caa3c1a2-842b-df11-8ef7-005056bb3360, AccessRights: WriteAccess


Ich finde die Fehlermeldung recht aussagekräftig. Hier fehlt das Schreibrecht auf der Entität mit dem ObjectTypeCode 150 (UserSettings)

Re: Problem mit Ansichten und Filter

1. Dezember 2015 13:19

Die Frage die sich uns hier allerdings stellt, wie das Ganze passiert ist und warum einige User (bzw auch neu angelegte User) die Berechtiugung korrekt haben und andere wiederum nicht.
Die nächste Frage wäre, wie wir den Fehler bei den entsprechenden Usern beheben können, übers Frontend ist das leider nicht möglich :( dort sehen die Berechtigungen bei den Usern komplett gleich aus.
Könnte man direkt in der SQL Datenbank (und wenn ja, wo?) den Fehler beheben?