Ja genau, setVariable() und getVariable() sollte der Ansatz sein. Wenn es ums zählen geht, könnte auch incCounter() eine Möglichkeit sein.
Wir schauen mal, dass wir in den nächsten Tagen mal ein paar mehr Beispiele ins Handbuch bekommen.
Beispiel:
host:
https://demodata.synesty.com/example-json-orders.json?counter=${incCounter('myCounterInUrl')}
parsingTemplate:
<#assign row = target.addRow()>
<#list json as j >
<#assign row = target.addRow()>
${addColumns(row, j)}
</#list>
${nextUrl(initialUrl?replace("counter=1","") + "counter=" + incCounter('myCounterInUrl',1) )}
requestHeaders:
counter=${incCounter('myCounterInRequestHeader',1)}
Führt zu folgenden Requests:
[GET https://demodata.synesty.com/example-json-orders.json?counter=1
RequestHeaders:
{counter=1}
,GET https://demodata.synesty.com/example-json-orders.json?counter=2
RequestHeaders:
{counter=2}
Gibts du den Counter irgendwo in eine Funktion rein? Wenn ja probier mal:
countername.get()
bzw.
${countername.get()}
Die Counter Variable hat die gleichen Funktionen wie die Zählvariablen in Flows (Datentyp COUNTER). Der Unterschied ist, dass die incCounter() Funktion im APICall implizit einen eigenen Counter definiert, ohne dass du dafür eine Zählvariable im Flow brauchst.
Wir nehmen das auch mit in unsere Doku-Planung auf.
Bist du in der Step-Vorschau? Da werden maximal 2 Calls gemacht. Probier mal, ob bei einer echten Flow-Ausführung mehr passiert.
Hmm also vielleicht ist der Counter nicht so das richtige Mittel der Wahl und setVariable() / getVariable() vielleicht besser.
Der Ansatz mit setVariable() wäre, dass du initial einen <#if> Check machst, ob es deine Variable "offset" schon gibt und wenn nicht beginnst du bei offset=0 (oder so).
Hier mal ein Beispiel, womit du in der URL, im RequestBody und im RequestHeader konsistent das offset setzen kannst.
host:
https://demodata.synesty.com/example-json-orders.json?offset=<#if getVariable('offset')! == "">0<#else>${getVariable('offset')}</#if>
body:
<#assign row = target.addRow()>
<#list json as j >
<#assign row = target.addRow()>
${addColumns(row, j)}
</#list>
${setVariable("offset", (callcounter + 1) * 30 )}
${nextUrl(initialUrl?replace("offset=0","") + "offset=" + getVariable('offset') )}
requestHeader:
offset=<#if getVariable('offset')! == "">0<#else>${getVariable('offset')}</#if>
Ergebnis sind calls wie diese:
[GET https://demodata.synesty.com/example-json-orders.json?offset=0
RequestHeaders:
{offset=0}
GET https://demodata.synesty.com/example-json-orders.json?offset=30
RequestHeaders:
{offset=30}
Ergänzung (evtl. für andere, die es noch nicht wissen):
Die hier verwendeten Variablen wie z.B. callcounter sieht man bei Klick auf den Plus-Button im requestBody sowie