CRM 2011 Обновление системного пользователя при создании новой учетной записи

Я пытаюсь заполнить поле в объекте пользователя системы всякий раз, когда пользователь создает учетную запись. Я продолжаю получать ошибки при попытке получить объект пользователя системы, чтобы я мог заполнить его атрибуты. Мой код выглядит следующим образом:

public void Execute(IServiceProvider serviceProvider)
        {
            ITracingService tracingservice = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
            IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));

            IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
            IOrganizationService service = factory.CreateOrganizationService(context.InitiatingUserId);

            if (context.InputParameters.Contains("Target") &&
               context.InputParameters["Target"] is Entity)
            {
                try
                {
                    //Get entity that fired plugin
                    Entity entMain = (Entity)context.InputParameters["Target"];

                    //Make a String for the last activity entity
                    String strLastEntity = "";

                    //Make the entity for the user entity
                    Entity entUser = (Entity)service.Retrieve("systemuser", context.InitiatingUserId, new ColumnSet(new String[] { "new_lastactivityentity" }));

                    //Get the entity type that fired the plugin and set it to the right field for the user entity
                    if (entMain.LogicalName.Equals("account"))
                    {
                        strLastEntity = entMain.LogicalName;
                        entUser["new_lastactivityentity"] = strLastEntity;
                    }
                }
                catch (Exception ex)
                {
                    tracingservice.Trace("FollowupPlugin: {0}", ex.ToString());
                    throw;
                }
            }
        }

Ошибка: не удалось загрузить файл или сборку «PluginRegistration, версия = 2.1.0.1, культура = нейтральная, PublicKeyToken = null» или одна из ее зависимостей. Система не может найти указанный файл.

Может кто-нибудь объяснить, как получить системного пользователя, чтобы я мог обновить его атрибуты?


person user2180786    schedule 06.06.2013    source источник


Ответы (1)


Это связано с тем, что у вас есть ссылка на сборку, которая не установлена ​​на сервере, в частности, это PluginRegistration.

Вы можете поместить эту dll в GAC на сервере, однако это не сработает для CRM Online (или, я полагаю, при регистрации в песочнице).

Является ли PluginRegistration ссылкой на сборку Microsoft, используемую в инструменте регистрации подключаемых модулей? Вообще говоря, вам не нужна ссылка на это в вашем проекте, поэтому вы можете попробовать удалить ссылку.

person James Wood    schedule 07.06.2013