【问题标题】:Query specific value in array from a metadata entity in Dynamics 365从 Dynamics 365 中的元数据实体查询数组中的特定值
【发布时间】:2020-12-07 23:18:03
【问题描述】:

我试图避免遍历这个数组,但我想这是处理这个问题的唯一方法。只是看看有没有办法从 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 遍历对象数组真的是唯一的选择吗?

【问题讨论】:

    标签: dynamics-crm crm microsoft-dynamics dynamics-crm-online dynamics-crm-webapi


    【解决方案1】:

    让我澄清两件事:

    1. 如果您有多个语言包或用于验证自定义或用于 Devops 部署目的,则像使用 GlobalOptionSetDefinitions 一样查询元数据以获取所有本地化标签是一回事
    2. 在一个事务数据库记录中获取所选选项列表值的标签是另一个目的

    如果您只是需要第二个目的,您可以通过在 Web api 请求中添加标头后选择 Formatted 值来获取它。 Read more in my SO answer

    检查标签的另一种方法是使用字符串映射实体。

    https://crmdev.crm.dynamics.com/api/data/v9.1/stringmaps?$filter=objecttypecode eq 'account' and attributename eq 'accountclassificationcode' and attributevalue eq 1
    

    【讨论】:

    • 感谢您的帮助!它让我得到了我需要的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多