2011-12-21 7 views
3

私は電話のエンティティのフィールドを更新しようとしています。私が言うことができる限り、これを行うための現在は、2回の呼び出しを行います。しかし、60回の通話を処理するのに30分かかるため、これは辛いほど遅く、約20万通を処理します。両方を組み合わせて1つのコールにする方法はありますか?残念ながら、あなたができることはほとんどあります複数の呼び出しを実行する

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を使用する必要があります実際には各エンティティの状態を1つずつ変更します。

EDIT: また、データベース内のエンティティの状態を直接変更することもできますが、CRM DBの手動変更はサポートされておらず危険ですので、これが最後の手段になります。

真剣に、最後の手段!いいえ、私は冗談ではありません!

関連する問題