14.09.2010, 20:14 | #1 |
Участник
|
Странное исключение при создании (назначении) нового действия в CRM 4.0
Здравствуйте, пишу по такому вопросу, намаялся с этой ошибкой уже - ничего не получается.
Вот собственно сама ошибка, возникает она при создании любого действия (Звонок, Факс, Задача и т.д.) как напрямую из рабочей области так из объекта (Контакт, Интерес, Организация и т.д.) т.е. каждый раз при создании действия. А вот лог этой ошибки из Trace: X++: [2010-09-14 19:32:57.0] Process: w3wp |Organization:2768dbac-48b7-4ee6-a3cc-de1d36049146 |Thread: 7 |Category: Exception |User: f7345b57-872e-4dda-ad61-c54343120c7a |Level: Error | CrmException..ctor at CrmException..ctor(String message, Int32 errorCode) at CrmSecurityException..ctor(String message, Int32 errorCode) at SecurityLibrary.CheckPrivilege(Guid user, Guid privilege, ExecutionContext context) at DefaultSecuritySqlGenerator.CheckPrivilege(Guid user, Guid organizationId, EntityMetadata entityMetadata, ExecutionContext context) at DefaultSecuritySqlGenerator.CreateSecuritySqlForRetrieveMultipleHelper(Guid user, EntityMetadata entityMetadata, FilterExpression criteriaNodeForSecurityFilter, ExecutionContext context, Boolean noLock) at DefaultSecuritySqlGenerator.CreateSecuritySqlForRetrieveMultiple(Guid user, EntityMetadata entityMetadata, FilterExpression criteriaNodeForSecurityFilter, ExecutionContext context, Boolean noLock) at SecurityExtension.CreateSecuritySql(Guid user, EntityMetadata entityMetadata, FilterExpression criteriaNodeForSecurityFilter, ExecutionContext context, Boolean noLock) at SecurityExtension.AddSecuritySql(Guid user, EntityExpression entityExpression, ExecutionContext context) at SecurityExtension.PreRetrieveMultipleHandler(ExtensionEventArgs e) at SecurityExtension.PreRetrieveMultipleHandler(Object sender, ExtensionEventArgs e) at PreRetrieveMultipleEventHandler.Invoke(Object sender, ExtensionEventArgs e) at BusinessProcessObject.RetrieveMultiple(EntityExpression entityExpression, ExecutionContext context) at RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) at RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) at RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) at RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at LogicalMethodInfo.Invoke(Object target, Object[] values) at InternalOperationPlugin.Execute(IPluginExecutionContext context) at PluginStep.Execute(PipelineExecutionContext context) at Pipeline.Execute(PipelineExecutionContext context) at MessageProcessor.Execute(PipelineExecutionContext context) at InternalMessageDispatcher.Execute(PipelineExecutionContext context) at ExternalMessageDispatcher.Execute(String messageName, Int32 primaryObjectTypeCode, Int32 secondaryObjectTypeCode, PropertyBag fields, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId) at RequestBase.Process(Int32 primaryObjectTypeCode, Int32 secondaryObjectTypeCode, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId) at RequestBase.Process(CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId) at CrmServiceInternal.Execute(RequestBase request, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId) at InProcessCrmService.Execute(Object request) at PlatformCommand.ExecuteInternal() at RetrieveMultipleCommand.Execute() at Queue.RetrieveQueueByObject(Guid entityId, EntityType entityType, QueryExpression query) at Queue.RetrieveQueueByObject(Guid entityId, EntityType entityType, String[] columns) at AssignRouteOnCreateUpdateListener.RouteEntity(Entity entity, LookupValue owner) at AssignRouteOnCreateUpdateListener.AssignRouteEntity(Entity entity, LookupValue owner) at AssignRouteOnCreateUpdateListener.HandlePostEvent(PlatformCommand command, Response response, Boolean wasForUpdate) at CommunicationListener.HandlePostEvent(PlatformCommand command, Response response) at PlatformCommand.ExecuteInternal() at UpdateCommand.Execute() at EntityProxy.Update(Boolean performDuplicateCheck) at EntityProxy.Update() at AppForm.HandleFormEventAssign(Boolean gridRefreshCallbackAdded) at AppForm.RaiseDataEvent(FormEventId eventId) at EndUserForm.Initialize(Entity entity) at CustomizableForm.Execute(Entity entity, String formType) at CustomizableForm.Execute(Entity entity) at BasicActivityPage.ConfigureForm() at FaxDetailPage.ConfigureForm() at AppUIPage.OnPreRender(EventArgs e) at Control.PreRenderRecursiveInternal() at Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at Page.ProcessRequest() at Page.ProcessRequestWithNoAssert(HttpContext context) at Page.ProcessRequest(HttpContext context) at korusconsulting_activities_fax_edit_aspx.ProcessRequest(HttpContext context) c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\fcc31ff6\e77f4ed8\App_Web_mu_dzo7_.0.cs at CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) at ApplicationStepManager.ResumeSteps(Exception error) at HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) at HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) at HttpRuntime.ProcessRequestNoDemand(HttpWorkerRequest wr) at ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType) >Crm Exception: Message: SecLib::CrmCheckPrivilege failed. Returned hr = -2147220960 on UserId: a0cb17c4-ad26-df11-9050-003048be732d and PrivilegeId: b140e729-dfeb-4ba1-a33f-39ff830bac90, ErrorCode: -2147220960 [2010-09-14 19:32:57.0] Process: w3wp |Organization:2768dbac-48b7-4ee6-a3cc-de1d36049146 |Thread: 7 |Category: Platform |User: f7345b57-872e-4dda-ad61-c54343120c7a |Level: Error | MessageProcessor.Execute >MessageProcessor fail to process message 'RetrieveMultiple' for 'queue'. [2010-09-14 19:32:57.0] Process: w3wp |Organization:2768dbac-48b7-4ee6-a3cc-de1d36049146 |Thread: 7 |Category: Application |User: 00000000-0000-0000-0000-000000000000 |Level: Error | ErrorInformation.LogError >MSCRM Error Report: -------------------------------------------------------------------------------------------------------- Error: . Error Number: 0x80040220 Error Message: SecLib::CrmCheckPrivilege failed. Returned hr = -2147220960 on UserId: a0cb17c4-ad26-df11-9050-003048be732d and PrivilegeId: b140e729-dfeb-4ba1-a33f-39ff830bac90 Error Details: SecLib::CrmCheckPrivilege failed. Returned hr = -2147220960 on UserId: a0cb17c4-ad26-df11-9050-003048be732d and PrivilegeId: b140e729-dfeb-4ba1-a33f-39ff830bac90 Source File: Not available Line Number: Not available Request URL: http://crmsrv02:5555/OrgName/activities/fax/edit.aspx?id={D2E8B6A7-0FC0-DF11-9EE4-003048BE732D} Stack Trace Info: [CrmSecurityException: SecLib::CrmCheckPrivilege failed. Returned hr = -2147220960 on UserId: a0cb17c4-ad26-df11-9050-003048be732d and PrivilegeId: b140e729-dfeb-4ba1-a33f-39ff830bac90] Microsoft.Crm.BusinessEntities.SecurityLibrary.CheckPrivilege(Guid user, Guid privilege, ExecutionContext context) Microsoft.Crm.BusinessEntities.SecurityExtension.DefaultSecuritySqlGenerator.CheckPrivilege(Guid user, Guid organizationId, EntityMetadata entityMetadata, ExecutionContext context) Microsoft.Crm.BusinessEntities.SecurityExtension.DefaultSecuritySqlGenerator.CreateSecuritySqlForRetrieveMultipleHelper(Guid user, EntityMetadata entityMetadata, FilterExpression criteriaNodeForSecurityFilter, ExecutionContext context, Boolean noLock) Microsoft.Crm.BusinessEntities.SecurityExtension.DefaultSecuritySqlGenerator.CreateSecuritySqlForRetrieveMultiple(Guid user, EntityMetadata entityMetadata, FilterExpression criteriaNodeForSecurityFilter, ExecutionContext context, Boolean noLock) Microsoft.Crm.BusinessEntities.SecurityExtension.CreateSecuritySql(Guid user, EntityMetadata entityMetadata, FilterExpression criteriaNodeForSecurityFilter, ExecutionContext context, Boolean noLock) Microsoft.Crm.BusinessEntities.SecurityExtension.AddSecuritySql(Guid user, EntityExpression entityExpression, ExecutionContext context) Microsoft.Crm.BusinessEntities.SecurityExtension.PreRetrieveMultipleHandler(ExtensionEventArgs e) Microsoft.Crm.BusinessEntities.SecurityExtension.PreRetrieveMultipleHandler(Object sender, ExtensionEventArgs e) Microsoft.Crm.BusinessEntities.BusinessProcessObject.PreRetrieveMultipleEventHandler.Invoke(Object sender, ExtensionEventArgs e) Microsoft.Crm.BusinessEntities.BusinessProcessObject.RetrieveMultiple(EntityExpression entityExpression, ExecutionContext context) [TargetInvocationException: .] System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) System.Web.Services.Protocols.LogicalMethodInfo.Invoke(Object target, Object[] values) Microsoft.Crm.Extensibility.InternalOperationPlugin.Execute(IPluginExecutionContext context) Microsoft.Crm.Extensibility.PluginStep.Execute(PipelineExecutionContext context) Microsoft.Crm.Extensibility.Pipeline.Execute(PipelineExecutionContext context) Microsoft.Crm.Extensibility.MessageProcessor.Execute(PipelineExecutionContext context) Microsoft.Crm.Extensibility.InternalMessageDispatcher.Execute(PipelineExecutionContext context) Microsoft.Crm.Extensibility.ExternalMessageDispatcher.Execute(String messageName, Int32 primaryObjectTypeCode, Int32 secondaryObjectTypeCode, PropertyBag fields, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId) Microsoft.Crm.Sdk.RequestBase.Process(Int32 primaryObjectTypeCode, Int32 secondaryObjectTypeCode, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId) Microsoft.Crm.Sdk.RequestBase.Process(CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId) Microsoft.Crm.Sdk.CrmServiceInternal.Execute(RequestBase request, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId) Microsoft.Crm.Sdk.InProcessCrmService.Execute(Object request) Microsoft.Crm.Application.Platform.ServiceCommands.PlatformCommand.ExecuteInternal() Microsoft.Crm.Application.Platform.ServiceCommands.RetrieveMultipleCommand.Execute() Microsoft.Crm.Application.Platform.Queue.RetrieveQueueByObject(Guid entityId, EntityType entityType, QueryExpression query) Microsoft.Crm.Application.Platform.Queue.RetrieveQueueByObject(Guid entityId, EntityType entityType, String[] columns) Microsoft.Crm.Application.Platform.CommunicationListeners.AssignRouteOnCreateUpdateListener.RouteEntity(Entity entity, LookupValue owner) Microsoft.Crm.Application.Platform.CommunicationListeners.AssignRouteOnCreateUpdateListener.AssignRouteEntity(Entity entity, LookupValue owner) Microsoft.Crm.Application.Platform.CommunicationListeners.AssignRouteOnCreateUpdateListener.HandlePostEvent(PlatformCommand command, Response response, Boolean wasForUpdate) Microsoft.Crm.Application.Platform.CommunicationListeners.CommunicationListener.HandlePostEvent(PlatformCommand command, Response response) Microsoft.Crm.Application.Platform.ServiceCommands.PlatformCommand.ExecuteInternal() Microsoft.Crm.Application.Platform.ServiceCommands.UpdateCommand.Execute() Microsoft.Crm.Application.Platform.EntityProxy.Update(Boolean performDuplicateCheck) Microsoft.Crm.Application.Platform.EntityProxy.Update() Microsoft.Crm.Application.Forms.AppForm.HandleFormEventAssign(Boolean gridRefreshCallbackAdded) Microsoft.Crm.Application.Forms.AppForm.RaiseDataEvent(FormEventId eventId) http://mmcrm.ru/?p=1303 пошел по первому пути через SQL Management Studio получил привилегию с которой возникала ошибка. Зашел в настройки ролей и поставил зеленый кружочек на чтение "Списки ожидания". Оказывается есть такой баг, что если убрать чтение объекта Queue (Списки ожидания), то пользователи не смогу создавать задачи и назначать их другим пользователям, даже если права на назначение, создание, запись, удаление, добавление, добавление к, Общий доступ стоят на уровне "Организация". В дополнение к функции Назначение в объекте Действия необходимо ставить права на Чтение объекта Списки ожидания. Я ведь почему этот объект вообще изначально скрыл, т.к. посчитал что ненужная функциональность пользователям ник чему.... теперь придется системным (UNSPPORT-ным методом) из рабочей области убирать "Списки ожидания". Кто поможет как это сделать?? Заранее спасибо! |
|
14.09.2010, 20:24 | #2 |
Чайный пьяница
|
Зачем ансапорт там, где можно использовать сапортные? Выгрузите и отредактируйте SiteMap системы убрав ненужные области. Очень полезный инструмент для этого.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
14.09.2010, 20:26 | #3 |
Участник
|
Спасибо!
|
|
Теги |
действия, назначение, список ожидания, dynamics crm |
|
|