2016-07-26 4 views
0

Я пытаюсь сделать консольное приложение для получения результатов с помощью Dynamics CRM SDK и C#, но я не могу получить никаких результатов от моих запросов. Я могу видеть, что я подключен к серверу, но любое QueryExpression, которое я пытаюсь сделать, похоже, возвращается ни с чем, даже если я установил его без фильтра. Даже при использовании примера из документации, в которой мы имеем соответствующие значения, я заканчиваю пустую передачу. Мой код:CRM RetrieveMultipleResponse не возвращает никаких результатов

 CrmServiceClient crmSvc = new CrmServiceClient(ConfigurationManager.ConnectionStrings["MyCRMServer"].ConnectionString); 
     Console.WriteLine(crmSvc.IsReady); 
     //Display the CRM version number and org name that you are connected to. 
     Console.WriteLine("Connected to CRM! (Version: {0}; Org: {1}", 
     crmSvc.ConnectedOrgVersion, crmSvc.ConnectedOrgUniqueName); 

     QueryExpression userSettingsQuery = new QueryExpression("contact"); 
     userSettingsQuery.ColumnSet.AllColumns = true; 
     var retrieveRequest = new RetrieveMultipleRequest() 
     { 
      Query = userSettingsQuery 
     }; 
     EntityCollection EntCol = (crmSvc.ExecuteCrmOrganizationRequest(retrieveRequest) as RetrieveMultipleResponse).EntityCollection; 
     foreach (var a in EntCol.Entities) 
     { 
      Console.WriteLine("Account name: {0} {1}", a.Attributes["firstname"], a.Attributes["lastname"]); 
     } 
     Console.Write(crmSvc.LastCrmError); 
     Console.Write(crmSvc.LastCrmException); 
     Console.ReadLine(); 

Он не возвращает никаких ошибок, и показывает Справедливо для подключения, и я не могу найти где начать устранять здесь.

ответ

1

Ваш код отлично подходит для меня, так что может быть, что пользователь, с которым вы подключены, не имеет разрешения на чтение contact записей или нет записей contact в вашей организации CRM.

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

var crmSvc = new CrmServiceClient(<CONNECTION STRING>); 

    var contactQuery = new QueryExpression("contact") 
    { 
     ColumnSet = new ColumnSet("firstname", "lastname") 
    }; 
    var contacts = crmSvc.RetrieveMultiple(contactQuery).Entities; 
    foreach(var contact in contacts) 
    { 
     Console.WriteLine("Contact name: {0} {1}", contact.GetAttributeValue<String>("firstname"), contact.GetAttributeValue<String>("lastname")); 
    } 
+0

Спасибо за улучшенный код, это своего рода код, который я получил после того, как возился с ним по-разному, чтобы попытаться заставить его работать. Мне нужно поговорить с моим отделом CRM, поскольку у меня были проблемы с правами в прошлом. Благодарю. – Greg2518

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