CRM组织请求-SetWordTemplate

时间:2018-11-19 21:33:46

标签: dynamics-crm crm dynamics-crm-online

我遇到的问题是,如果我运行与C#控制台应用程序中下面类似的代码,则不会有问题。该文档将根据需要另存为Notes内的Notes注释。

当我尝试在插件中运行代码时(以下),问题就来了。运行时,出现以下错误。 “无法从沙箱调用请求SetWordTemplate”。

我将文件作为附件放置到电子邮件中,因此理想情况下,该文件将全部放在插件中,而无需单独调用和运行工作流。

我的问题是我需要将整个过程转换为工作流程步骤,还是可以从插件内部实现?对于上下文,我在某一时刻更改了代码,并与目标Quote实体和documenttemplate实体的Guids均产生了错误。

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);
                }

0 个答案:

没有答案