mwegener
Recientemente tuve el requisito de guardar el conjunto de datos mensual de un informe de Power BI. Recordé una publicación de blog de Chris Webb sobre cómo usar Power Automate para acceder a la API de Power BI Rest. La siguiente publicación describe cómo uso esto para crear una copia de seguridad mensual de PBIX.
Registrar una aplicación para las API de Power BI
En el primer paso, tenemos que registrar una nueva aplicación que pueda acceder a las API de Power BI de nuestros inquilinos. No describiré el proceso en detalle. Eche un vistazo al Documentación de Microsoft.
La aplicación se puede registrar en la página
https://dev.powerbi.com/apps
- Nombre de la aplicación: Ingrese el nombre de su aplicación aquí
- Tipo de aplicacion: Aplicación web del lado del servidor (para aplicaciones web o API web)
- URL de la Pagina Principal: Aquí puede ingresar la URL de su sitio web / inquilino
- Redireccionar URL: Primero ingrese https://login.live.com/oauth20_desktop.srf, esto luego será reemplazado por una URL de redireccionamiento de Power Automate
- Acceso a la API: Seleccioné «Seleccionar todo» para poder utilizar todas las funciones de la API en Power Automate. También puede cambiar el acceso más tarde mediante Azure Portal.
Ahora “Registramos” la aplicación y guardamos el “ID de la aplicación” y el “Secreto de la aplicación” en un lugar seguro. Serán necesarios más tarde.
Creación de un conector personalizado de Power Automate
Navegar a Automatizar el poder y seleccione «Conectores personalizados» en «Datos» en el panel de navegación de la izquierda. Aquí seleccionamos la opción «Importar una OpenAPI desde URL» del menú «Crear conector personalizado».
Ingrese un nombre para su conector e importe la definición de OpenAPI. Puede encontrar una definición de OpenAPI para la API REST de Power BI aquí. https://raw.githubusercontent.com/microsoft/PowerBI-CSharp/master/sdk/swaggers/swagger.json
El siguiente cuadro de diálogo requiere información general sobre el conector.
Subí un icono para el conector y establezca el color de fondo en: # F2C811
El siguiente cuadro de diálogo es para configurar la seguridad.
Konstantinos ha determinado los siguientes valores para la autenticación de Azure aquí.
- Tipo de autenticación: OAuth 2.0
- Proveedor de identidad: Azure Active Directory
- Identificación del cliente: Ingrese el «ID de la aplicación» del registro de la aplicación
- Secreto del cliente: Ingrese el «secreto de la aplicación» del registro de la aplicación
- URL de inicio de sesión: https://login.windows.net
- Identificación del inquilino: común
- URL del recurso: https://analysis.windows.net/powerbi/api
- Alcance: openid
Después de hacer clic en «Crear conector», se muestra la URL de redireccionamiento. Dependiendo de su ubicación, esta URL puede ser diferente.
Agregue la URL de redireccionamiento a la aplicación registrada anteriormente. Iniciar sesión en el portal de Azure https://portal.azure.com
“Azure Active Directory” -> “Registros de aplicaciones” -> “Nombre de nuestra aplicación”. En «Autenticación», reemplace «Redirigir URI» con la URL de Power Automate.
Creación del flujo de Power Automate
Ahora creamos Power Automate Flow. Primero, determinamos el GUID del área de trabajo y el informe de Power BI que se archivará. Después de abrir el informe, los valores se pueden leer en la línea de dirección.
Para la ejecución mensual elegimos un “Flujo programado” en Power Automate.
Asigne un nombre al flujo y configure el cronograma.
En el flujo, el conector personalizado ahora se puede usar con todas las llamadas a la API de Power BI.
Cuando acceda por primera vez, debe iniciar sesión y aceptar los permisos solicitados.
A continuación, puede configurar el siguiente flujo de Power Automate.
Nuevo paso: exportar PBIX
Seleccione la acción Conector personalizado «Exporta el informe especificado del espacio de trabajo especificado a un archivo .pbix». y cámbiele el nombre a «Exportar PBIX».
- Identificación del grupo: GUID del espacio de trabajo de origen
- reportId: GUID del informe de origen
Nuevo paso: redactar
Selecciona el «Componer» acción para convertir el cuerpo de exportación en la estructura “multipart / form-data” requerida para la importación.
- Entradas:
{
"$content-type": "multipart/form-data",
"$multipart": [
{
"body": @{body('Export_PBIX')}
}
]
}
Nuevo paso: importar PBIX
Seleccione la acción Conector personalizado «Crea contenido nuevo en el espacio de trabajo especificado desde .pbix, .json, Excel, Rdl o ruta de archivo en OneDrive para la Empresa». y cámbiele el nombre a «Importar PBIX».
- Identificación del grupo: GUID del espacio de trabajo de destino
- datasetDisplayName: Nombre del archivo PBIX que se creará, utilizo la siguiente expresión para esto.
concat('DIAD ',
formatDateTime(utcNow(),'yyyyMMdd') ,
'.pbix')
- importInfo: Aquí se inserta la salida del paso de composición anterior.
- nameConflict: Abortar
Después de la creación, se puede probar Power Automate Flow.
Una mirada al área de trabajo de Power BI muestra que la copia del informe se ha guardado correctamente.
Y una última cosa: Konstantinos & Chris mencionan en sus publicaciones, si recibe un error 404 (o error 403), espere unos minutos.
Enlaces:
- https: //blog.crossjoin.co.uk/2018/10/19/calling-the-power-bi-rest-api-from-microsoft-flow-part-1-cre …
- https://medium.com/@Konstantinos_Ioannou/refresh-powerbi-dataset-with-microsoft-flow-73836c727c33
- https://powerusers.microsoft.com/t5/Building-Flows/HTTP-Post-multipart-form-data/td-p/145181