Haben Sie irgendwo ein Beispiel, wie man Funktion ${nextUrl('')} nutzen kann ?
Danke.
Haben Sie irgendwo ein Beispiel, wie man Funktion ${nextUrl('')} nutzen kann ?
Danke.
Hallo,
sorry, die Documentation für die APICall nextUrl() Funktion versuchen wir schnellstmöglich nachzuliefern.
Geht es um XML oder JSON?
Hier nur in aller Kürze ein Beispiel, was die Anwendung verdeutlicht.
Die nextUrl() Funktion wird für Pagination benutzt, also das Weiterblättern und Aufrufen der nächsten Seite, so lange, bis das Ende der Ergebnisse erreicht ist.
Beispiel:
1. Call: http://api.myshop.com/getproducts
2. Call: http://api.myshop.com/getproducts?page=2
3. Call: http://api.myshop.com/getproducts?page=3
etc.
<#assign row = target.addRow()> <#assign numRows = 0 /> <#list json as p> <#assign row = target.addRow()> ${addColumns(row, p['product'])} <#assign numRows = numRows + 1 /> </#list> <#if (numRows > 0 && callcounter < callLimit)> <#assign offset = ((callcounter + 1) * 150)> ${nextUrl(initialUrl+"&offset="+offset)} </#if>
Variablen: Folgende Variablen sind vom Step immer verfügbar
Angenommen die erste URL wäre http://api.myshop.com/getproducts , dann würde obiges Script zum Aufruf folgender URLs führen:
1. http://api.myshop.com/getproducts
2. http://api.myshop.com/getproducts&offset=150
3. http://api.myshop.com/getproducts&offset=300
4. http://api.myshop.com/getproducts&offset=450
etc.
In der Programmierung würde das vermutlich einer do-while Schleife entsprechen.
D.h. der APICall step versucht immer die von nextUrl() gesetzte URL aufzurufen. Wird nextUrl() nicht aufgerufen, dann wird auch kein weiterer Call gemacht. D.h. die Endbedingung ist hier:
<#if (numRows > 0 && callcounter < callLimit)>
D.h. es muss noch Produkte in der Response geben, und es dürfen nur max. 5-Calls gemacht werden.
Zur Fehlermeldung:
Die Fehlermeldung (SAXParseException: Content is not allowed in prolog.) kommt daher, dass die API auf der Gegenseite ungültiges XML zurückliefert. Mit den Variablen hat das nichts zu tun. Es kann natürlich sein, dass an nextUr() eine URL übergeben wird, die falsches XML oder eine Fehlerseite liefert... ist aber Spekulation, da wir den Code hier nicht sehen.
Wir haben die Dokumentation für den APICall Step jetzt begonnen.
Feedback ist immer willkommen.