2011-08-12 5 views
1

プラグインコンテキスト内のデフォルトエンティティ(email)のカスタム(拡張)プロパティを扱っていますが、アプローチが作成にもかかわらず動作しています(.Add())更新のためのものではありません(また、.Update()メソッドも関連付けられています)。実際のコードは次のとおりです。IPluginコンテキスト内でDynamics CRM 4.0カスタムプロパティを更新する方法

public class EmailPreCreateHandler : IPlugin 
{ 
     DynamicEntity dynamicEntity; 

     if (context.InputParameters.Properties.Contains("Target") 
      && context.InputParameters.Properties["Target"] is DynamicEntity) 
     { 
      dynamicEntity = (DynamicEntity)context.InputParameters.Properties["Target"]; 

      if (dynamicEntity.Name != EntityName.email.ToString()) { return; } 
     } 
     else { return; } 

     try 
     { 
      if (dynamicEntity.Properties.Contains("new_property1") 
       || dynamicEntity.Properties.Contains("new_property2")) 
      { 
       var new_property3 = new CrmBooleanProperty("new_property3", new CrmBoolean(true)); 
       dynamicEntity.Properties.Add(new_property3); 
      } 
     } 
     catch (SoapException exception) 
     { 
      throw new InvalidPluginExecutionException(
       "An error occurred with the plug-in.", exception); 
     } 
    } 
} 

私はこれを動作させるにはどうすればいいのでしょうか?

dynamicEntity.Properties.Remove(new_property3); 
dynamicEntity.Properties.Add(new_property3); 

登録の詳細

(組立)

  • 場所:データベース

(ステップ)

  • メッセージ:
  • プライマリエンティティを作成します。メール
  • 二エンティティ:なし
  • フィルタリング属性:すべてのユーザーのコンテキストで
  • ファイル名を指定して実行属性:呼び出しユーザーを
  • 実行順序:1
  • イベンティングパイプライン実行段階:前段階

本当にありがとうございます。ありがとうございます。

+1

登録について教えてください。前/後?どのメッセージ? – ccellar

+0

@ckeller:貢献してくれてありがとう - 私はプラグイン登録の詳細で投稿を更新しました。 –

答えて

2

new_property1またはnew_property2のいずれかがある場合は、new_property3を追加/更新するようです。

if (dynamicEntity.Properties.Contains("new_property1") || dynamicEntity.Properties.Contains("new_property2")) 
{ 
    dynamicEntity["new_property3"] = new CrmBoolean(true); 
} 

あなたはそれが存在するか、既存の値を上書きしない場合には、プロパティを作成するか書き込みアクセスするためdynamicEntity["new_property3"]にアクセスする場合。

+0

サンプルコードは実際には作成/上書きのコンセプトを表現していますが、私はあなたのアプローチを使って実装をリファクタリングしています。 –

+1

@Nanoよろしくお願いいたします。 Dynamics CRMのトピックに興味があり、[Microsoft Dynamics CRMの提案](http://area51.stackexchange.com/proposals/32455/microsoft-dynamics-crm?referrer=jHf4j_VcIgLKPEy52a9q2g2)をご覧ください。 – ccellar

関連する問題