[英]Dynamics API returning entity fields and field metadata
我們可以在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;
您的代碼已經回答了您的問題,但是您可以像這樣進行優化:
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;
使用WebAPI可以做到
[organization url]/api/data/v8.2/EntityDefinitions?$select=DisplayName,EntitySetName&$filter=SchemaName%20eq%20%27Account%27
這為您提供了CRM實例中帳戶記錄的元數據ID。 現在,使用該值創建另一個API調用,並為此獲取特定的屬性。 這是下一個API調用:
[organization url]/api/data/v8.2/EntityDefinitions(GUID)?$select=LogicalName&$expand=Attributes($select=LogicalName)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.