我遇到的问题是,如果我运行与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);
}