¿Utilizar la plantilla PBI con parámetro para una base de datos diferente?

Un usuario Pregunto ✅

MojoGene

No estoy seguro de si esto es posible con parámetros y plantillas PBI.

Supongamos que tenemos la Empresa A y la Compañía B que utilizan una base de datos de ventas con la misma estructura (mismas tablas, campos, etc.), pero los datos de cada una de las bases de datos son únicos para cada Empresa. La base de datos de la empresa A se denomina sql.Databases («CompanyA») y la base de datos de la empresa B se denomina Sql.Databases («CompanyB»).

¿Se puede una plantilla para conectarse a cualquiera o ambas bases de datos y, en caso afirmativo, cómo crearía la lista de valores aceptados que solicitaría un usuario a qué base de datos conectarse?

Gracias.

Hola, @MojoGene

Me gustaría sugerirle que cree tres parámetros como se muestra a continuación.

d1.png

d2.png

d3.png

A continuación, puede hacer clic en ‘Editor avanzado’ y parametrizar el origen de datos. Uso de SQL Server para probar.

d4.png

A continuación, debe guardarlo como un archivo de plantilla (archivo pbit).

Al abrir el archivo pbit, puede introducir el parámetro correspondiente para conectarse a la tabla específica.

d5.png

Para obtener más información, me gustaría sugerirle que consulte los siguientes enlaces.

Crear plantillas de informe para Power BI Desktop

Profundizar en los parámetros de consulta y plantillas de Power BI

Parámetros de consulta de Power BI Desktop

Saludos

Alano

Si este post ayudaentonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

mahoneypat

La mejor manera de hacerlo sería crear un parámetro en el editor de consultas para contener los nombres de la base de datos. A continuación, usaría este nombre de parámetro en la consulta. Si desea un escenario de selección única y el usuario selecciona (los parámetros solo pueden contener un valor único), tendrá una consulta que consulta la base de datos para ese valor. Si desea que se consulta la opción múltiple (se consultan todas las bases de datos enumeradas y el usuario puede elegir las bases de datos deseadas de una segmentación de datos), crearía una tabla con la lista de nombres de base de datos y, a continuación , crearía una función personalizada que acepte el mismo parámetro pero el nombre de la base de datos para esa fila como entrada. Todos los resultados se anexarían y aún deberíamos la columna de nombre de base de datos para cortar.

Si esto funciona para usted, por favor márquelo como la solución. Los felicitaciones también son apreciados. Por favor, avísame si no.

saludos

palmadita

MojoGene

En respuesta a mahoneypat

palmadita:

Gracias por entrar.

Podría crear una lista con los nombres de base de datos para cada compañía. Eso parece bastante simple. Pero, ¿cómo paso el valor de lista seleccionado como origen para cada tabla de la base de datos?

mahoneypat

En respuesta a MojoGene

Cree una función personalizada en el editor de consultas y en la consulta con la tabla con la lista de nombres de base de datos, en la pestaña Agregar elija Invocar función, eligiendo la columna con los nombres de base de datos como parámetro de entrada. Consulte este post para obtener instrucciones.

https: //www.poweredsolutions.co/2019/02/19/parameters-and-functions-in-power-bi-power-query-custom-f …

Para crear la función, realizar una consulta que haga lo que desee con una de las bases de datos y, a continuación, modifique la consulta en el editor avanzado, reemplazando el nombre de la base de datos por el nombre del parámetro. En el ejemplo siguiente, el nombre del parámetro está entre paréntesis. Los valores de la tabla de nombres se insertan allí cuando se invoca la función personalizada.

(nombre de la base de datos)>

Fuente: sql.database (actualservername, databasename, …)

Si esta solución funciona para usted, márquela como la solución. Los felicitaciones también son apreciados. Por favor, avísame si no.

saludos

palmadita

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *