![]() |
#11 |
Участник
|
так, с нуля опишу проблему, а то не уточнил момент:
1. есть интерес, связанный с откликом от кампании через кастомное поле (1:N) 2. у этого интереса есть закрытый отклик от кампании. 3. ответственный за отклик от кампании - выключенный пользователь/без ролей. 4. выполняем QualifyLeadRequest с таргетом - физлицо. получаем ошибки "нет ролей"/"не хватает привилегий" на ответственного за отклик от кампании пользователя. из трейса: at CrmException..ctor(String message, Exception innerException, Int32 errorCode, Boolean isFlowControlException) ilOffset = 0x0 at CrmException..ctor(String message, Exception innerException, Int32 errorCode) ilOffset = 0x0 at RuntimeMethodHandle._InvokeConstructor(IRuntimeMethodInfo method, Object[] args, SignatureStruct& signature, RuntimeType declaringType) ilOffset = 0xFFFFFFFF at RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) ilOffset = 0xD8 at RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) ilOffset = 0x1E7 at VersionedPluginProxyStepBase.WrapExceptionToThrow(CrmException exception) ilOffset = 0x89 at VersionedPluginProxyStepBase.Execute(PipelineExecutionContext context) ilOffset = 0x65 at Pipeline.Execute(PipelineExecutionContext context) ilOffset = 0x65 at MessageProcessor.Execute(PipelineExecutionContext context) ilOffset = 0x1C5 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 = 0x156 at OrganizationSdkServiceInternal.ExecuteRequest(OrganizationRequest request, CorrelationToken correlationToken, CallerOriginToken callerOriginToken, WebServiceType serviceType, UserAuth userAuth, Guid targetUserId, Boolean traceRequest, OrganizationContext context, Boolean returnResponse) ilOffset = 0x145 at OrganizationSdkServiceInternal.ExecuteRequest(OrganizationRequest request, CorrelationToken correlationToken, CallerOriginToken callerOriginToken, WebServiceType serviceType) ilOffset = 0x34 at OrganizationSdkServiceInternal.Execute(OrganizationRequest request, CorrelationToken correlationToken, CallerOriginToken callerOriginToken, WebServiceType serviceType) ilOffset = 0x24 at InprocessServiceProxy.ExecuteCore(OrganizationRequest request) ilOffset = 0x34 at PlatformCommand.XrmExecuteInternal() ilOffset = 0xF6 at QualifyLeadCommand.Execute() ilOffset = 0x6 at LeadRecordPageHandler.Qualify(Object sender, DataEventArgs e) ilOffset = 0x180 at DataEventProcessor.Raise(FormEventId eventId, FormState state, String objectId, Entity entity) ilOffset = 0x44 at AppForm.RaiseDataEvent(FormEventId eventId) ilOffset = 0x5E at EndUserForm.Initialize(Entity entity) ilOffset = 0x1F at CustomizableForm.Execute(Entity entity, FormDescriptor fd) ilOffset = 0x62 at LeadRecordPageHandler.ConfigureFormHandler() ilOffset = 0x66 at RecordPageHandler.ConfigureFormWrapper() ilOffset = 0xC at GenericEventProcessor.RaiseEvent(String eventName) ilOffset = 0x2D at PageManager.OnPreRender(EventArgs e) ilOffset = 0x53 at Control.PreRenderRecursiveInternal() ilOffset = 0x54 at Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) ilOffset = 0x69E at Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) ilOffset = 0x3C at Page.ProcessRequest() ilOffset = 0x14 at Page.ProcessRequest(HttpContext context) ilOffset = 0x31 at finamtest_userdefined_edit_aspx.ProcessRequest(HttpContext context) ilOffset = 0x8 c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\82ce50f4\e77f4ed8\App_Web_z0zmcp2g.1.cs at CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() ilOffset = 0x11D at HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) ilOffset = 0x15 at ApplicationStepManager.ResumeSteps(Exception error) ilOffset = 0x10E at HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) ilOffset = 0x5C at HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) ilOffset = 0xFC at ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType) ilOffset = 0x45 >Crm Exception: Message: SecLib::RetrievePrivilegeForUser failed - no roles are assigned to user. Returned hr = -2147209463, User: 1b858e94-1e71-e011-9c74-005056ba670c, ErrorCode: -2147209463, InnerException: Microsoft.Crm.CrmSecurityException: SecLib::RetrievePrivilegeForUser failed - no roles are assigned to user. Returned hr = -2147209463, User: 1b858e94-1e71-e011-9c74-005056ba670c at Microsoft.Crm.BusinessEntities.SecurityLibrary.RetrievePrivilegeForUser(IUser user, Guid privilege, ExecutionContext context) at Microsoft.Crm.BusinessEntities.SecurityLibrary.TryCheckPrivilege(Guid user, Guid privilege, ExecutionContext context) at Microsoft.Crm.BusinessEntities.SecurityLibrary.TryCheckPrivilege(SecurityPrincipal principal, Guid privilege, ExecutionContext context) at Microsoft.Crm.BusinessEntities.SecurityExtension.PreCreateHandlerEntityPrivilegeCheck(Object sender, SecurityTraits traits, SecurityAttributes attributes, ExtensionEventArgs e) at Microsoft.Crm.BusinessEntities.SecurityExtension.PreCreateHandler(ExtensionEventArgs e, Object sender) at Microsoft.Crm.BusinessEntities.BusinessProcessObject.PreCreateEventHandler.Invoke(Object sender, ExtensionEventArgs e) at Microsoft.Crm.BusinessEntities.BusinessProcessObject.Create(IBusinessEntity entity, ExecutionContext context) at Microsoft.Crm.ObjectModel.ContactService.Create(IBusinessEntity entity, ExecutionContext context) at Microsoft.Crm.ObjectModel.InitializeAndCreateUtility.InitializeAndCreate(BusinessEntityMoniker srcMoniker, BusinessEntity targetInput, ExecutionContext context) at Microsoft.Crm.ObjectModel.LeadService.QualifyLead(BusinessEntityMoniker leadId, Boolean createAccount, Boolean createContact, Boolean createOpportunity, BusinessEntityMoniker opportunityCurrencyId, BusinessEntityMoniker opportunityCustomerId, BusinessEntityMoniker sourceCampaignId, Int32 statusCode, ExecutionContext context) зачем СРМу этот SecurityCheck на связанную запись, по кастомному полю вообще (а не системное campaignresponse.customer) при создании физлица ? |
|
|
|