Interroger une valeur spécifique dans un tableau à partir d'une entité de métadonnées dans Dynamics 365

Aug 19 2020

J'essaie d'éviter d'itérer dans ce tableau, mais j'imagine que c'est la seule façon de gérer cela. Voir simplement s'il existe un moyen d'interroger directement cette valeur dans le tableau à partir de l'URI de l'API Web.

Voici l'exemple d'URI:

https://example.crm.dynamics.com/api/data/v9.0/GlobalOptionSetDefinitions(f4a9de67-1d00-ea11-a811-000d3a33f702)

Et voici un exemple de la réponse:

{
    "@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
                }
            }
        }
    ]
}

Fondamentalement, j'ai le "Value": 799680006qui est ce que je veux en quelque sorte ajouter aux paramètres de requête URI, afin que je puisse finalement obtenir "Label": "ABC123".

Des suggestions ou une itération à travers le tableau d'objets avec if Value = xvraiment la seule option?

Réponses

1 ArunVinoth Aug 19 2020 at 05:50

Permettez-moi de clarifier deux choses:

  1. Interroger les métadonnées comme vous les utilisez GlobalOptionSetDefinitionspour obtenir toutes les étiquettes localisées si vous avez plusieurs modules linguistiques ou pour vérifier les personnalisations ou à des fins de déploiement Devops est une chose
  2. Obtenir l'étiquette de la valeur de liste de sélection sélectionnée dans l'un des enregistrements de la base de données des transactions est un autre objectif

Si vous avez simplement besoin d'un deuxième objectif, vous pouvez l'obtenir en sélectionnant la valeur Formaté, après avoir ajouté un en-tête dans la demande de l'API Web. En savoir plus dans ma réponse SO

Une autre façon d'inspecter l'étiquette consiste à utiliser l'entité stringmap.

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