odata - 获取 OData 选项集值和名称
问题描述
我正在使用 odata api,现在我在一个实体上有一个属性,它是一个选项选择,例如:
属性名称是:status
值是:1, 2, 3
名称:done, progress, new
问题是当我使用邮递员获取元数据时,我得到的所有字段“状态”都是整数类型。
问题我如何从元数据中获取选项名称和值,以便我得到值和名称作为响应?
目前我得到这个:
<Property Name="status" Type="Edm.Int32">
<Annotation Term="Org.OData.Core.V1.Description" String="" />
</Property>
但我想得到响应的值和名称?
解决方案
这可以大大简化,假设您想要的只是 int 值和实体的特定选项集属性的名称:
GET [Organization URI]/api/data/v8.2/EntityDefinitions(LogicalName='contact')/Attributes(LogicalName='status')/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?$select=LogicalName&$expand=OptionSet($select=Options),GlobalOptionSet($select=Options)
is 只是为了$select=LogicalName
不返回属性的所有其他元数据,并且$expand=OptionSet($select=Options)
is 用于本地选项集,而GlobalOptionSet($select=Options)
is 用于全局。如果你知道它是什么类型,你可以跳过另一个,但是如果你把这个逻辑放在一个共享库中(你不是吗?)那么添加两者都不会受到伤害:
{
"@odata.context":"http://YourOrg.com/YourInstance/api/data/v8.2/$metadata#EntityDefinitions('new_entity')/Attributes/Microsoft.Dynamics.CRM.PicklistAttributeMetadata(LogicalName,OptionSet,GlobalOptionSet,OptionSet(Options),GlobalOptionSet(Options))/$entity",
"LogicalName":"new_familyshortname",
"MetadataId":"dc11c01f-b6bd-4664-82d0-3a521841c1f5",
"OptionSet@odata.context":"http://YourOrg.com/YourInstance/api/data/v8.2/$metadata#EntityDefinitions('new_entity')/Attributes(dc11c01f-b6bd-4664-82d0-3a521841c1f5)/Microsoft.Dynamics.CRM.PicklistAttributeMetadata/OptionSet(Options)/$entity",
"OptionSet":null,
"GlobalOptionSet":{
"@odata.type":"#Microsoft.Dynamics.CRM.OptionSetMetadata",
"Options":[
{
"Value":117280000,
"Label":{
"LocalizedLabels":[
{
"Label":"English Value 1",
"LanguageCode":1033,
"IsManaged":true,
"MetadataId":"3cb6bbd5-796f-e111-8cf3-3cd92b023782",
"HasChanged":null
},
{
"Label":"French Value 1",
"LanguageCode":1036,
"IsManaged":false,
"MetadataId":"d88be67d-4a7d-e411-8890-0050569f1654",
"HasChanged":null
}
],
"UserLocalizedLabel":{
"Label":"English Value 1",
"LanguageCode":1033,
"IsManaged":true,
"MetadataId":"3cb6bbd5-796f-e111-8cf3-3cd92b023782",
"HasChanged":null
}
},
"Description":{
"LocalizedLabels":[
{
"Label":"",
"LanguageCode":1033,
"IsManaged":true,
"MetadataId":"3db6bbd5-796f-e111-8cf3-3cd92b023782",
"HasChanged":null
}
],
"UserLocalizedLabel":{
"Label":"",
"LanguageCode":1033,
"IsManaged":true,
"MetadataId":"3db6bbd5-796f-e111-8cf3-3cd92b023782",
"HasChanged":null
}
},
"Color":null,
"IsManaged":true,
"MetadataId":null,
"HasChanged":null
},
... MORE ...
],
"MetadataId":"dcbbe460-bedb-4985-9a17-2f3dbc637594"
}
}
推荐阅读
- php - Larave BelongsTo 关系返回 null
- listview - 使用 ListView 和 nativescript-vue 进行无限滚动
- python - Pip 21.1 无法导入 InvalidSchemeCombination
- c++ - 从函数返回 char 数组时崩溃
- mysql - MySQL查询对关系表添加限制
- monitoring - 普罗米修斯警报中缺少标签
- r - 为每个条形创建具有不同颜色的绘图条形图
- dynamic - 如何加快 UI Server 更新并允许触发动态 DAG 的时间?
- android - Android 全屏片段不显示导航和状态栏后面的元素
- android - 谷歌私有应用在外部组织关闭测试