Dynamics API возвращает поля сущностей и метаданные полей - PullRequest
0 голосов
/ 01 апреля 2019

Мы можем получить метаданные сущности в Dynamics API, он возвращает все поля, которые есть в сущности. Что я хотел бы знать, возможно ли получить метаданные для полей одновременно?

var request = new RetrieveEntityRequest
            {
                EntityFilters = EntityFilters.All,
                LogicalName = entityName,
                RetrieveAsIfPublished = true,


            };
            var response = (RetrieveEntityResponse)_organisationService.Execute(request);

            return response != null ? response.EntityMetadata : null;

Ответы [ 2 ]

1 голос
/ 02 апреля 2019

Ваш код уже отвечает на ваш вопрос, но вы можете оптимизировать его следующим образом:

    private EntityMetadata GetEntityMetadata(string entityName, EntityFilters entityFilters, bool retrieveAsIfPublished = false)
    {
        var request = new RetrieveEntityRequest
        {
            EntityFilters = entityFilters,
            LogicalName = entityName,
            RetrieveAsIfPublished = retrieveAsIfPublished,
        };

        var response = (RetrieveEntityResponse)_service.Execute(request);

        return response?.EntityMetadata;
    }

Если вам просто нужны метаданные сущности и атрибутов, вы можете вызвать предыдущий метод следующим образом:

        var entityMetadata = GetEntityMetadata("[entityname]", EntityFilters.Attributes | EntityFilters.Entity);
        var attributeMetadata = entityMetadata?.Attributes;
0 голосов
/ 01 апреля 2019

Используя WebAPI, вы можете сделать это

[organization url]/api/data/v8.2/EntityDefinitions?$select=DisplayName,EntitySetName&$filter=SchemaName%20eq%20%27Account%27

Это даст вам идентификатор метаданных для учетной записи в вашем экземпляре CRM.Теперь используйте это значение, чтобы создать еще один вызов API и получить для него определенные атрибуты.Вот следующий вызов API:

[organization url]/api/data/v8.2/EntityDefinitions(GUID)?$select=LogicalName&$expand=Attributes($select=LogicalName)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...