Skip to main content
Skip table of contents

Bron data in segmenten ophalen

Het kan voorkomen dat een externe bron de gewenste data niet in één keer aan kan leveren, omdat er wellicht (i.k.v. performance en hoeveelheid data) een beperking zit van bijvoorbeeld 1000 resultaten per keer.

In zo’n geval heeft de externe bron meestal de mogelijkheid om in de aanroep (URL) te specificeren dat je een specifiek segment/pagina wilt ophalen van de data. U-Turn ondersteunt de mogelijkheid om dit bij een bron op te geven.

Voorbeeld 1 : Indicatie van meer data in de header van de response van de externe bron

Stel we hebben een externe bron die in de URL parameters ondersteunt voor pagina & aantallen per pagina. En via een statuscode 206 (= Partial Content) aangeeft dat er nog meer data beschikbaar is. In zo’n situatie wil je de externe bron net zo lang aan blijven roepen totdat alle data opgehaald is.

Voor dit voorbeeld gebruiken we :

Welke stappen dien je in deze situatie te ondernemen:

  • Ga naar het bewerk scherm van de betreffende bron

  • Bewerk het veld 'Url'

PY
page_size = 1000

if 'page_number' not in locals():
    page_number = 0
    
'https://www.mooqe.it/dummy-api/incidents?page_number={page_number}&page_size={page_size}'.format(page_number = page_number, page_size = page_size)
  • Bewerk het veld ‘Loop partial result’

PY
if FlowComponent.StatusCode == 206:
    page_number += 1
    finished = False
else:
    finished = True
    
finished 

LET OP:

Zolang de formule uit het veld ‘Loop partial result’ een waarde False teruggeeft zal de Url van de bron aangeroepen blijven worden.

Wees dus extra alert om te voorkomen dat er een oneindige loop ontstaat!

Voorbeeld 2 : Resultaat van de bron bevat informatie van het totaal aantal resultaten

Stel we hebben een externe bron die in de URL parameters ondersteunt voor pagina & aantallen per pagina.
Deze externe bron geeft in zijn response informatie over het totaal aantal resultaten dat aangeleverd kan worden. In zo’n situatie moet er dus beken gaan worden op basis van de huidige opgevraagde pagina en het het aantal resultaten per pagina of er nog extra aanroepen naar de bron gedaan moeten worden.

Voor dit voorbeeld gebruiken we :

Welke stappen dien je in deze situatie te ondernemen:

  • Ga naar het bewerk scherm van de betreffende bron

  • Bewerk het veld 'Url'

PY
page_size = 1000

if 'page_number' not in locals():
    page_number = 0
    
'https://www.mooqe.it/dummy-api/incidents?page_number={page_number}&page_size={page_size}'.format(page_number = page_number, page_size = page_size)
  • Bewerk het veld ‘Loop partial result’

PY
reeds_opgehaald_aantal_items = (start + 1) * page_size 

if int(FlowComponent.requestResult['total_items']) > reeds_opgehaald_aantal_items :
	finished = False
	page_number += 1
else:
	finished = True
	
finished

LET OP:

Zolang de formule uit het veld ‘Loop partial result’ een waarde False teruggeeft zal de Url van de bron aangeroepen blijven worden.

Wees dus extra alert om te voorkomen dat er een oneindige loop ontstaat!

Voorbeeld 3 : Resultaat van de bron bevat de volledige link voor vervolg request

Stel we hebben een externe bron die in de URL parameters ondersteunt voor aantallen per pagina.
Deze externe bron geeft in zijn response een URL terug die gebruikt moet worden voor het ophalen van de volgende batch aan informatie. Zolang deze URL in de response aangeleverd wordt zijn er nog additionele resultaten die opgehaald moeten worden.

Voor dit voorbeeld gebruiken we :

Welke stappen dien je in deze situatie te ondernemen:

  • Ga naar het bewerk scherm van de betreffende bron

  • Bewerk het veld 'Url'

PY
page_size = 100

if 'nextLink' not in locals():
	nextLink = "https://graph.microsoft.com/beta/groups?$select=id,description,displayName&$top={page_size}".format(page_size = page_size)
	
nextLink
  • Bewerk het veld ‘Loop partial result’

PY
nextLink=FlowComponent.requestResult['@odata.nextLink']

if nextLink != None and nextLink!='' :
	finished = False
else:
	finished = True

finished

LET OP:

Zolang de formule uit het veld ‘Loop partial result’ een waarde False teruggeeft zal de Url van de bron aangeroepen blijven worden.

Wees dus extra alert om te voorkomen dat er een oneindige loop ontstaat!

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.