Problem mit parsing template

Hallo zusammen,

ich will Produkte einer API abrufen. Wenn ich das parsing template nutze, bekomme ich einen Fehler mit dem ich nichts anfangen kann. Ohne das Parsing template funkioniert der Abruf von Page1.
Kann jemand helfen?


k

Hallo @philippm,

nach ("page") fehlt noch eine schließende Klammer:

Viele Grüße
Torsten

Danke! Hatte ich aus der Doku kopiert, da ist der Fehler also auch drin :slight_smile:

Es wird allerdings nur page1 abgerufen.

Beim Parsen bekomme ich leider auch einen Fehler, beim automatischen Parsen mit APICall hat es funktioniert.

Hallo @philippm,

Vielen Dank für den Hinweis. Wir korrigieren das Beispiel in der Dokumentation.

Es scheint ein Problem mit dem input JSON aus der list Spalte zu geben.
Die angegebene Zeile in der Fehlermeldung bezieht sich allerdings nicht auf die Zeile des input Spreadsheets, sondern auf den JSON der gerade versucht wird zu parsen. Der Fehler im JSON könnte entsprechend in einer der ersten 10 Zeilen des APICall Outputs vorhanden sein. Kannst dir mal 10 Zeilen in der Vorschau des API Call Steps anzeigen lassen ? Eventuell kann man in einer der Zeilen schon ein Problem erkennen.

Viele Grüße
Torsten

Hi Thorsten,

APIcall hat nur 1 Zeile Output, da nur eine Seite abgerufen wird (eigentlich sind es 10 Seiten).
Wenn ich auf JSON automatische Erkennung wechsle (ohne Pagination), dann passt der Output in der Tabelle.

Versuch mal im parsingTemplate des APICall Steps direkt

<#list json['list'] as j >

zu verwenden.

image

Den zusätzlichen JSONReader Step brauchst du dann eigentlich nicht mehr.

Erkärung des Problems:

Der Ursache für das Problem ist die Funktionsweise der addColumns Funktion. In der response (JSON) des APICall Steps ist list ein Array/Liste von Objekten ( ... ,"list": [ { "id": "8", "order_id": "1", ...}, {...} , {...} ] ).
Bei der addColumns Funktion werden die einzelne Elemente einer Liste kommasepariert ausgegeben. Das führt im Output Spreadsheet des APICall Steps dazu, dass die Objekte einzeln(Komma separiert) aufgelistet werden. Das sieht fast genauso aus, aber es fehlen die eckigen Klammern, damit es ein valider JSON ist. Unser JSONReader meckert dann genau nach dem ersten Objekt beim Komma (nach 400 Zeichen).

Super, hat funktioniert.
Aber der APICall erzeugt nur eine Liste der ersten page, es sind aber insgesamt 10 pages.

Kannst du bitte mal probieren den „page“ Parameter für die 1. Seite in der Url (host Feld) mit anzugeben:

.../products?page=1

image

Die pagination Funktion in nextUrl läuft sonst ins leere, weil der „page“ parameter in der initialUrl Variable nicht vorhanden ist.

Hallo Torsten,

leider funktioniert das immer noch nicht.
Es wird immer wieder Page2 aufgerufen, wenn ich den Flow starte.

Probier mal host statt initialUrl.

initialUrl ist immer die „Anfangs-URL“. Wenn dort page=1 drin steht, wird immer + 1 gerechnet - das ist immer 2.

host hingegen beinhaltet immer die jeweils aktualisierte URL.

Wir prüfen dann auch nochmal die Stelle im Handbuch, wenn es bei dir klappt.

Ja das klappt jetzt, danke!