1

当我尝试在更新后插件阶段创建另一种类型的实体记录时,出现“在第 20 阶段插件中不允许更改安全属性”错误。它在 Dynamics CRM 2013 SP1 CRM 中运行良好。将 CRM 2013 更新到 CRM 2015 后,出现此错误

4

3 回答 3

2

从预创建中删除逻辑并将其移动到其他实体的创建后。然后它会正常工作

于 2015-06-12T09:00:50.340 回答
2

从插件图像中删除不需要的属性。仅在插件中选择您需要的属性。您可以在注册插件时设置它(不要勾选所有属性复选框)。删除安全相关属性(所有者,修改者,创建于)

于 2015-06-15T06:36:47.533 回答
2

当组织迁移到 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...");
            }
        }

找到另一个解决方案:将您的插件步骤移至预验证。

于 2015-07-15T15:22:30.287 回答