AW: Dann nachfolgend mal...
19.08.2024 11:35:01
Luschi
Hallo Case,
ich habe die folgende Schleife aus Deinem M-Code getestet:ExSt = List.Accumulate({1..MaxStufe}, StartT, (sIST, akt) =>
let
Erweitert = Table.ExpandListColumn(sIST, "Stufe" & Text.From(akt)),
Join = Table.NestedJoin(Erweitert, {"Stufe" & Text.From(akt)}, Filtb, {"Nummer"}, "NeueStufe"),
Expand = Table.ExpandTableColumn(Join, "NeueStufe", {"Nummer2"}, {"Stufe" & Text.From(akt + 1)}),
Entf0 = Table.SelectRows(Expand, each List.NonNullCount(Record.FieldValues(_)) > 0),
Gruppe = Table.Group(Entf0, {"Nummer"}, {{"Stufe" & Text.From(akt + 1), each List.Distinct(List.RemoveNulls(Record.Field(_, "Stufe" & Text.From(akt + 1)))), type list}}),
Umbenannt = Table.RenameColumns(Gruppe, {{"Nummer", "NummerTemp"}}),
JoinedTable = Table.Join(sIST, "Nummer", Umbenannt, "NummerTemp", JoinKind.LeftOuter),
OhneN = Table.RemoveColumns(JoinedTable, {"NummerTemp"})
in
OhneN),
Und zwar so, daß nur der 1. Durchlauf von List.Accumulate() simuliert wird: akt = 1,
sIST = StartT,
Erweitert = Table.ExpandListColumn(sIST, "Stufe" & Text.From(akt)),
Join = Table.NestedJoin(Erweitert, {"Stufe" & Text.From(akt)}, Filtb, {"Nummer"}, "NeueStufe"),
Expand = Table.ExpandTableColumn(Join, "NeueStufe", {"Nummer2"}, {"Stufe" & Text.From(akt + 1)}),
Entf0 = Table.SelectRows(Expand, each List.NonNullCount(Record.FieldValues(_)) > 0),
Gruppe = Table.Group(Entf0, {"Nummer"}, {{"Stufe" & Text.From(akt + 1),
each List.Distinct(List.RemoveNulls(Record.Field(_, "Stufe" & Text.From(akt + 1)))), type list}}),
Umbenannt = Table.RenameColumns(Gruppe,{{"Nummer", "NummerTemp"}}),
JoinedTable = Table.Join(sIST, "Nummer", Umbenannt, "NummerTemp", JoinKind.LeftOuter),
OhneN = Table.RemoveColumns(JoinedTable, {"NummerTemp"}),
Beim PQ-Schritt: Gruppe = Table.Group... erscheint in der Spalte 'Stufe2' überall 'Error' mit der Fehlerbeschreibung:
Expression.Error: Ein Wert vom Typ "Table" kann nicht in den Typ "Record" konvertiert werden.
ABER: der nächste PQ-Schritt: Umbenannt = Table.RenameColumns(Gruppe,{{"Nummer", "NummerTemp"}})
behebt erstaunlicher Weise diesen Fehler in der Spalte 'Stufe2'
Erfolgt die Umbenennung vor der Gruppierung, dann ist beim Einzeltest alles i.O.
Also so:Erweitert = Table.ExpandListColumn(sIST, "Stufe" & Text.From(akt)),
Join = Table.NestedJoin(Erweitert, {"Stufe" & Text.From(akt)}, Filtb, {"Nummer"}, "NeueStufe"),
Expand = Table.ExpandTableColumn(Join, "NeueStufe", {"Nummer2"}, {"Stufe" & Text.From(akt + 1)}),
Entf0 = Table.SelectRows(Expand, each List.NonNullCount(Record.FieldValues(_)) > 0),
Umbenannt = Table.RenameColumns(Entf0, {{"Nummer", "NummerTemp"}}),
Gruppe = Table.Group(Umbenannt, {"NummerTemp"}, {{"Stufe" & Text.From(akt + 1),
each List.Distinct(List.RemoveNulls(Record.Field(_, "Stufe" & Text.From(akt + 1)))), type list}}),
JoinedTable = Table.Join(sIST, "Nummer", Gruppe, "NummerTemp", JoinKind.LeftOuter),
OhneN = Table.RemoveColumns(JoinedTable, {"NummerTemp"}),
Und aus diesem Grund habe ich auch im PQ.Schritt 'ExSt' diese Umbenennung angepaßt. Aber hast Du eine Erklärung für dieses Verhalten?
Gruß von Luschi
aus klein-Paris