2012-01-17 2 views
1

Я использую следующий код для довольно стандартной установки CRM 4.0.RetrieveMultiple не возвращает все атрибуты

  List<ConditionExpression> cons = new List<ConditionExpression>(); 

      QueryExpression query = new QueryExpression(); 
      query.EntityName = "systemuser"; 

      cons.Add(new ConditionExpression()); 
      cons[cons.Count - 1].AttributeName = "isdisabled"; 
      cons[cons.Count - 1].Operator = ConditionOperator.Equal; 
      cons[cons.Count - 1].Values = new object[] { false }; 

      FilterExpression filter = new FilterExpression(); 

      // Set the properties of the filter. 
      filter.FilterOperator = LogicalOperator.And; 
      filter.Conditions.AddRange(cons.ToArray()); 

      //query.ColumnSet = new AllColumns(); 
      query.ColumnSet = new ColumnSet(new string[]{"systemuserid","fullname","firstname","lastname"}); 
      query.Criteria = filter; 
      query.Orders.Add(new OrderExpression("fullname", OrderType.Ascending)); 

      RetrieveMultipleRequest RMR = new RetrieveMultipleRequest(); 
      RMR.Query = query; 
      RMR.ReturnDynamicEntities = true; 

      RetrieveMultipleResponse resp = (RetrieveMultipleResponse)CRM.Execute(RMR); 

По какой-то причине список возвращаемых динамических объектов содержит только атрибут systemuserid. Если я использую AllColumns(), я получаю выбор столбцов (отнюдь не всех), которые по-прежнему не содержат столбцов fullname, firstname и lastname.

Записи, имеющие определенную ценность, имеют значения для запрошенных полей.

Любые мысли ...?

+0

Имеются ли в ваших записях значения для запрашиваемых полей? – ccellar

ответ

2

Устранено - у одного пользователя системы были пустые значения для имени, фамилии и фамилии - заполнение этих запросов заставило запрос начать получать эти значения для всех других пользователей.

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