Filtrar un informe mediante URL en Power BI

A la hora de embeber un informe de Power BI o simplemente al llamarlo desde otra aplicación surge la duda ¿cómo filtrar un informe mediante URL en Power BI? ¿cómo se lo envío a mi compañero prefiltrado? ¿cómo muestro una única página de un informe ? ¿Quieres aprender a filtrar un informe mediante URL en Power BI? Sigue leyendo…

Especificaciones del entorno

  • Windows 11
  • Servicio de Power BI

URL Base

Para empezar, debes saber que cuando ejecutas un informe desde el servicio de Power BI cada página tiene su propia URL que se compone de varios identificadores como son el área de trabajo, el id del informe y el id de la página.

https://app.powerbi.com/groups/groupObjectId/reports/reportObjectId/ReportSectionLenguaje del código: JavaScript (javascript)
  • https://app.powerbi.com/: URL del servicio de Power BI, común para todos los usuarios.
  • groups: palabra fija.
  • groupObjectId: guid de 36 caracteres que identifica el área de trabajo.
  • reports: palabra fija.
  • reportObjectId: identificador (guid) del informe de 36 caracteres.
  • ReportSectionX: identificador de la página

Aquí puedes ver un ejemplo real:

https://app.powerbi.com/groups/1b05dc84-e477-4d6c-8410-38a2b2b5cbdd/reports/0d8dcb5f-2571-4bdc-9f02-0cc5bb75c300/ReportSectionabae8263044cf740aabfLenguaje del código: JavaScript (javascript)
  • https://app.powerbi.com/: URL del servicio de Power BI, común para todos los usuarios.
  • groups: palabra fija.
  • groupObjectId: 1b05dc84-e477-4d6c-8410-38a2b2b5cbdd
  • reports: palabra fija.
  • reportObjectId: 0d8dcb5f-2571-4bdc-9f02-0cc5bb75c300
  • ReportSection: ReportSectionabae8263044cf740aabf

Aclarar que el último parámetro (ReportSection) si se escribe sin ningún identificador abrirá la primera página.

URL Base de un informe embebido

La URL base de un informe embebido difiere un poco. Tiene la siguiente estructura:

https://app.powerbi.com/reportEmbed?reportId=XX&autoAuth=[true,false]&ctid=XXLenguaje del código: JavaScript (javascript)
  • https://app.powerbi.com/: URL del servicio de Power BI, común para todos los usuarios.
  • reportEmbed?: palabra fija. Indica que es una URL embebida.
  • reportId=:utilizado para especificar el id del informe.
  • autoAuth=: auto identificación. Sus posibles valores son true o false.
  • ctid: identificador de organización del elemento. Es un guid de 36 caracteres. (opcional)

Si vemos un ejemplo real…

https://app.powerbi.com/reportEmbed?reportId=0d8dcb5f-2571-4bdc-9f02-0cc5bb75c300&autoAuth=true&ctid=6cd48cd7-fe21-4571-9528-5f6d734932a6Lenguaje del código: JavaScript (javascript)
  • https://app.powerbi.com/: URL del servicio de Power BI, común para todos los usuarios.
  • reportEmbed?: palabra fija. Indica que es una URL embebida.
  • reportId: 0d8dcb5f-2571-4bdc-9f02-0cc5bb75c300
  • autoAuth=: true
  • ctid: 6cd48cd7-fe21-4571-9528-5f6d734932a6

Tipos de campos

Ha de saber que no es lo mismo filtrar un campo de fecha, número o una cadena, además el tipo debe coincidir exactamente con el tipo de dato definido en el modelo semántico.

  • Las cadenas deben ir entre comillas simples, como por ejemplo la siguiente cadena: ‘Web’
  • Las fechas y horas pueden llegar a ser complicadas… aunque visualmente muestres la fecha por ejemplo en formato dd/mm/yyyy siempre le tendrás que enviar la fecha en formato yyyy-mm-dd.
  • Los números no requieren ningún formato especial, pero dependerá del tipo en concreto:
TipoEjemplo
integer5
long5 L o 5 l
double5.5 or 55e-1 o 0.55e+1 o 5D o 5d o 0.5e1D o 0.5e1d o 5.5D o 5.5d o 55e-1D o 55e-1d
decimal5 M o 5 m o 5.5 M or 5.5 m
float5 F o 5 f o 0.5e1 F o 0.5e-1 d

Operadores

Los operadores en una URL van a indicar si el filtro contendrá un valor o varios o si debe ser mayor o igual que, etc. Están disponibles los siguientes operadores en Power BI:

OperadorDefiniciónCadenaNúmeroFecha
andy
eqigual
neno igual
gemayor o igual queno
gtmayor queno
lemenor o igual queno
ltmenor queno
inincluye

Caracteres especiales

Es posible que tu navegador no sepa interpretar ciertos caracteres especiales tanto en el nombre de la tabla/columna como en el resto de caracteres de la URL.

Caracteres especiales en tablas o campos

Como hemos visto anteriormente para filtrar en una URL necesitamos incluir el nombre de la tabla y el nombre del campo. Si tienes nombre comunes como mes, ciudad, cliente no tendrás problemas, pero si el nombre de tu tabla o campo contiene arrobas, espacios o algún otro como la siguiente tabla, deberás codificarlos:

Nombre Tabla/CampoUnicodeCódigo para Power BI
Fecha del pedidoLos espacios son: 00×20Fecha00x20del00x20pedido
Fecha@pedidoLas @ son:is 00×40Fecha00x40pedido
[Genero][ es 0x005B y ] es 0x005Dx005B_Genero_x005D
Nombre+Apellido+ es 0x2BNombre_x002B_Apellido

