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에 액세스하여 EntityDataCollection<Entity>에 추가해야합니다.

따라서 사전 정의 된 엔터티 newItem을 추가하려는 위치와 엔터티 인라인을 .Add(new {...})과 함께 추가하려는 위치 모두에서 코드 섹션 중 하나가 작동하지 않을 수 있습니다.

+0

수정 된 오타가 있었고 var retrievedResult = (EntityCollection) context.OutputParameters [ "BusinessEntityCollection"]로 변경되었으며 결과 변수 선언이 표시되었습니다. – noobie