2012-11-14 6 views
0

비활성화 된 경우 플러그인에서 자동으로 레코드를 삭제하도록하는 레코드가 있습니다. 그래서 내 코드가 SetStateDynamically 이벤트로 설정되어 있고, 실제로 "예기치 않은 오류가 발생했습니다"라는 레코드를 삭제하는 서비스를받는 지점까지 모두 작동합니다.비활성화 할 때 레코드를 삭제하려고 할 때 오류가 발생했습니다.

내 코드가 아래에 있습니다. 문제가 무엇인지 보거나 올바른 방향으로 나를 가리킬 수 있습니까?

덕분에

private void MarkForDeleteDeactivatedRole(EntityReference entity) 
    { 
     Entity role = Service.Retrieve("sb_contactsecurityrole", entity.Id, new ColumnSet(true)); 

     OptionSetValue statusValue = (OptionSetValue)role["statecode"]; 

     if (statusValue.Value == 1) 
     {     
      Service.Delete(entity.LogicalName, entity.Id); 
     } 
    } 
+1

실제 오류는 무엇입니까? 로그를 확인하거나 디버거를 연결하면보다 구체적인 메시지가 나타납니다. 또한 플러그인 등록 방법 (사전/게시물 등)은 무엇입니까? –

+0

먼저 전체 Execute() 메서드를 제공해야합니다. 또한, 두 번째 메소드 행을 '... = (OptionSetValue) role.Attributes [ "statecode"];' – Alex

+0

으로 변경하십시오. Workflow를 통해 작업을 시도 했습니까? – Grigory

답변

1

나는 같은 봤어요. CRM 이벤트 파이프 라인이 해당 개체에서 작업하는 동안 삭제되는 레코드를 지원한다고 생각하지 않습니다. 아마 당신이 할 수있는 최선의 방법은 플러그인을 비동기 적으로 등록하는 것입니다. 따라서 CRM 이벤트 파이프 라인 내부에 있기 때문에 잡을 수없는 오류는 UI에 버블 링되지 않습니다 (그리고 당신은 거래가 아닙니다.)

+0

문제가있는 것처럼 보입니다. 여러 가지 솔루션을 사용하여 문제를 해결할 수있는 방법을 찾았습니다. 나는 다시 이런 일이 생기면 비동기 적 사고를 기억할 것이다. 감사 – jimminybob

관련 문제