我们已经开始使用动态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字段。但是,如果我们将DateTimeBehavior包含在GET api调用的$select中,我们将得到:
{
"error": {
"code": "0x0",
"message": "Could not find a property named 'DateTime' on type 'Microsoft.Dynamics.CRM.AttributeMetadata'."
}
}
因此,我们被困在为每个">DateTime";AttributeType字段来发现它是否是">DateOnly";是否。
有没有一种方法我可以$选择一个实体内的所有属性DateOnly";字段(如果存在(?
非常感谢您的帮助。
我不这么认为。为了检索特定类型属性的属性,必须将Attributes集合值导航属性强制转换为所需类型。
但是,您可以一次为实体/表返回所有日期时间属性及其相应的DateTimeBehavior
(相对于一次查询每个属性(。
GET /api/data/v9.0/EntityDefinitions(LogicalName='account')/Attributes/Microsoft.Dynamics.CRM.DateTimeAttributeMetadata?$select=LogicalName,DateTimeBehavior