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... Viele Grüße Cedric
Das ist richtiges JSON was da herauskommt. Immer. Das ist bei RESTful APIs generell quasi Bedingung und Anforderung zugleich.
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: Aber das war ja auch nur ein Nebensatz gewesen ... und nicht die eigentliche Frage dieses Threads.
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...
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
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 ? ,
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.
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. Wie mache ich das über die API ? Muss ich dafür eine Programmiersprache lernen ? Wenn die API-Abfragen in Excel nicht gut funktionieren, wie gestalte ich meine Auswertungen damit ich diese auch vernünftig lesen kann ? Wie lange wird das i.e. dauern ? Ich bin echt auf Deine Antworten gespannt, vielleicht kannst Du mich ja doch überzeugen ...
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.
Klar kann Excel aus mehreren Tabellen "joinen" 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
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.
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.) ?
@Wilken (Gambio) Ich muss meinen alten Beitrag einfach nochmals selbst pushen, allein in der Hoffnung Antworten auf meine Fragen zu erhalten ...
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.
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.)
Das funktioniert sogar perfekt, einfach und schnell. Wenn es aber Methoden gibt die noch einfacher funktionieren bin ich immer hellhörig ...