Запрос определенного значения в массиве из объекта метаданных в Dynamics 365

Aug 19 2020

Я пытаюсь избежать повторения этого массива, но думаю, что это единственный способ справиться с этим. Просто посмотрите, есть ли способ напрямую запросить это значение в массиве из URI веб-API.

Это пример 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действительно единственным вариантом?

Ответы

1 ArunVinoth Aug 19 2020 at 05:50

Позвольте мне прояснить две вещи:

  1. Запрос метаданных, которые вы используете, GlobalOptionSetDefinitionsчтобы получить все локализованные метки, если у вас есть несколько языковых пакетов, или для проверки настроек, или для целей развертывания Devops, - это одно.
  2. Другой целью является получение метки для выбранного значения раскрывающегося списка в одной из записей базы данных транзакций.

Если вам просто нужно для второй цели, вы можете получить его, выбрав значение Formatted после добавления заголовка в запрос веб-API. Подробнее читайте в моем SO-ответе

Другой способ проверить этикетку - использовать объект stringmap.

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