Oefening 5 · Integratie

Verwerk Exact-paginering van 60 records

Haal alle grootboekrekeningen op voor de vrije targetDivision en behandel paginering zonder klant-specifieke aannames.

Waarom dit nodig is

Exact-resources hebben vaak een pagina van 60. Alleen de eerste response verwerken betekent dat rekeningen 61 en verder verdwijnen.

Plaats in de eindoplossing

Wat draagt deze oefening bij?

Dit is een klassiek integratieprobleem: een succesvolle HTTP 200 betekent niet dat je de volledige dataset hebt.

Wat gebeurt er technisch?

  • De eerste GLAccounts-response bevat maximaal 60 resultaten.
  • d.__next bevat de URL voor de volgende pagina.
  • De PowerLab-chart bevat 82 rekeningen, zodat twee pagina's noodzakelijk zijn.
Doen én begrijpen

Bouwstappen met uitleg

Open workflow-editor
1

Bouw de URL met targetDivision: /api/v1/{targetDivision}/financial/GLAccounts?page=1.

Waarom?
Dezelfde node moet voor iedere gevalideerde klant werken.
Wat moet dit opleveren?
De request-URL verandert mee met de runcontext.
2

Bewaar d.results en controleer of d.__next bestaat.

Waarom?
Je mag niet aannemen dat één response volledig is.
Wat moet dit opleveren?
Pagina 1 wordt onderdeel van een verzameling en __next bepaalt of je doorgaat.
3

Volg __next totdat de link ontbreekt.

Waarom?
Zo werkt de flow ook als de hoeveelheid data verandert.
Wat moet dit opleveren?
Een complete verzameling zonder hardcoded aantal pagina’s.
4

Controleer dubbele ID of Code en log pageCount/recordCount.

Waarom?
Compleetheid betekent niet alleen “geen fout”; je wilt kunnen aantonen wat je hebt opgehaald.
Wat moet dit opleveren?
Meetbare importmetadata per run.
5

Herhaal met een andere targetDivision zonder de pagination-logica te veranderen.

Waarom?
De logica moet dataset- en klantonafhankelijk zijn.
Wat moet dit opleveren?
Dezelfde workflow werkt voor minstens twee klanten.

Wat gaat er mis als je dit overslaat?

Ontbrekende rekeningen kunnen saldi, mapping en jaarrekeningrubrieken onvolledig maken zonder zichtbare foutmelding.

GET

PowerLab-endpoint

Test met credential in n8n

Dit endpoint bootst het relevante deel van Exact Online, de AI-provider of de documentservice na. De /api/v1-routes gebruiken de Division-parameter en Exact-achtige paginering, maar PowerLab is geen volledige Exact-emulator.

https://powerlab.rmeijer.eu/api/v1/101001/financial/GLAccounts?page=1
Authenticatie

Kies in de HTTP Request-node de opgeslagen Header Auth-credential PowerLab API. De sleutel hoeft je broertje niet te zien of in de workflow te plakken.

Extra endpoints en scenario’s

  • https://powerlab.rmeijer.eu/api/v1/101001/financial/GLAccounts?page=2
Speel ermee

Varianten om zelf te proberen

Open vrije speeltuin

De bouwstappen hierboven zijn één mogelijke route, geen verplichte oplossing. Als jouw workflow hetzelfde resultaat veilig bereikt, is dat prima.

  • Gebruik 101001 en controleer dat pagina 2 wordt opgehaald.
  • Herhaal met 101004.
  • Breek expres na pagina 1 en vergelijk de recordCount om te zien wat je mist.
Vrije uitdaging

Maak de loop volledig afhankelijk van __next: nergens mag “2 pagina’s” of “82 records” een voorwaarde zijn.

Kun je uitleggen waarom?

Beantwoord deze vragen in je eigen woorden voordat je de oefening afrondt. Het doel is niet alleen de juiste nodes plaatsen, maar de ontwerpkeuzes kunnen verdedigen.

  1. Waarom is HTTP 200 geen bewijs dat alle gegevens binnen zijn?
  2. Waarom volg je __next in plaats van zelf page=2 te gokken?
  3. Hoe voorkom je dubbele records na een retry?

Klaar wanneer

De workflow volgt __next generiek, rapporteert pageCount/recordCount en werkt met meerdere targetDivisions.