У меня есть фрагмент кода, который захватывает все активные учетные записи из CRM, а затем обновляет одно из скрытых полей для каждой учетной записи. В CRM насчитывается около 45 000 активных учетных записей, и именно поэтому я использую пейджинг и захватываю 5000 записей с каждой страницы. Он начинает обновлять записи со страницы 1 и захватывать первые 5000 записей, но висеть на 3100-й учетной записи и не двигаться дальше. Я здесь для поиска ваших добрых советов/предложений, чтобы сделать это нужным. ТИА !!!Программа застряла для обновления полного списка учетных записей в Dynamics CRM с использованием C#
string temp1 = string.Empty;
QueryExpression qe = new QueryExpression
{
EntityName = "account",
ColumnSet = new ColumnSet("name", "new_latestpolicydate","new_latestpolicydate_hidden"),
Criteria = new FilterExpression
{
Conditions = {
new ConditionExpression("statecode",ConditionOperator.Equal,0)
}
}
};
qe.PageInfo = new PagingInfo();
qe.PageInfo.Count = 5000;
qe.PageInfo.PageNumber = 1;
qe.PageInfo.PagingCookie = null;
while (true)
{
EntityCollection ec = service.RetrieveMultiple(qe);
Console.WriteLine("Page no:\t{0}\nTotal Active Accounts:\t{1}",qe.PageInfo.PageNumber, ec.Entities.Count);
foreach (Entity item in ec.Entities)
{
if (item.Attributes.Contains("new_latestpolicydate"))
{
DateTime date;
date = Convert.ToDateTime(item.Attributes["new_latestpolicydate"]);
temp1 = date.Date.ToString("d");
item.Attributes["new_latestpolicydate_hidden"] = temp1;
}
if (temp1 != string.Empty)
{
service.Update(item);
Console.Write("\r{0} are accounts updated", i++);
}
}
if (ec.MoreRecords)
{
qe.PageInfo.PageNumber++;
qe.PageInfo.PagingCookie = ec.PagingCookie;
}
else
{ break; }
}
Я бы отлаживал свой код и обнаружил, что когда он отправился на запись второй страницы, срок действия соединения истек, и он отправляет это исключение. HTTP-запрос на «https: //XRMServices/2011/Organization.svc» был aborted' –
К сожалению, я никогда не испытывал упомянутых видов исключений, поэтому я не знаю другого способа помочь вам, кроме упомянутых. –
Проблема решена. На самом деле есть плагин, который выполняется сразу после обновления учетной записи. Таким образом, отключив плагин, выполните проделанную работу. –