Als Antwort auf diesen Beitrag
Moin, :-)
... daher, dass ich in der
Funktion fnJSON pauschal "
Record.FieldNames([Value]{0})" mache. Wenn die Liste leer ist, oder "documents" nicht existiert knallt es da: ;-)
Fehler in der Abfrage 'fnJSON'. Expression.Error: Der Vorgang konnte nicht abgeschlossen werden, da die Enumeration nicht genügend Elemente enthielt. Details: [List]
Um das zu umgehen
prüfen wir vorher. Also
tausche/überschreibe den
kompletten M-Code in der
Funktion fnJSON mit
diesem hier: ;-)
let
Quelle = (Datei as binary) =>
let
Quelle = Json.Document(Datei),
ID = Quelle[id],
Alles = Record.ToTable(Quelle),
NurStrukturen = Table.SelectRows(Alles, each Value.Is([Value], type list) or Value.Is([Value], type record)),
Transform = Table.AddColumn(NurStrukturen, "Data", each if Value.Is([Value], type record) then Table.AddColumn( Record.ToTable([Value]), "ID", each ID) else
if [Value] = null or List.Count([Value]) = 0 then
#table({}, {})
else
Table.AddColumn(
Table.ExpandRecordColumn(
Table.FromList(
[Value],
Splitter.SplitByNothing()
),
"Column1",
Record.FieldNames([Value]{0})
),
"ID",
each ID
))
in
Transform
in
Quelle
Das ist eben
getestet - und
funktioniert mit
deiner Beispiel-JSON. ;-)
Servus
Case