dynamics-crm - 从 Dynamics 365 中的元数据实体查询数组中的特定值
问题描述
我试图避免遍历这个数组,但我想这是处理这个问题的唯一方法。只是看看是否有办法直接从 Web API URI 中查询数组中的这个值。
这是 URI 示例:
https://example.crm.dynamics.com/api/data/v9.0/GlobalOptionSetDefinitions(f4a9de67-1d00-ea11-a811-000d3a33f702)
这是响应的一个示例:
{
"@odata.context": "https://example.crm.dynamics.com/api/data/v9.0/$metadata#GlobalOptionSetDefinitions/Microsoft.Dynamics.CRM.OptionSetMetadata/$entity",
"MetadataId": "f4a9de67-1d00-ea11-a811-000d3a33f702",
"Options": [
{
"Value": 799680006,
"Color": "#0000ff",
"IsManaged": false,
"ExternalValue": "",
"ParentValues": [],
"MetadataId": null,
"HasChanged": null,
"Label": {
"LocalizedLabels": [
{
"Label": "ABC123",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "b4eb2c69-b500-ea11-a811-000d3a33fe19",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "ABC123",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "b4eb2c69-b500-ea11-a811-000d3a33fe19",
"HasChanged": null
}
}
}
]
}
基本上,我有"Value": 799680006
希望以某种方式添加到 URI 查询参数的内容,以便最终获得"Label": "ABC123"
.
if Value = x
有什么建议或者是用真正唯一的选择遍历对象数组吗?
解决方案
让我澄清两点:
- 如果您有多个语言包或用于验证自定义或用于 Devops 部署目的,则像您
GlobalOptionSetDefinitions
用来获取所有本地化标签一样查询元数据是一回事 - 在一个事务数据库记录中获取所选选项列表值的标签是另一个目的
如果您只是需要第二个目的,您可以通过在 Web api 请求中添加标头后选择 Formatted 值来获取它。在我的 SO 答案中阅读更多内容
检查标签的另一种方法是使用字符串映射实体。
https://crmdev.crm.dynamics.com/api/data/v9.1/stringmaps?$filter=objecttypecode eq 'account' and attributename eq 'accountclassificationcode' and attributevalue eq 1
推荐阅读
- sql - db.Exec() 未在 SQL Server 的 golang 中返回正确的 RowsAffected() 值
- javascript - .d.ts 用于具有返回自身的方法的模块
- c# - 如何将 UTC 字符串解析为 DateTime?
- javascript - 如何使用 brew 升级没有节点的纱线
- javascript - 使用 javascript 从特定选中的单选按钮提交表单时创建页面重定向
- r - 计算数据框中的重复行和第一个非 NA 出现
- php - 用树枝对新数组中的元素进行排序
- javascript - nightwatchjs - 如何检测隐藏的 html 元素?
- python - 获取电子邮件时python imaplib上的内存错误
- html - 从数据库平台抓取 Web 数据 (VBA - HTML)