Многократные вызовы - PullRequest
       33

Многократные вызовы

3 голосов
/ 21 декабря 2011

Я пытаюсь обновить поле объекта телефонного звонка, а затем закрыть его. Ток, чтобы сделать это, насколько я могу судить, занимает два звонка. Но это мучительно медленно, поскольку на обработку 60 телефонных звонков уходит 30 минут, а у меня есть около 200 000. Есть ли способ объединить оба в один звонок?

Вот мой текущий код -

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);
}

1 Ответ

1 голос
/ 26 сентября 2012

К сожалению, вы мало что можете сделать.

Вы МОЖЕТЕ попытаться использовать новый SDK и контекст XRM (строго типизированные классы) для пакетного обновления объектов телефонных звонков (это должно быть быстрее), но вам все равно придется использовать старомодный CrmService на самом деле изменить состояние каждого объекта, один за другим.

EDIT: Вы также можете напрямую изменить состояние объектов в базе данных, но это должно быть вашим последним средством, поскольку ручные изменения в базе данных CRM не поддерживаются и опасны.

Серьезно, в крайнем случае! Нет, я НЕ шучу!

...