问题描述
我们已经开始使用动态 API 来检索实体的属性列表以进行迁移,如下所示:
GET [Organization URI]/api/data/v9.0/EntityDeFinitions(LogicalName='contact')?$select=LogicalName,AttributeOf,AttributeType HTTP/1.1
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
对于“DateTime”AttributeType 字段,其调用DateTimeBehavior 中有一个属性,它具有“DateOnly”值:
"DateTimeBehavior": {
"Value": "DateOnly"
}
我们需要知道这一点才能将旧数据转换为 DateTime 或 Date 字段。但是,如果我们在 GET api 调用的 $select 中包含 DateTimeBehavior,我们将得到:
{
"error": {
"code": "0x0","message": "Could not find a property named 'DateTime' on type 'Microsoft.Dynamics.CRM.AttributeMetadata'."
}
}
因此,我们不得不对每个“DateTime”属性类型字段进行单独调用,以发现它是否是“DateOnly”。
有没有办法可以 $select 实体中的所有属性并包含这个“DateOnly”字段(如果它存在)?
非常感谢任何帮助。
解决方法
但是,您可以一次获取实体/表的所有日期时间属性及其相应的 DateTimeBehavior
(而不是一次查询一个属性)。
GET /api/data/v9.0/EntityDefinitions(LogicalName='account')/Attributes/Microsoft.Dynamics.CRM.DateTimeAttributeMetadata?$select=LogicalName,DateTimeBehavior