2011-12-21 2 views
3

전화 통화 엔터티의 필드를 업데이트 한 다음 닫으려고합니다. 내가 할 수있는 한 전류는 두 번 걸립니다. 그러나 이것은 60 시간의 통화를 처리하는 데 30 분이 소요되고 약 20 만 명이 처리되기 때문에 고통스럽게 느립니다. 두 통화를 하나의 통화로 결합하는 방법이 있습니까? 불행하게도, 당신이 할 수있는 작은있다복수 통화 실행

foreach (phonecall phonepointer in _businessEntityCollection.BusinessEntities.Cast<phonecall>() 
    .Where(phonepointer => phonepointer.statecode.Value == PhoneCallState.Open)) 
{ 
    //Update fiserv_contactstatus value 
    phonepointer.fiserv_contactstatus = Picklist; 
    crmService.Update(phonepointer); 

    //Cancel activity 
    setStatePhoneCallRequest.PhoneCallState = PhoneCallState.Canceled; 
    setStatePhoneCallRequest.PhoneCallStatus = 200011; 
    setStatePhoneCallRequest.EntityId = phonepointer.activityid.Value; 

    crmService.Execute(setStatePhoneCallRequest); 
} 
+0

코드를 재미있게 포맷했지만 Update 호출과 Execute 호출이 있습니다. – Merds

+1

이 엔티티 주변에 다른 플러그인이 있습니까? 30 분이 너무 길다. – ccellar

+0

아니요,이 권한이 없습니다 – Merds

답변

1

-

여기에 내 현재 코드입니다.

새로운 SDK와 XRM 컨텍스트 (강하게 입력 된 클래스)를 사용하여 전화 통화 엔터티를 일괄 업데이트해야합니다 (더 빨라야 함). 그래도 구식 CrmService을 사용해야합니다. 실제로 각 엔티티의 상태를 하나씩 변경하십시오.

EDIT : 또한 CRM 데이터베이스의 엔티티 상태를 직접 변경할 수도 있지만 CRM 데이터베이스를 수동으로 변경하면 지원되지 않고 위험하므로 마지막 수단이되어야합니다.

진지하게, 최후의 수단! 아니, 농담 아니야!