我正在尝试更新电话实体上的字段,然后将其关闭。据我所知,目前这样做需要两个电话。但这非常缓慢,因为处理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);
}
最佳答案
不幸的是,您无能为力。
您可以尝试使用新的SDK和XRM上下文(强类型类)来批量更新电话实体(应该更快),但是您仍然需要使用老式的CrmService
进行实际更改每个实体的状态,一一对应。
编辑:
您也可以直接更改数据库中实体的状态,但这是您的最后选择,因为不支持对CRM DB进行手动更改,这很危险。
说真的,不得已!不,我不是在开玩笑!
关于c# - 多个执行调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8593544/