2

電子メール エンティティのプラグインを作成し、Pre Create イベント (子パイプライン) に登録しました。プラグインは可能な限りシンプルです。

public class AddDescription : IPlugin
{
    public void Execute(IPluginExecutionContext context)
    {
        DynamicEntity di = (DynamicEntity)context.InputParameters["Target"];

        di.Properties["description"] = "blabla";
    }
}

ただし、説明 (=メール本文) は同じままです。例外はスローされません。デバッグしたところ、Properties コレクションが変更されたように見えますが ('blabla' の説明が追加されました)、保存されていません。

アカウント エンティティ (作成前、子パイプライン) に同じプラグインを登録すると、正常に動作します。

電子メール エンティティには、作成時のプロパティの変更に関する制限がありますか?!!?

編集(詳細):

説明、件名、カテゴリ、サブカテゴリを変更しようとしましたが、驚いたことに、カテゴリとサブカテゴリが変更されましたが、説明と件名は変更されませんでした。

さようならヘルプの tnx

4

3 に答える 3

2

なぜあなたは子パイプラインにいるのですか? 私の推測では、ベース アクティビティはメイン パイプラインで作成され、子アクティビティ (Matt が指摘するように、非共有属性のみが含まれます) は子パイプラインを通過します。これは親パイプラインで期待どおりに機能しますか? 子パイプラインでキャッチしなければならないシナリオがあるのではないでしょうか?

于 2009-08-19T16:35:35.457 に答える
1

私の推測では、件名と説明は (activitypointer エンティティの) すべてのアクティビティで共有される属性であり、カテゴリとサブカテゴリは電子メール エンティティにあるためです。

デバッグするときは、別の DynamicEntity であるプロパティがあるかどうかを確認します...これは、アクティビティに移動するプロパティが格納されている場所である可能性があります。

于 2009-08-18T17:17:57.910 に答える
0

これが解決策です。

 ((DynamicEntity)context.InputParameters.Properties["Target"]).Properties["propertyname"]="propertyvalue";

このエンティティにこのプロパティがない場合は、追加する必要があります。たとえば、ターゲットのプロパティを含まない文字列プロパティを設定したいとします。コードは次のとおりです。

((DynamicEntity)context.InputParameters.Properties["Target"]).Properties.Add(CrmTypes.CreateStringProperty("propertyname", "propertyvalue"));
于 2010-06-14T15:54:40.607 に答える