1

更新後のプラグイン ステージで別のタイプのエンティティ レコードを作成しようとすると、「ステージ 20 プラグインではセキュリティ属性の変更は許可されていません」というエラーが発生しました。Dynamics CRM 2013 SP1 CRM で問題なく動作しています。CRM 2013 を CRM 2015 に更新した後、このエラーが発生しました

4

3 に答える 3

2

プラグイン イメージから不要な属性を削除します。プラグインで必要な属性のみを選択します。プラグインを登録するときに設定できます (すべての属性のチェック ボックスをオンにしないでください)。セキュリティ関連の属性 (所有者、変更者、作成者) を削除します。

于 2015-06-15T06:36:47.533 に答える
2

組織が CRM 2015 に移行されているときに、プラグインの手順でこのエラーが発生する場合があります。原因:

  • レコードの作成前にレコードの所有権を変更します

解像度:

  • そこにあるほとんどのソリューションは、プラグインを操作後の段階に変更することについて述べていますが、これは、プラグインが実行できるアクション/チェックの一部には意味がありません。
  • したがって、割り当て操作を実行する前に、パイプライン ステージを確認することができます。 https://msdn.microsoft.com/en-us/library/gg327941.aspx#bkmk_PipelineStages

サンプルコード:

//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 に答える
2

作成前からロジックを削除し、他のエンティティの作成後に移動します。その後、正常に動作します

于 2015-06-12T09:00:50.340 に答える