Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Vanuit het bouwblok waarmee je data op kan halen zijn twee onderdelen beschikbaar waar informatie uitgehaald kan worden. Dit kan bijvoorbeeld een bepaalde response header zijn, maar ook een property uit de response body.
Deze twee onderdelen zijn:

In de invoervelden van het type waarde of berekening kunnen deze onderdelen vervolgens gebruikt worden (in het berekeningen gedeelte). Voorbeelden hiervan zijn response.Headers["Content-Type"] (hierbij wordt een specifieke header uit de response uitgelezen) en responseResult.total_items(dit is de property ‘total_items’ in de response body).

Info

Om op basis van een HTTP response statuscode (https://developer.mozilla.org/en-US/docs/Web/HTTP/Status ) te bepalen of er nog een iteratie plaats moet vinden kan de volgende check gebruikt worden:

Code Block
languagepy
if int(response.StatusCode) == 206:
  # berekening

Vervang hierin de 206 voor de statuscode waar je op wil controleren

Of:

Code Block
languagepy
if response.StatusCode== System.Net.HttpStatusCode.PartialContent:
  # berekening

Of:

Code Block
languagepy
if str(response.StatusCode) == 'PartialContent':
  # berekening

.

Voorbeeld Mailchimp data ophalen in delen.

...

Code Block
languagepy
def get_query_parameter(url, parameter_name):
    query_start = url.find('?')
    if query_start == -1:
        return None
    query_string = url[query_start + 1:]
    parameters = query_string.split('&')
    for param in parameters:
        key_value = param.split('=')
        if len(key_value) == 2 and key_value[0] == parameter_name:
            return key_value[1]
    return None
doPage = False
nextLink = str(responseResult['@odata.nextLink'])
skiptoken = ''
if nextLink != None and nextLink!='' :
    if 'https://graph.microsoft.com/v1.0/users' in nextLink:
        skiptoken = get_query_parameter(nextLink, '$skiptoken')
        if skiptoken != None and skiptoken!='' :
            doPage = True
doPage

Voorbeeld Exact Online data ophalen in delen

De API voor Exact Online is gebaseerd op oData 2.0. ExactOnline maakt gebruik van het veld __next welke door de API wordt teruggegeven.

In de query parameters voegen we toe:

Code Block
languagepy
if 'next_url' not in locals():
  next_url = "/" + Exact_Online_Division + "/crm/Accounts?$inlinecount=allpages&$select=ID,Code,Name&$filter=Status+eq+'C'+and+IsSales+eq+true"
else:
  # Vervang de url uit de applicatie hier anders staat dit dubbel
  next_url = str(next_url)
  next_url = next_url.replace('https://start.exactonline.nl/api/v1', '')

next_url

En in het script voor het ophalen in delen:

Code Block
languagepy
next_url = responseResult.d.__next
count_products = responseResult.d.__count

if 'count' not in locals():
  if count_products != None:
    count = int(count_products)
  else:
    count = 0

resultIteration = False
if next_url != None:
  pagesize = 60 (Exact Online)    count = count - 60

if count < 0:
  resultIteration = False
else:
  resultIteration = True

resultIteration