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

  1. 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.

    Connect to the SQL Server database

    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
    
  2. Seleccione Administrar parámetros en la cinta del Editor de Power Query.

    Select Manage Parameters

  3. Cree parámetros para el nombre del servidor y la base de datos.

    Manage Parameters, set servername and databasename.

  4. Edite la consulta para la primera conexión y asigne el nombre del servidor y la base de datos.

    Map the Server and Database name

    Ahora la consulta tiene este aspecto:

    let
        Source = Sql.Database(ServerName, Databasename),
        dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data]
    in
        dbo_ExecutionLog3
    
    1. 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.

    The data source management page.

Actualización de parámetros con las herramientas de PowerShell

  1. Abra PowerShell e instale las herramientas de Reporting Services más recientes mediante las instrucciones que se indican en https://github.com/microsoft/ReportingServicesTools.

  2. 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
    
  3. El resultado de esta llamada se guarda en una variable:

    $parameters = Get-RsRestItemDataModelParameters '/executionlogparameter'
    
  4. Se asigna a un diccionario para tener acceso a los valores de parámetro.

    $parameterdictionary = @{}
    foreach ($parameter in $parameters) { $parameterdictionary.Add($parameter.Name, $parameter); }
    
    
  5. Esta variable se actualiza con los valores que se deben cambiar.

  6. Actualice los valores de los parámetros deseados:

    $parameterdictionary[“ServerName”].Value = 'myproductionserver'
    $parameterdictionary[“Databasename”].Value = 'myproductiondatabase'
    
  7. 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
    
  8. 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.

    Set credentials for the updated server and database.

¿Tiene más preguntas? Pruebe a preguntar a la comunidad de Power BI