Table of Contents

Mostrar las dependencias del origen de datos

Objetivo del script

El script devuelve las tablas que hacen referencia al origen de datos explícito (heredado) seleccionado. Esto facilita determinar dónde se utiliza el origen de datos seleccionado.

Secuencia de comandos

Mostrar las dependencias del origen de datos

//The script outputs the tables that reference the selected explicit (legacy) data source.
if (Model.DataSources.Count == 0)
{
    Info("This model doesn't contain any data sources, it is either empty or using implicit datasources");
    return;
}
// Checks that a data source is selected
DataSource selectedDatasource = null;

if (Selected.DataSources.Count == 1)
    selectedDatasource = Selected.DataSource;
else
    selectedDatasource = SelectObject<DataSource>(Model.DataSources, null, "Select which datasource to see dependencies for");

// Legacy sources
var legacyTables = Model.Tables.Where(t => t.Source == selectedDatasource.Name).ToList();

// M sources
var mTables = Model.Tables.Where(t => t.Partitions.Any(p => p.Expression.Contains($"= #\"{selectedDatasource.Name}\","))).ToList();

// join arrays
var allTables = legacyTables.Union(mTables).OrderBy(t => t.Name);

// Present result
var tableString = string.Join("\r\n", allTables.Select(t => t.Name));
Info($"Datasource {selectedDatasource.Name} is referenced from the following tables:\r\n" + tableString);

Explicación

Este fragmento toma el origen de datos seleccionado y recorre el modelo para recopilar las particiones en las que se utiliza ese origen de datos.

Salida de ejemplo

Example of the dialog pop-up that informs the user which tables use the selected data source
Figura 1: Ejemplo del cuadro de diálogo emergente que informa al usuario de qué tablas utilizan el origen de datos seleccionado.