Consultar valor específico en una matriz de una entidad de metadatos en Dynamics 365
Estoy tratando de evitar iterar a través de esta matriz, pero imagino que es la única forma de manejar esto. Solo veo si hay una forma de consultar directamente este valor en la matriz desde el URI de la API web.
Este es el ejemplo de URI:
https://example.crm.dynamics.com/api/data/v9.0/GlobalOptionSetDefinitions(f4a9de67-1d00-ea11-a811-000d3a33f702)
Y este es un ejemplo de la respuesta:
{
"@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
}
}
}
]
}
Básicamente, tengo lo "Value": 799680006
que es lo que quiero agregar de alguna manera a los parámetros de consulta de URI, para que finalmente pueda obtener "Label": "ABC123"
.
¿Alguna sugerencia o está iterando a través de la matriz de objetos con if Value = x
realmente la única opción?
Respuestas
Déjame aclarar dos cosas:
- Consultar metadatos como los que está utilizando
GlobalOptionSetDefinitions
para obtener todas las etiquetas localizadas si tiene varios paquetes de idiomas o para verificar personalizaciones o para el propósito de implementación de Devops es una cosa - Obtener la etiqueta para el valor de la lista de selección seleccionada en uno de los registros de la base de datos de transacciones es otro propósito
Si simplemente necesita un segundo propósito, puede obtenerlo seleccionando el valor Formateado, después de agregar un encabezado en la solicitud de la API web. Leer más en mi respuesta SO
Otra forma de inspeccionar la etiqueta es utilizando la entidad de mapa de cadenas.
https://crmdev.crm.dynamics.com/api/data/v9.1/stringmaps?$filter=objecttypecode eq 'account' and attributename eq 'accountclassificationcode' and attributevalue eq 1