Запрос организации CRM - SetWordTemplate - PullRequest
0 голосов
/ 20 ноября 2018

У меня проблема в том, что если я запускаю код, аналогичный приведенному ниже, в консольном приложении C #, у меня нет проблем.Документ сохраняется как примечание к заметкам внутри цитаты по желанию.

Проблема возникает, когда я пытаюсь запустить код (ниже) в плагине.При запуске я получаю следующую ошибку.«Запрос SetWordTemplate не может быть вызван из песочницы».

Я помещаю файл как вложение в электронное письмо, поэтому в идеале это будет все внутри плагина без вызова и запуска рабочего процесса отдельно.

Мой вопрос: нужно ли преобразовывать весь процесс в шаг рабочего процесса или это возможно изнутри плагина?Для контекста я однажды изменил код и выдал ошибку с указаниями как целевого объекта Quote, так и объекта documenttemplate.

if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
        {
            Entity quoteEntity = (Entity)context.InputParameters["Target"];

            if (quoteEntity.LogicalName == "quote" &&
                quoteEntity.GetAttributeValue<Boolean>("pinnacle_emailquote") == true)
            {
                /***********************************************Template Run Attach to Quote Note Section***********************************************/
                var templateEntity = new Entity();

                var templateQuery = new QueryExpression
                {
                    EntityName = "documenttemplate",
                    ColumnSet = new ColumnSet(true)
                };

                templateQuery.Criteria.AddCondition("name", ConditionOperator.Equal, "New POP Quote Template");

                DataCollection<Entity> templateResponse =
                    localContext.OrganizationService.RetrieveMultiple(templateQuery).Entities;

                //go through each quote entity (should only be one) and pick out pricelevelid to get its name in string form
                foreach (var entity in templateResponse)
                {
                    templateEntity = entity;
                }

                OrganizationRequest req = new OrganizationRequest("SetWordTemplate");

                req["Target"] = new EntityReference("email", quoteEntity.Id);
                req["SelectedTemplate"] = new EntityReference("documenttemplate", templateEntity.Id);

                try
                {
                    localContext.OrganizationService.Execute(req);
                }
                catch (FaultException<OrganizationServiceFault> ex)
                {
                    string message = "An error occurred while creating template document";
                    throw new InvalidPluginExecutionException(
                        message + "    ....   " + ex.Message + "..." + ex.InnerException);
                }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...