Excel Power Query (über REST API)

Thema wurde von Guyonthecouch, 16. Juli 2019 erstellt.

  1. Guyonthecouch

    Guyonthecouch Erfahrener Benutzer

    Registriert seit:
    17. September 2016
    Beiträge:
    210
    Danke erhalten:
    24
    Danke vergeben:
    93
    Hallo zusammen,

    hat sich jemand schon mal jemand erfolgreich mit der Excel Power Query auf die REST API vom Shop verbunden und kann Erfahrungen teilen?

    Leider bekomme ich die Daten nicht richtig als Tabelle formatiert, da ich nicht weiß, welche Trennzeichen ich nutzen sollte.
    Das von der REST API ist ja ein Art von JSON. Richtig JSON könnte die Power Query direkt umwandeln...
    upload_2019-7-16_12-42-34.png upload_2019-7-16_12-43-41.png

    Viele Grüße
    Cedric
     
  2. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.310
    Danke vergeben:
    2.208
    Das ist richtiges JSON was da herauskommt. Immer. Das ist bei RESTful APIs generell quasi Bedingung und Anforderung zugleich.
     
  3. Guyonthecouch

    Guyonthecouch Erfahrener Benutzer

    Registriert seit:
    17. September 2016
    Beiträge:
    210
    Danke erhalten:
    24
    Danke vergeben:
    93
    Ich glaube EXCEL stört sich halt an den eckigen Klammern zu Beginn und am Ende.
    In JSON Beispielen auf diversen Seiten sieht es halt anders aus. Beispiel:
    upload_2019-7-16_13-24-52.png

    Aber das war ja auch nur ein Nebensatz gewesen ... und nicht die eigentliche Frage dieses Threads.
     
  4. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.310
    Danke vergeben:
    2.208
    Wenn Excel keine eckigen Klammern kann, dann kann es kein JSON. Das ist die normale Notation für Arrays. Siehe auch https://json.org/json-de.html

    Ich hab noch nie versucht da JSON reinzustecken, da wird man mit Excel denke ich auch oft scheitern. Excel hat da dieselben Fehler, die auch CSV Dateien weitgehend obsolet und unerwünscht machen: Es ist zweidimensional. Es gibt nach unten und nach rechts. In jede dieser Richtung gibt es immer gleiche Schuhkartons für je einen Wert. Früher als eine Bestellung eine Zahlung und einen Versandkarton bedeutet haben passte das... Heute erlaubt alles 1 zu n, mit beliebig hohem n.
    JSON ist da vergleichend deutlich mehrdimensionaler als Containerformat. Es kann mehr Beziehungen abbilden, per Hierachien weitere Felder in ein Ergebnisfeld abbilden, und durch Verknüpfungen (wie Links) auch weitere Dimensionen haben.
    Damit Excel das könnte, müsste jedes beliebige Tabellenfeld quasi zu je eigenen Tabellenblättern aufzoombar sein, in denen sich das wiederholen könnte. Dazwischen müssten Felder Hyperlinks haben...

    Vielleicht hat MS darum Arrays ausgelassen, weil Mehrdimensionalität und Verschachtelung sowieso ziemlich bei 0 funktioniert...
     
  5. Guyonthecouch

    Guyonthecouch Erfahrener Benutzer

    Registriert seit:
    17. September 2016
    Beiträge:
    210
    Danke erhalten:
    24
    Danke vergeben:
    93
    Aber so wäre ja das komplette JSON in ein "eindimensionales" Array mit nur einem Element gepackt... oder kann man mehrere Abfragen an die API stellen mit der gleichen Zeile Code?
    Sprich Ausgabe von Orders und Customers (wären dann zwei Elemente)?
    Dann würde es Sinn ergeben, aber so macht das eindimensionale Array meiner Meinung nach wenig Sinn.
    Aber das ist nur die Sichtweise eines Laiens. Die korrekte Realisierung überlasse ich euch, den Profis :)
     
  6. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    5. April 2017
    Beiträge:
    1.424
    Danke erhalten:
    339
    Danke vergeben:
    163


    Ich glaube Du kennst Dich mit Excel nicht wirklich gut aus, oder ?
    Jetzt bin ich auch nicht der Excel-Crack und beherrsche höchstens 10%, bin mir aber sicher das "Container", "Arrays" und was weiß ich noch alles, durchaus in Excel bearbeitet und analysiert werden kann.

    Gib doch bitte einfach mal ein Beispiel oder Anforderung was Gambio liefert und Excel NICHT verarbeiten kann ?
    ,
     
  7. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.310
    Danke vergeben:
    2.208
    Bau mal eine Tabelle, die Bestellungen darstellt:

    Jede Bestellung hat eine Zahlungsweise. Jede Zahlungsweise gibt eine Menge zwischen 1 und 100 unterschiedliche zahlungsweisenspezifischen Details zur Zahlung zurück. Die Tabelle muss in der Lage sein für jede Bestellung die Details jeder Zahlungsweise zu speichern. Das Datenobjekt das du bekommst, wird pro Bestellung immer nur da Feld für die eine vom Kunden in dieser Bestelllung genutzte Zahlungsweise enthalten, alle anderen werden nicht da sein.
    Ausserdem wird jede Bestellung eine Zahl zwischen 0 und sagen wir 100 dazugehörigen Belegen gespeichert haben. Es müssen mindestens vollständige Referenzen auf die für die Bestellung zugehörogen Belege abgebildet werden können, sowie Belegtyp.

    Da biste schon bei verknüpften Kreuztabellen die du brauchst, und es wird noch abstrakter.
     
  8. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    5. April 2017
    Beiträge:
    1.424
    Danke erhalten:
    339
    Danke vergeben:
    163
    #8 Anonymous, 16. Juli 2019
    Zuletzt bearbeitet: 17. Juli 2019

    Gut, vielen Dank !

    Ich weiß nicht genau was Du mit verknüpften Kreuztabellen meinst.
    Meine Excel-ODBC-Abfragen basieren auf SQL-Befehlen die mit evtl. Joins auf mehrere Tabellen zugreifen und Daten lesen. Wenn Du das mit verknüpften Kreuztabellen meinst, okay absolut kein Problem oder nennenswerter Schwierigkeitsgrad.

    Das was Du beschreibst ist ja offensichtlich ein Teil der Programmierung und vermutlich notwendig ...
    ... aber aus Sicht eines Anwenders der mit Excel zurecht kommt aber auch nur wenig mehr als Basiskenntnisse besitzt:

    Ich will einfach nur meine Bestellungen auswerten, dabei sind folgende Fragen/Parameter relevant:

    Zeitraum (Datum) / Artikelnr / Artikelanzahl / Artikelpreis, Bundesland / PLZ / Geburtstag, Geschlecht, Auftragswert/Bestellwert, Frachtkosten/Porto, Sprachcode, Gewicht

    ... und für die Disposition will ich noch auf die "offenen Warenkörbe" zugreifen und benötige von dort:

    Artikelnr / Artikelanzahl / Artikelpreis / Datum des WK


    Die notwendigen Daten stehen in verschiedenen Tabellen im Gambioshop zur Verfügung die problemlos mit evtl. erforderlichen Joins abgefragt werden können.

    Also erzeuge ich eine Datei mit ca. 25-40 Arbeitsblättern die mir alle gewünschten Auswertungen darstellt und das immer brandaktuell mit nur einem Knopfdruck [Daten aktualisieren].

    Dafür benötige ich mit relativ niedrigen Excelkenntnissen ca. 1-3 Tage (also max. 24 Std. inkl. Grafiken etc.) und dann ist das Ding wie gewünscht fertig und ich bin glücklich.

    1. Wie mache ich das über die API ?
    2. Muss ich dafür eine Programmiersprache lernen ?
    3. Wenn die API-Abfragen in Excel nicht gut funktionieren, wie gestalte ich meine Auswertungen damit ich diese auch vernünftig lesen kann ?
    4. Wie lange wird das i.e. dauern ?

    Ich bin echt auf Deine Antworten gespannt, vielleicht kannst Du mich ja doch überzeugen ... ;)
     
  9. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.570
    Danke erhalten:
    11.312
    Danke vergeben:
    1.614
    Ich habe vor ....Jahren mal einen ECDL gemacht (da ging es noch hauptsächlich um MS-Office-Anwendungen) und meine mich dunkel zu erinnern, das Exel auch Querverbindungen zwischen Tabellen kann.
    Aber:
    Ich arbeite nur noch mit Exel, wenn es sich nicht vermeiden lässt.
    LibreOffice oder Softmalker-Office finde ich um längen besser und einfache in der Anwendung als Exel.
     
  10. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    5. April 2017
    Beiträge:
    1.424
    Danke erhalten:
    339
    Danke vergeben:
    163
    Klar kann Excel aus mehreren Tabellen "joinen" :)

    upload_2019-7-16_19-54-21.png

    Das ist nur eine einfache Abfrage damit ich das MHD-Datum meines Sortiments im Auge habe ...
    ... ich habe aber auch Auswertungen mit 6 oder 7 Joins ;)
     
  11. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    5. April 2017
    Beiträge:
    1.424
    Danke erhalten:
    339
    Danke vergeben:
    163
    Das sieht in Live dann so aus:

    upload_2019-7-16_20-2-56.png
     
  12. dmun

    dmun Erfahrener Benutzer

    Registriert seit:
    2. Juni 2019
    Beiträge:
    322
    Danke erhalten:
    36
    Danke vergeben:
    6
    wieso legt ihr denn nicht einfach Views in der Datenbank an und greift dann darauf zu ? Ist doch viel schneller, einfacher und komfortabler als erst die Daten per ODBC in Excel zu laden und dann dort zu verknüpfen.
     
  13. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    5. April 2017
    Beiträge:
    1.424
    Danke erhalten:
    339
    Danke vergeben:
    163

    ... weil ich die Daten noch ganz anders weiterverarbeite und auswerte ...
     
  14. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.782
    Danke erhalten:
    942
    Danke vergeben:
    303
    Vor allem vielvielviel schneller...
     
  15. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    5. April 2017
    Beiträge:
    1.424
    Danke erhalten:
    339
    Danke vergeben:
    163
    was ist denn an so einem View schneller ?

    Ich meine, selbst umfangreiche Abfragen mit 5 oder mehr Tabellen sind in 1-5 Sekunden aktualisert.
    Eine theoretische Ausgabe innerhalb von dem Bruchteil einer Sekunde ist für mich kein Vorteil ... ;)


    Aber mal von dem Geschwindigkeitsvorteil abgesehen, kann ich mit Views genauso arbeiten wie mit meinen ODBC-Abfragen (Formatieren, Rechnen mit Ergebnissen usw.) ?
     
  16. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    5. April 2017
    Beiträge:
    1.424
    Danke erhalten:
    339
    Danke vergeben:
    163
    @Wilken (Gambio)


    Ich muss meinen alten Beitrag einfach nochmals selbst pushen, allein in der Hoffnung Antworten auf meine Fragen zu erhalten ...
     
  17. dmun

    dmun Erfahrener Benutzer

    Registriert seit:
    2. Juni 2019
    Beiträge:
    322
    Danke erhalten:
    36
    Danke vergeben:
    6
    Du solltest Dir mal die Doku zu diesem Thema anschauen um Dir ein genaues Bild zu machen, ggf. auch das Thema Trigger und Stored Procedures.
    Du kannst im Prinzip mit Views alles machen was Du auch mit "normalem" SQL machen kannst, und da müssten solche Dinge wie IF oder CASE deutlich einfacher gehen als mit Excel. Da Du Dich aber bedeckt hältst was Du genau machst ist es schwer hierzu mehr Details zu nennen.
     
  18. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    5. April 2017
    Beiträge:
    1.424
    Danke erhalten:
    339
    Danke vergeben:
    163

    Also ich mache überhaupt nichts in SQL. Ich bin kein Programmierer und spreche kein SQL (auch wenn ich es ein bisschen lesen kann)

    Ich greife über Excel auf die Tabellen zu und werte diese aus. Die entsprechenden SQL-Statements werden von Excel automatisch generiert.

    Die Vorgehensweise habe ich hier beschrieben:
    (Link nur für registrierte Nutzer sichtbar.)
     
  19. dmun

    dmun Erfahrener Benutzer

    Registriert seit:
    2. Juni 2019
    Beiträge:
    322
    Danke erhalten:
    36
    Danke vergeben:
    6
    Ja gut, wenn dies für Dich funktioniert, dann ist doch alles okay. Es gibt viele Wege ans Ziel.
     
  20. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    5. April 2017
    Beiträge:
    1.424
    Danke erhalten:
    339
    Danke vergeben:
    163
    Das funktioniert sogar perfekt, einfach und schnell.
    Wenn es aber Methoden gibt die noch einfacher funktionieren bin ich immer hellhörig ... ;)