Interroga il valore specifico nella matrice da un'entità di metadati in Dynamics 365
Sto cercando di evitare di iterare attraverso questo array, ma immagino che sia l'unico modo per gestirlo. Sto solo verificando se esiste un modo per interrogare direttamente questo valore nell'array dall'URI dell'API Web.
Questo è l'esempio di URI:
https://example.crm.dynamics.com/api/data/v9.0/GlobalOptionSetDefinitions(f4a9de67-1d00-ea11-a811-000d3a33f702)
E questo è un esempio della risposta:
{
"@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
}
}
}
]
}
Fondamentalmente, ho "Value": 799680006
ciò che voglio aggiungere in qualche modo ai parametri di query dell'URI, in modo che alla fine possa ottenere "Label": "ABC123"
.
Qualche suggerimento o sta iterando attraverso la matrice di oggetti con if Value = x
davvero l'unica opzione?
Risposte
Permettetemi di chiarire due cose:
- Interrogare i metadati come si sta utilizzando
GlobalOptionSetDefinitions
per ottenere tutte le etichette localizzate se si dispone di più language pack o per verificare le personalizzazioni o per scopi di distribuzione di Devops è una cosa - Ottenere l'etichetta per il valore dell'elenco di selezione selezionato in uno dei record del database delle transazioni è un altro scopo
Se hai semplicemente bisogno per un secondo scopo, puoi ottenerlo selezionando il valore Formattato, dopo aver aggiunto un'intestazione nella richiesta web api. Leggi di più nella mia risposta SO
Un altro modo per ispezionare l'etichetta è usare 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