2016-06-17 4 views
0

с помощью запроса sdk и fetch я получил 5000 записей в одном запросе, и для извлечения требуется слишком много времени.Как получить запись с разбивкой по страницам, используя запрос Fetch и CRMSDK2015 от MS CRM до Android?

, пожалуйста, дайте мне предложение, как получить записи на странице за страницей, используя запрос Fetch и sdk в Android.

ответ

0

Вы можете попробовать это в Query Expression так: Page large result sets with QueryExpression

// запрос с использованием пейджинговой куки. // Определите атрибуты поискового вызова. // Количество записей на странице для извлечения.

int queryCount = 3; 

// Инициализировать номер страницы.

int pageNumber = 1; 

// Инициализировать количество записей.

int recordCount = 0; 

// Определить выражение условия для извлечения записей.

ConditionExpression pagecondition = new ConditionExpression(); 
pagecondition.AttributeName = "parentaccountid"; 
pagecondition.Operator = ConditionOperator.Equal; 
pagecondition.Values.Add(_parentAccountId); 

// Определите выражение порядка для извлечения записей.

OrderExpression order = new OrderExpression(); 
order.AttributeName = "name"; 
order.OrderType = OrderType.Ascending; 

// Создайте выражение запроса и добавьте условие.

QueryExpression pagequery = new QueryExpression(); 
pagequery.EntityName = "account"; 
pagequery.Criteria.AddCondition(pagecondition); 
pagequery.Orders.Add(order); 
pagequery.ColumnSet.AddColumns("name", "emailaddress1");     

// Назначьте свойства pageinfo выражению запроса.

pagequery.PageInfo = new PagingInfo(); 
pagequery.PageInfo.Count = queryCount; 
pagequery.PageInfo.PageNumber = pageNumber; 

// Текущий пейджинговый файл. При получении первой страницы // pagingCookie должен быть нулевым.

pagequery.PageInfo.PagingCookie = null; 
Console.WriteLine("Retrieving sample account records in pages...\n"); 
Console.WriteLine("#\tAccount Name\t\tEmail Address"); 

while (true) 
{ 
// Retrieve the page. 
EntityCollection results = _serviceProxy.RetrieveMultiple(pagequery); 
if (results.Entities != null) 
{ 
    // Retrieve all records from the result set. 
    foreach (Account acct in results.Entities) 
    { 
     Console.WriteLine("{0}.\t{1}\t{2}", ++recordCount, acct.Name, 
          acct.EMailAddress1); 
    } 
} 

// Check for more records, if it returns true. 
if (results.MoreRecords) 
{ 
    Console.WriteLine("\n****************\nPage number {0}\n****************", pagequery.PageInfo.PageNumber); 
    Console.WriteLine("#\tAccount Name\t\tEmail Address"); 

    // Increment the page number to retrieve the next page. 
    pagequery.PageInfo.PageNumber++; 

    // Set the paging cookie to the paging cookie returned from current results. 
    pagequery.PageInfo.PagingCookie = results.PagingCookie; 
} 
else 
{ 
    // If no more records are in the result nodes, exit the loop. 
    break; 
} 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^