Otros caracteres especiales

En general, en los valores por los que quieres filtrar y en el resto de la URL debes sustituir los siguientes valores por los códigos de escape (aunque el navegador muchas veces sabe interpretarlo y los modifica automáticamente):

CaracterCódigo de escape
espacio%20
%27
%%25
+%2B
/%2F
?%3F
#%23
&%26

Existe una lista muy amplia de caracteres de escape que puedes leer aquí.

Ejemplos

Si vas a filtrar una URL base no embebida hay que añadir al final de la URL ?filter o &filter y en el caso de que sea un informe embebido &filter. ¿Cuál es la diferencia? Por no entrar en detalles muy técnicos, fijate si tu URL contiene ya un símbolo de interrogación, si lo tiene escribe al final &filter, sino lo tiene escribe ?filter.

Filtrar un solo campo

En el caso que quieras filtrar por un solo campo incluye la siguiente sintaxis al final de tu URL:

&filter=NombreTabla/NombreCampo eq valorNumerico o
&filter=NombreTabla/NombreCampo eq 'valorCadena' o 
&filter=NombreTabla/NombreCampo eq fechaLenguaje del código: JavaScript (javascript)

En el siguiente ejemplo filtrar una URL base por el campo mes de la tabla calendario y le indicamos que sea igual a 1.

https://app.powerbi.com/groups/1b05dc84-e477-4d6c-8410-38a2b2b5cbdd/reports/0d8dcb5f-2571-4bdc-9f02-0cc5bb75c300/ReportSectionabae8263044cf740aabf?experience=power-bi&filter=Calendario/Mes eq 1Lenguaje del código: JavaScript (javascript)

Es posible que te funcione, pero la forma correcta que funcionara a todos es como os escribo a continuación. Fijate que he sustituido el caracter / por %2F y los espacios por %20:

https://app.powerbi.com/groups/1b05dc84-e477-4d6c-8410-38a2b2b5cbdd/reports/0d8dcb5f-2571-4bdc-9f02-0cc5bb75c300/ReportSectionabae8263044cf740aabf?experience=power-bi&filter=Calendario%2FMes%20eq%201Lenguaje del código: JavaScript (javascript)

Filtrar dos campos

Es tan sencillo como incluir la palabra and y seguir la misma filosofía. En este otro ejemplo filtramos por el mes 1 de la tabla calendario y que sea menor del dia 15 de esa misma tabla:

https://app.powerbi.com/groups/1b05dc84-e477-4d6c-8410-38a2b2b5cbdd/reports/0d8dcb5f-2571-4bdc-9f02-0cc5bb75c300/ReportSectionabae8263044cf740aabf?experience=power-bi&filter=Calendario%2FMes%20eq%201%20and%20Calendario%2FDia%20lt%2015Lenguaje del código: JavaScript (javascript)
Filtrar un informe mediante URL en Power BI

Filtrar por una fecha

Ahora ya sabes filtrar por un campo o por varios y pueden ser de tipo cadena, número o fecha. En el siguiente ejemplo filtraremos por el campo de fecha de la tabla calendario para que la fecha esté comprendida entre el 02/01/2012 y el 05/01/2012:

https://app.powerbi.com/groups/1b05dc84-e477-4d6c-8410-38a2b2b5cbdd/reports/0d8dcb5f-2571-4bdc-9f02-0cc5bb75c300/ReportSectionabae8263044cf740aabf?experience=power-bi&filter=Calendario%2FFecha%20ge%202012-01-02%20and%20Calendario%2FFecha%20le%202012-01-05Lenguaje del código: JavaScript (javascript)

Filtrar por un campo cuya tabla tiene un espacio

El siguiente ejemplo tiene como peculiaridad que el nombre de la tabla contiene espacios y al tratarse de un espacio dentro del propio nombre de la tabla o campo tiene una codificación especial (_x0020_). El nombre de la tabla es Territorio de Ventas (recuerda que el nombre es sensible a mayúsculas y minúsculas) y el campo se llama Nombre. Además recuerda que al ser una cadena debe ir entrecomillada (%27).

https://app.powerbi.com/groups/1b05dc84-e477-4d6c-8410-38a2b2b5cbdd/reports/0d8dcb5f-2571-4bdc-9f02-0cc5bb75c300/ReportSectionabae8263044cf740aabf?experience=power-bi&filter=<em>Territorio</em>_x0020_<em>de</em>_x0020_<em>Ventas</em>%2FNombre%20eq%20%27France%27Lenguaje del código: HTML, XML (xml)

Consideraciones

  • Cuando se utiliza el operador in, los valores a la derecha de in deben ser una lista separada por comas y encerrada entre paréntesis.
  • Power BI Report Server también permite especificar más de un filtro utilizando el parámetro URL «filter». Este es un ejemplo del aspecto que podría tener la URL en Power BI Report Server: https://reportserver/reports/powerbi/Tienda?rs:Embed=true&filter= Cliente/Nombre eq ‘Miguel’ and Tienda/Ciudad eq ‘Madrid’
  • Los filtros URL de informes tienen un límite de 10 expresiones (10 filtros conectados por AND).
  • El tipo de datos long es (2^53-1) debido a las limitaciones de JavaScript.
  • Las cadenas de consulta URL están limitadas a 2000 caracteres. Este límite incluye códigos de escape para caracteres especiales (por ejemplo, un espacio, %, +).
  • No se puede filtrar por nombres de tabla o columna que empiecen por las letras mayúsculas INF, incluyendo, por ejemplo, un nombre de tabla que empiece por «INFORMACIÓN». INF en mayúsculas es un valor especial en OData.

Escribir un comentario