Web-Import von Javascript [GELÖST]
25.08.2022 16:15:56
Javascript
wir haben die Abfrage nun hinbekommen und möchte unsere Lösung nicht vorenthalten.
Anbei das alte Thema: https://www.herber.de/forum/archiv/1892to1896/1893288_WebImport_von_Javascript.html
Anbei die Lösung die in PowerQuery nun eingespielt wurde um die Daten lesbar einzulesen - von uns natürlich gekürzt für wesentliche Informationen.
Anbei die Lösung - einfach im PQ unter "Erweiterter Editor" einfügen und siehe da... :-)
let
Source = Json.Document(Web.Contents("https://coast.hhla.de/api/execute-report/Standard-Report-Segelliste")),
#"Converted to Table" = Record.ToTable(Source),
Value1 = #"Converted to Table"{6}[Value],
Value2 = Value1{0},
#"Converted to Table1" = Record.ToTable(Value2),
#"Transposed Table" = Table.Transpose(#"Converted to Table1"),
#"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", [PromoteAllScalars=true]),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"id", type text}, {"name", type any}, {"totalNumberOfRows", Int64.Type}, {"columns", type any}, {"rows", type any}}),
#"Removed Other Columns" = Table.SelectColumns(#"Changed Type",{"columns", "rows"}),
#"Expanded columns" = Table.ExpandListColumn(#"Removed Other Columns", "columns"),
#"Expanded columns1" = Table.ExpandRecordColumn(#"Expanded columns", "columns", {"id", "columnId", "type", "domainvalueType", "defaultDisplaySettings", "personalDisplaySettings", "link", "aggregationType", "hidden"}, {"id", "columnId", "type", "domainvalueType", "defaultDisplaySettings", "personalDisplaySettings", "link", "aggregationType", "hidden"}),
#"Expanded defaultDisplaySettings" = Table.ExpandRecordColumn(#"Expanded columns1", "defaultDisplaySettings", {"position", "sortOrder", "sortDirection"}, {"position", "sortOrder", "sortDirection"}),
#"Expanded rows" = Table.ExpandListColumn(#"Expanded defaultDisplaySettings", "rows"),
#"Expanded rows1" = Table.ExpandListColumn(#"Expanded rows", "rows"),
#"Expanded rows2" = Table.ExpandRecordColumn(#"Expanded rows1", "rows", {"columnId", "value"}, {"columnId.1", "value"}),
#"Removed Other Columns1" = Table.SelectColumns(#"Expanded rows2",{"columnId.1", "value"}),
Custom1 = Table.Split(#"Removed Other Columns1",15),
#"Converted to Table2" = Table.FromList(Custom1, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Added Custom" = Table.AddColumn(#"Converted to Table2", "Custom", each Table.PromoteHeaders(Table.Transpose([Column1]))),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Column1"}),
#"Expanded Custom" = Table.ExpandTableColumn(#"Removed Columns", "Custom", {"schiffabfertigung.abfahrtistzeitpunkt", "schiffabfertigung.abfahrtsollzeitpunkt", "schiffabfertigung.ankunftistzeitpunkt", "schiffabfertigung.ankunftsollzeitpunkt", "schiffabfertigung.exportreise", "schiffabfertigung.funkcode", "schiffabfertigung.importreise", "schiffabfertigung.jahresschiffsnummer", "schiffabfertigung.ladebeginnzeitpunkt", "schiffabfertigung.ladeendezeitpunkt", "schiffabfertigung.loeschbeginnzeitpunkt", "schiffabfertigung.loeschendezeitpunkt", "schiffabfertigung.schiffsname", "schiffabfertigung.schiffstyp", "schiffabfertigung.terminal"}, {"schiffabfertigung.abfahrtistzeitpunkt", "schiffabfertigung.abfahrtsollzeitpunkt", "schiffabfertigung.ankunftistzeitpunkt", "schiffabfertigung.ankunftsollzeitpunkt", "schiffabfertigung.exportreise", "schiffabfertigung.funkcode", "schiffabfertigung.importreise", "schiffabfertigung.jahresschiffsnummer", "schiffabfertigung.ladebeginnzeitpunkt", "schiffabfertigung.ladeendezeitpunkt", "schiffabfertigung.loeschbeginnzeitpunkt", "schiffabfertigung.loeschendezeitpunkt", "schiffabfertigung.schiffsname", "schiffabfertigung.schiffstyp", "schiffabfertigung.terminal"}),
#"Replaced Value" = Table.ReplaceValue(#"Expanded Custom","T"," ",Replacer.ReplaceText,{"schiffabfertigung.abfahrtistzeitpunkt", "schiffabfertigung.abfahrtsollzeitpunkt", "schiffabfertigung.ankunftistzeitpunkt", "schiffabfertigung.ankunftsollzeitpunkt", "schiffabfertigung.ladebeginnzeitpunkt", "schiffabfertigung.ladeendezeitpunkt", "schiffabfertigung.loeschbeginnzeitpunkt", "schiffabfertigung.loeschendezeitpunkt"}),
#"Changed Type1" = Table.TransformColumnTypes(#"Replaced Value",{{"schiffabfertigung.loeschendezeitpunkt", type datetimezone}, {"schiffabfertigung.loeschbeginnzeitpunkt", type datetimezone}, {"schiffabfertigung.ladeendezeitpunkt", type datetimezone}, {"schiffabfertigung.ladebeginnzeitpunkt", type datetimezone}, {"schiffabfertigung.ankunftsollzeitpunkt", type datetimezone}, {"schiffabfertigung.ankunftistzeitpunkt", type datetimezone}, {"schiffabfertigung.abfahrtsollzeitpunkt", type datetimezone}, {"schiffabfertigung.abfahrtistzeitpunkt", type datetimezone}}),
#"Gefilterte Zeilen" = Table.SelectRows(#"Changed Type1", each ([schiffabfertigung.ankunftistzeitpunkt] = null)),
#"Entfernte Spalten" = Table.RemoveColumns(#"Gefilterte Zeilen",{"schiffabfertigung.exportreise", "schiffabfertigung.funkcode", "schiffabfertigung.importreise", "schiffabfertigung.jahresschiffsnummer", "schiffabfertigung.ladebeginnzeitpunkt", "schiffabfertigung.ladeendezeitpunkt", "schiffabfertigung.loeschbeginnzeitpunkt", "schiffabfertigung.loeschendezeitpunkt", "schiffabfertigung.schiffstyp"}),
#"Entfernte Duplikate" = Table.Distinct(#"Entfernte Spalten", {"schiffabfertigung.schiffsname"})
in
#"Entfernte Duplikate"