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
