En este momento estás viendo [Tip] Dataverse – Manejo de Caracteres Especiales en Consultas Filter de la API Web de Dataverse

[Tip] Dataverse – Manejo de Caracteres Especiales en Consultas Filter de la API Web de Dataverse

Cuando trabajamos con la API Web de Dataverse, una de las operaciones más comunes es realizar consultas con el parámetro filter. Sin embargo, cuando los valores contienen caracteres especiales como &, ?, #, %, entre otros, la consulta puede fallar o arrojar resultados inesperados. En este artículo, exploraremos cómo manejar estos casos correctamente.

Problema: Caracteres Especiales en filter

La API Web de Dataverse utiliza la sintaxis OData para realizar consultas a los datos. Al incluir caracteres especiales en los filtros, pueden surgir problemas de codificación o errores en la solicitud.

Ejemplo de consulta problemática:

GET https://yourorg.api.crm.dynamics.com/api/data/v9.0/accounts?$filter=name eq 'ACME & Co.'

Este ejemplo fallará porque el carácter & tiene un significado especial en una URL y no está correctamente codificado.

Solución: Codificación de Caracteres Especiales

Para evitar estos errores, es necesario codificar los caracteres especiales usando URL encoding.

Una de las alternativas que podemos encontrar es realizar el encoding a mano por ejemplo en esta pagina

Sin embargo, power automate, nos trae una funcion especifica para estos problemas 

Solucion en Power Automate

Si estás usando Power Automate para realizar una consulta HTTP a Dataverse, puedes usar la función encodeUriComponent() para codificar los valores en la consulta.

{
  "method": "GET",
  "uri": "https://yourorg.api.crm.dynamics.com/api/data/v9.0/accounts?$filter=name eq '@{encodeUriComponent(variables('CompanyName'))}'"
}

Caracteres Comunes y sus Equivalentes Codificados

CarácterCódigo URL
&%26
?%3F
#%23
%%25
'%27

 

Deja un comentario