0

複数のメッセージを取得する(操作後の段階)カスタムエンティティで実行されるプラグインがあります。dynamics crm 365プラグイン例外値をnullにすることはできません。初期バインドクラスを使用してパラメータエンティティコレクションを出力するレコードを追加します。

出力エンティティコレクションにエンティティを追加しようとしています(読み取り専用のため、表示されているレコードは編集しません)。 初期バインドされたクラスは、SDKのCrmSvcUtilを使用して生成されます。

var retrievedResult= (EntityCollection)context.OutputParameters["BusinessEntityCollection"]; 
var results = new List<Entity>(); 

// THIS WORKS ------------------------------------ 
var newItem = new Entity("new_testentity"); 
newItem.Id = Guid.NewGuid(); 
newItem["new_name"] = "Test1"; 
results.Add(newItem); 
//------------------------------------------------ 

// THIS IS NOT WORKING - throws exeption as shown below the code snippet 
//results.Add(new new_testentity 
//{ 
// Id = Guid.NewGuid(), 
// new_name = "Test1" 
//}) 


// Add new entities to output collection 
retrievedResult.Entities.AddRange(results); 

// This appears in the log, which mean the exception has not occurred yet 
_trace.Trace("End of post operation..."); 

System.ArgumentNullException:値をnullにすることはできません。 パラメータ名:あなたはできませんEntityCollectionEntityを追加しようとしているresults.Add(...)ラインで値

enter image description here

+0

実際に発生しているエラーは何行ですか? – Daryl

+0

プラグインの操作後段階でエラーはまったくスローされません。最後の行にトレースを置くと、それは正常に到達します。 – noobie

+0

だから、いつ例外的になっていますか?それはトレースログにありますか? – Daryl

答えて

0

results.Entitiesにアクセスして、をDataCollection<Entity>に追加する必要があります。

私はそのためのコードのあなたのセクションのいずれかが働いている、両方のあなたが事前に定義されたエンティティnewItemを追加しようとしている場所とあなたが.Add(new {...})とあなたのエンティティをインラインで追加しようとしている場所を疑います。

+0

修正済みのタイプミスがあり、var retrievedResult =(EntityCollection)context.OutputParameters ["BusinessEntityCollection"]に変更され、結果変数の宣言が示されました。 – noobie

関連する問題