Cambio de cadenas de conexión de origen de datos en informes de Power BI con PowerShell: Power BI Report Server
Habilitamos la capacidad de actualizar las conexiones de informes de Power BI para DirectQuery y actualización.
Importante
Esto también es un cambio importante sobre cómo se podía configurar en versiones anteriores. Si usa una versión de Power BI Report Server anterior a la de octubre de 2020, vea Cambio de cadenas de conexión de origen de datos en informes de Power BI con PowerShell: Power BI Report Server anterior a octubre de 2020.
Prerrequisitos
- Descargue la versión más reciente de Power BI Report Server y de Power BI Desktop para Power BI Report Server.
- Un informe guardado con la versión de octubre de 2020 o posterior de Power BI Desktop optimizado para Report Server, con Metadatos de conjuntos de datos mejorados habilitado.
- Un informe en el que se usen conexiones parametrizadas. Después de la publicación solo se pueden actualizar los informes con conexiones parametrizadas y las bases de datos.
- En este ejemplo se usan las herramientas de PowerShell de Reporting Services. Puede lograr lo mismo mediante las nuevas API REST.
Creación de un informe con conexiones parametrizadas
Cree una conexión de SQL Server a un servidor. En el ejemplo siguiente, se va a conectar al host local a una base de datos denominada ReportServer y a extraer datos de ExecutionLog.
Este es el aspecto de la consulta de M hasta el momento:
let Source = Sql.Database("localhost", "ReportServer"), dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data] in dbo_ExecutionLog3
Seleccione Administrar parámetros en la cinta del Editor de Power Query.
Cree parámetros para el nombre del servidor y la base de datos.
Edite la consulta para la primera conexión y asigne el nombre del servidor y la base de datos.
Ahora la consulta tiene este aspecto:
let Source = Sql.Database(ServerName, Databasename), dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data] in dbo_ExecutionLog3
- Publique el informe en el servidor. En este ejemplo, el nombre del informe es executionlogparameter. La imagen siguiente es un ejemplo de una página de administración de orígenes de datos.
Actualización de parámetros con las herramientas de PowerShell
Abra PowerShell e instale las herramientas de Reporting Services más recientes mediante las instrucciones que se indican en https://github.com/microsoft/ReportingServicesTools.
A fin de obtener el parámetro para el informe, use la nueva API REST DataModelParameters con la siguiente llamada de PowerShell:
Get-RsRestItemDataModelParameters '/executionlogparameter' Name Value ---- ----- ServerName localhost Databasename ReportServer
El resultado de esta llamada se guarda en una variable:
$parameters = Get-RsRestItemDataModelParameters '/executionlogparameter'
Se asigna a un diccionario para tener acceso a los valores de parámetro.
$parameterdictionary = @{} foreach ($parameter in $parameters) { $parameterdictionary.Add($parameter.Name, $parameter); }
Esta variable se actualiza con los valores que se deben cambiar.
Actualice los valores de los parámetros deseados:
$parameterdictionary[“ServerName”].Value = 'myproductionserver' $parameterdictionary[“Databasename”].Value = 'myproductiondatabase'
Con los valores actualizados, se puede usar el commandlet
Set-RsRestItemDataModelParameters
para actualizar los valores del servidor:Set-RsRestItemDataModelParameters -RsItem '/executionlogparameter' -DataModelParameters $parameters $parameterdictionary.Values
Una vez que se han actualizado los parámetros, el servidor actualiza los orígenes de datos que estaban enlazados a los parámetros. De nuevo en el cuadro de diálogo Editar origen de datos, debería poder establecer las credenciales para el servidor y la base de datos actualizados.
Contenido relacionado
¿Tiene más preguntas? Pruebe a preguntar a la comunidad de Power BI