Подключитесь к CRM и получите данные - PullRequest
0 голосов
/ 29 мая 2019

Я пишу приложение ASP.NET, которое должно подключаться к динамической CRM и получать информацию о контактах.В представлении он должен вернуть список контактов с их информацией.В тестируемом CRM есть некоторые данные, которые мне предоставлены, но я не могу получить сущности (например, имя таблицы и ее столбцы), поэтому я не могу создавать свои модели в VS, так как не знаю, что мне нужно.положить туда.

Есть ли способ получить энтитс с кодом или как можно решить эту проблему?

Я пробовал генератор с ранним связыванием, и он не будет работать,Я пытался с моделью данных объекта ADO.NET, но тоже не работает.

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Эта статья позволит вам шаг за шагом подключиться к CRM.

После того, как вы успешно подключитесь к CRM, попробуйте следующий код, который даст вам полную информацию обо всех контактах.Записи.

try
 {
 ClientCredentials clientCredentials = new ClientCredentials();
 clientCredentials.UserName.UserName = "<ProvideUserName>@<ProvideYourOrgName>.onmicrosoft.com";
 clientCredentials.UserName.Password = "<ProvideYourPassword>";

// For Dynamics 365 Customer Engagement V9.X, set Security Protocol as TLS12
 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
// Get the URL from CRM, Navigate to Settings -> Customizations -> Developer Resources
// Copy and Paste Organization Service Endpoint Address URL
organizationService = (IOrganizationService)new OrganizationServiceProxy(new Uri("https://<ProvideYourOrgName>.api.<CRMRegion>.dynamics.com/XRMServices/2011/Organization.svc"),
 null, clientCredentials, null);

if (organizationService != null)
 {
 Guid userid = ((WhoAmIResponse)organizationService.Execute(new WhoAmIRequest())).UserId;

if (userid != Guid.Empty)
 {
 Console.WriteLine("Connection Established Successfully...");
 // your logic here.
                    queryExpressionTest(organizationService);


 }
 }
 else
 {
 Console.WriteLine("Failed to Established Connection!!!");
 }
 }
 catch (Exception ex)
 {
 Console.WriteLine("Exception caught - " + ex.Message); 
 }
 Console.ReadKey();
 }
        private static void queryExpressionTest(IOrganizationService organizationService)
        {
            QueryExpression qe = new QueryExpression();
            qe.EntityName = "contact";
            qe.ColumnSet= new ColumnSet(true); // this will give you all the columns of contact record
            //qe.ColumnSet= new ColumnSet("name", "accountnumber"); you could also restrict which particualr attributes you wish to retrieve from contact record.

            EntityCollection coll = organizationService.RetrieveMultiple(qe);
            foreach (Entity cont in coll.Entities)
            {
                Console.WriteLine("Name of contact: " + cont.GetAttributeValue<string>("fullname"));
                Console.WriteLine("Email of contact " + cont.GetAttributeValue<string>("email"));
                /**
                Now you can add all the attributes you wish to show
                */
            }

        }
0 голосов
/ 29 мая 2019

Чтобы реально работать с объектами CRM, вам необходимо настроить проект для работы с Организационным сервисом (может потребоваться другое руководство в зависимости от версии CRM), которое подключается к вашему CRM экземпляр.

Впоследствии, как объяснял Дэвид Йенглин, вы сможете использовать такие методы, как IOrganizationService.Retrieve(String, Guid, ColumnSet), который позволяет вам получить запись, или IOrganizationService.RetrieveMultiple(QueryBase), который позволяет вам получить несколько записей. В вашем случае, я думаю, вам просто нужен метод Retrieve.

Другой способ доступа к данным - через веб-API CRM (с которым у меня меньше опыта), который позволит вам запрашивать данные из CRM.

В репозитории Microsoft github есть множество замечательных примеров различных сценариев, PowerApps-Samples . Я рекомендую проверить это позже, когда вы настроите свой проект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...