0

Ich habe ein Plugin, das auf einer benutzerdefinierten Entität auf die Abruf mehrerer Nachricht (post-Operation-Phase) ausgeführt wird.dynamics crm 365 Plugin-Ausnahme Wert kann nicht Null sein, Hinzufügen von Datensätzen zu Ausgabe-Parameterentitätssammlung mit früh gebundene Klasse

Ich versuche, der Ausgabeentitätssammlung zusätzliche Entitäten hinzuzufügen (zu schreibgeschützten Zwecken wird der Benutzer keine der angezeigten Datensätze bearbeiten). Die frühen gebundenen Klassen werden mithilfe von CrmSvcUtil aus dem SDK generiert.

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: Wert darf nicht null sein. Parametername: Wert

enter image description here

+0

In welcher Zeile tritt der Fehler tatsächlich auf? – Daryl

+0

In der Post-Operation-Phase des Plugins wird überhaupt kein Fehler ausgegeben. Wenn ich eine Kurve als letzte Linie platziere, erreicht sie diese erfolgreich. – noobie

+0

Wann bekommst du dann eine Ausnahme? Ist es im Ablaufverfolgungsprotokoll? – Daryl

Antwort

0

In der Zeile results.Add(...) Sie eine Entity zu einem EntityCollection hinzuzufügen sind versucht, was nicht möglich ist. Sie müssen einen Entity zu einem DataCollection<Entity> hinzufügen, indem Sie auf results.Entities zugreifen.

Ich bezweifle daher, dass einer Ihrer Codeabschnitte funktioniert, beide, wo Sie versuchen, die vordefinierte Entität newItem hinzuzufügen und wo Sie versuchen, Ihre Entität inline mit .Add(new {...}) hinzuzufügen.

+0

Es wurde ein Tippfehler korrigiert, geändert in var requestResult = (EntityCollection) context.OutputParameters ["BusinessEntityCollection"] und die Deklaration der Ergebnisvariablen angezeigt. – noobie

Verwandte Themen