2011-12-19 9 views
1

私はプラグインを終了していますが、小さな問題が1つあります。 ifで参照フィールドを使用しようとしています。検索フィールドと比較

== operatorで試しても何も起こりません。 Equals() methodでは、object is not instantiatedという例外があります...私は間違っていますか?

プラグインは、レコードが作成されるときに操作前に実行されます。

+0

上記のコードでは、事前に例外をスローするため、 'if'は評価されません。それは正しいコードですか? – ChrisWue

+0

こんにちはクリス、投げられた例外は単なるテストでした。 – MademoiselleLenore

答えて

3

私はあなたが質問に入れたコードは、例外のために現在実行されていないので何とかテストするためにあなたが使用していると仮定しています。

Object not Instantiatedというエラーは、それがスズに記載されているとおりであることを意味し、modeleContrat変数には値がありません。

ので、コードは次のように、もう少し守備のようになります。modeleContratインスタンス化されていないためとして

EntityReference modeleContrat = (EntityReference)target.Attributes["new_modeldecontrat"]; 

if(modeleContrat != null && modeleContrat.Name == ("Contrat d'unité")) 
{ 
    //Do Stuff 
} 

。あなたのプラグインがPre-Createで実行中で、Targetから属性を取得しているので、プラグインコンテキストから入力パラメータを取り出して取得すると仮定しています。

これは問題ありませんが、Targetには保存されるレコードに設定されている属性のみが含まれます。レコードに設定しないと、nullになります。

+0

こんにちはクリス、ちょうどそれを解決! lookupfieldはデフォルトで別のエンティティに基づいて設定されているため、オブジェクトがインスタンス化されていないという事実はわかりませんでした。私は名前を回復しようとすると例外がありますが、IDを回復しようとしているときはありません。 – MademoiselleLenore

+0

嬉しいです。:)プラグインは、 – Chris

0

「何もしない」とは、実行すると予想されるロジックを意味しません。この場合、if文はfalseになります。

+0

実際には、文がfalseの場合でも、いくつかのフィールドを更新する必要があります。 – MademoiselleLenore

関連する問題