Получите указанную c организацию CRM вместо всех - PullRequest
0 голосов
/ 29 апреля 2020

В локальной среде CRM есть несколько организаций. Я сохранил URL-адрес DiscoveryService и название организации в файле конфигурации.

Я хочу получить экземпляр организации для указанной организации c, используя имя организации, доступное в файле конфигурации, вместо загрузки всех организаций.

что-то похожее,

select organizations from Organizations where orgName = 'XYZ'

В настоящее время я использую приведенный ниже код, который занимает более 3 секунд для получения экземпляра.

private OrganizationDetail DiscoverOrganization(Uri discoveryUri, string organizationName, ClientCredentials lclClientCredentials)
        {
            DiscoveryServiceProxy serviceProxy;
            using (serviceProxy = new DiscoveryServiceProxy(discoveryUri, null, lclClientCredentials, null))
            {
                IDiscoveryService service = serviceProxy;
                var orgsRequest = new RetrieveOrganizationsRequest() { AccessType = EndpointAccessType.Default, Release = OrganizationRelease.Current };
                var organizations = (RetrieveOrganizationsResponse)service.Execute(orgsRequest);
                return organizations.Details.FirstOrDefault(x => x.UniqueName.ToLower() == organizationName.ToLower());
            }
        }

1 Ответ

0 голосов
/ 09 мая 2020

Вы также можете попробовать версию web api. Читать дальше

GET https://dev.{servername}/api/discovery/v9.0/Instances(UniqueName='myorg')
...