【发布时间】:2016-04-22 16:41:04
【问题描述】:
当我尝试在更新后插件阶段创建另一种类型的实体记录时,我收到“在第 20 阶段插件中不允许更改安全属性”错误。 它在 Dynamics CRM 2013 SP1 CRM 中运行良好。 将 CRM 2013 更新到 CRM 2015 后,出现此错误
【问题讨论】:
标签: dynamics-crm-2013 dynamics-crm-2015
当我尝试在更新后插件阶段创建另一种类型的实体记录时,我收到“在第 20 阶段插件中不允许更改安全属性”错误。 它在 Dynamics CRM 2013 SP1 CRM 中运行良好。 将 CRM 2013 更新到 CRM 2015 后,出现此错误
【问题讨论】:
标签: dynamics-crm-2013 dynamics-crm-2015
从预创建中删除逻辑并将其移动到其他实体的创建后。然后它会正常工作
【讨论】:
从插件图像中删除不需要的属性。仅选择插件中需要的属性。您可以在注册插件时设置它(不要勾选所有属性复选框)。删除安全相关属性(所有者,修改者,创建开)
【讨论】:
当组织迁移到 CRM 2015 时,有些人可能会在插件步骤中遇到此错误。 原因:
分辨率:
示例代码:
//Runs on the Pre-Validation step, when a Contact is created
if (context.Stage == 10)
{
if (!targetEntity.Attributes.Contains("parentcustomerid"))
{
throw new InvalidPluginExecutionException("Message to show....");
}
try
{
var accountOwner = (from a in orgServiceContext.AccountSet
where a.Id == targetContact.ParentCustomerId.Id
select a).Single();
targetEntity.Attributes["ownerid"] = new EntityReference("team", accountOwner.OwnerId.Id);
targetEntity.Attributes["owningbusinessunit"] = new EntityReference("businessunit", accountOwner.OwningBusinessUnit.Id);
}
catch
{
throw new InvalidPluginExecutionException("Message to show...");
}
}
找到另一个解决方案:将您的插件步骤移至预验证。
【讨论】: