Участник
|
Неизвестная ошибка при преобразовании интереса в сделку
При работе с CRM стала возникать такая ошибка:
ПРичем возникает она только в этой последовательности:
Заводим интерес, сохраняем, преобразовываем интерес в сделку (указываем новую организацию либо создаем через преобразование), ставим галку "Открыть новые записи".. жмем ОК.
Получаем карточку новой созданной сделки (преобразованной из интереса), дозаполняем обязательные поля - жмем "Сохранить и закрыть", видим на экране ошику:
+ Важно!
При повторном нажатии на "Сохрать + Закрыть" ошибка больше не возникает.
В случае если заводить сделку снуля, через сущность Возможные сделки (не через преобразование), то данной ошибки при "сохранении и закрытии" не возникает.
В событии формы "onSave" Обработчик события отключен (галка снята).
Из-за чего и какой ключ требуется не понятно.
Из Trace Microsoft CRM доставал такую запись лога:
PHP код:
[2010-07-13 16:20:11.1] Process: w3wp |Organization:2768dbac-48b7-4ee6-a3cc-de1d36049146 |Thread: 1 |Category: Exception |User: 7b189def-ad26-df11-9050-003048be732d |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 CrmService.Execute(Request request)
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 WebServiceHandler.Invoke()
at WebServiceHandler.CoreProcessRequest()
at SyncSessionlessHandler.ProcessRequest(HttpContext context)
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: 7b189def-ad26-df11-9050-003048be732d and PrivilegeId: f3b782a2-e6d5-4b86-9b7d-33f627fe5c5d, ErrorCode: -2147220960
[2010-07-13 16:20:11.1] Process: w3wp |Organization:2768dbac-48b7-4ee6-a3cc-de1d36049146 |Thread: 1 |Category: Platform |User: 7b189def-ad26-df11-9050-003048be732d |Level: Error | MessageProcessor.Execute
>MessageProcessor fail to process message 'RetrieveMultiple' for 'userquery'.
[2010-07-13 16:20:11.1] Process: w3wp |Organization:2768dbac-48b7-4ee6-a3cc-de1d36049146 |Thread: 1 |Category: Platform.Sdk |User: 7b189def-ad26-df11-9050-003048be732d |Level: Error | CompositeSoapExtensionExceptionHandler.Handle
>CrmSoapExtension detected CrmException:
System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Microsoft.Crm.BusinessEntities.CrmSecurityException: SecLib::CrmCheckPrivilege failed. Returned hr = -2147220960 on UserId: 7b189def-ad26-df11-9050-003048be732d and PrivilegeId: f3b782a2-e6d5-4b86-9b7d-33f627fe5c5d
at Microsoft.Crm.BusinessEntities.SecurityLibrary.CheckPrivilege(Guid user, Guid privilege, ExecutionContext context)
at Microsoft.Crm.BusinessEntities.SecurityExtension.DefaultSecuritySqlGenerator.CheckPrivilege(Guid user, Guid organizationId, EntityMetadata entityMetadata, ExecutionContext context)
at Microsoft.Crm.BusinessEntities.SecurityExtension.DefaultSecuritySqlGenerator.CreateSecuritySqlForRetrieveMultipleHelper(Guid user, EntityMetadata entityMetadata, FilterExpression criteriaNodeForSecurityFilter, ExecutionContext context, Boolean noLock)
at Microsoft.Crm.BusinessEntities.SecurityExtension.DefaultSecuritySqlGenerator.CreateSecuritySqlForRetrieveMultiple(Guid user, EntityMetadata entityMetadata, FilterExpression criteriaNodeForSecurityFilter, ExecutionContext context, Boolean noLock)
at Microsoft.Crm.BusinessEntities.SecurityExtension.CreateSecuritySql(Guid user, EntityMetadata entityMetadata, FilterExpression criteriaNodeForSecurityFilter, ExecutionContext context, Boolean noLock)
at Microsoft.Crm.BusinessEntities.SecurityExtension.AddSecuritySql(Guid user, EntityExpression entityExpression, ExecutionContext context)
at Microsoft.Crm.BusinessEntities.SecurityExtension.PreRetrieveMultipleHandler(ExtensionEventArgs e)
at Microsoft.Crm.BusinessEntities.SecurityExtension.PreRetrieveMultipleHandler(Object sender, ExtensionEventArgs e)
at Microsoft.Crm.BusinessEntities.BusinessProcessObject.PreRetrieveMultipleEventHandler.Invoke(Object sender, ExtensionEventArgs e)
at Microsoft.Crm.BusinessEntities.BusinessProcessObject.RetrieveMultiple(EntityExpression entityExpression, ExecutionContext context)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
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(IPluginExecutionContext context)
at Microsoft.Crm.Extensibility.PluginStep.Execute(PipelineExecutionContext context)
at Microsoft.Crm.Extensibility.Pipeline.Execute(PipelineExecutionContext context)
at Microsoft.Crm.Extensibility.MessageProcessor.Execute(PipelineExecutionContext context)
at Microsoft.Crm.Extensibility.InternalMessageDispatcher.Execute(PipelineExecutionContext context)
at Microsoft.Crm.Extensibility.ExternalMessageDispatcher.Execute(String messageName, Int32 primaryObjectTypeCode, Int32 secondaryObjectTypeCode, PropertyBag fields, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
at Microsoft.Crm.Sdk.RequestBase.Process(Int32 primaryObjectTypeCode, Int32 secondaryObjectTypeCode, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
at Microsoft.Crm.Sdk.RequestBase.Process(CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
at Microsoft.Crm.Sdk.CrmServiceInternal.Execute(RequestBase request, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
at Microsoft.Crm.Sdk.Crm2007.CrmService.Execute(Request request)
--- End of inner exception stack trace ---
[2010-07-13 16:21:10.4] Process: w3wp |Organization:2768dbac-48b7-4ee6-a3cc-de1d36049146 |Thread: 1 |Category: Platform.Sdk |User: f7345b57-872e-4dda-ad61-c54343120c7a |Level: Error | PluginStep.Execute
>Web Service Plug-in failed in SdkMessageProcessingStepId: {2DF52F59-4B75-DF11-BE54-003048BE732D}; EntityName: opportunity; Stage: 50; MessageName: Update; AssemblyName: OpportUpdateSD.OpportUpdateStartDateClass, OpportUpdateStartDate, Version=1.0.0.0, Culture=neutral, PublicKeyToken=87736e8901e5ff55; ClassName: OpportUpdateSD.OpportUpdateStartDateClass; Exception: Unhandled Exception: System.Collections.Generic.KeyNotFoundException: Данный ключ отсутствует в словаре.
в System.ThrowHelper.ThrowKeyNotFoundException()
в System.Collections.Generic.Dictionary`2.get_Item(TKey key)
в Microsoft.Crm.Sdk.PropertyCollection.get_Item(String propertyName)
в OpportUpdateSD.OpportUpdateStartDateClass.Execute(IPluginExecutionContext context)
в Microsoft.Crm.Extensibility.PluginStep.Execute(PipelineExecutionContext context)
.
[2010-07-13 16:21:10.4] Process: w3wp |Organization:2768dbac-48b7-4ee6-a3cc-de1d36049146 |Thread: 1 |Category: Application |User: 00000000-0000-0000-0000-000000000000 |Level: Error | ErrorInformation.LogError
>MSCRM Error Report:
--------------------------------------------------------------------------------------------------------
Error: Данный ключ отсутствует в словаре.
Error Number: 0x80040265
Error Message: Данный ключ отсутствует в словаре.
Error Details: Данный ключ отсутствует в словаре.
Source File: Not available
Line Number: Not available
Request URL: https://crmsrv02/DicoraCompany/sfa/opps/edit.aspx?id={BC1F05E9-788E-DF11-B1F4-003048BE732D}
Stack Trace Info: [KeyNotFoundException: Данный ключ отсутствует в словаре.]
в System.ThrowHelper.ThrowKeyNotFoundException()
в System.Collections.Generic.Dictionary`2.get_Item(TKey key)
в Microsoft.Crm.Sdk.PropertyCollection.get_Item(String propertyName)
в OpportUpdateSD.OpportUpdateStartDateClass.Execute(IPluginExecutionContext context)
в Microsoft.Crm.Extensibility.PluginStep.Execute(PipelineExecutionContext context)
[InvalidPluginExecutionException: Данный ключ отсутствует в словаре.]
в Microsoft.Crm.Extensibility.PluginStep.Execute(PipelineExecutionContext context)
в Microsoft.Crm.Extensibility.FilteredStep.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.UpdateCommand.Execute()
в Microsoft.Crm.Application.Platform.EntityProxy.Update(Boolean performDuplicateCheck)
в Microsoft.Crm.Application.Forms.AppForm.SaveEntity(EntityProxy entity, FormEventId eventType, String redirectPath, Boolean performDuplicateCheck)
Если кто-нибудь сталкивался с такой ошибкой, очень прошу подскажите её решение.
Заранее спасибо!
|