Oefening 2 · API-basis

Begrijp CurrentDivision zonder je klantkeuze vast te zetten

Lees CurrentDivision uit Exact-achtige gebruikerscontext en behandel die alleen als connection/default-context, niet als verplichte doeladministratie.

Waarom dit nodig is

CurrentDivision kan bij dezelfde ingelogde gebruiker steeds 101001 blijven terwijl de gebruiker toegang heeft tot veel andere divisions. Dat is normaal; het is geen regel dat je rapport alleen voor CurrentDivision mag draaien.

Plaats in de eindoplossing

Wat draagt deze oefening bij?

Deze call vertelt iets over de Exact-sessie. De daadwerkelijke klantkeuze blijft targetDivision uit oefening 1. De twee waarden mogen verschillen.

Wat gebeurt er technisch?

  • GET /api/v1/current/Me levert de gebruikerscontext van de verbinding.
  • CurrentDivision is in PowerLab bewust stabiel op 101001 om te laten zien dat dit niet hetzelfde is als de geselecteerde klant.
  • Sla de waarde op als connectionDivision of currentDivision; overschrijf targetDivision er nooit mee.
  • Je gebruikt connectionDivision straks alleen als geldige context om de lijst met toegankelijke divisions op te vragen.
Doen én begrijpen

Bouwstappen met uitleg

Open workflow-editor
1

Voeg een HTTP Request-node toe voor GET /api/v1/current/Me?$select=CurrentDivision.

Waarom?
Dit bootst de eerste context-call naar Exact na.
Wat moet dit opleveren?
Een response met d.results[0].CurrentDivision.
2

Gebruik de opgeslagen PowerLab API-credential.

Waarom?
Authenticatie hoort in een credential, niet in workflowvelden of URLs.
Wat moet dit opleveren?
HTTP 200 zonder dat de sleutel zichtbaar in de workflow staat.
3

Bewaar CurrentDivision als een apart veld connectionDivision.

Waarom?
Een aparte naam voorkomt dat je hem verwart met de klant die de gebruiker zelf heeft gekozen.
Wat moet dit opleveren?
Je item bevat zowel targetDivision als connectionDivision.
4

Verwijder iedere IF die eist dat targetDivision == connectionDivision.

Waarom?
Die check blokkeert legitiem wisselen tussen toegankelijke administraties en leert de verkeerde architectuur.
Wat moet dit opleveren?
Een run met targetDivision 101004 en connectionDivision 101001 mag gewoon verder naar oefening 3.
5

Test met drie verschillende targetDivision-waarden terwijl connectionDivision 101001 blijft.

Waarom?
Zo zie je praktisch dat sessiecontext en doelcontext twee verschillende concepten zijn.
Wat moet dit opleveren?
Alle drie de runs bereiken de volgende stap.

Wat gaat er mis als je dit overslaat?

Als je CurrentDivision als verplichte klant behandelt, bouw je onbedoeld een slot waardoor iedere andere toegankelijke administratie wordt geweigerd.

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/current/Me?$select=CurrentDivision
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/secure/ping
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.

  • targetDivision 101003 met connectionDivision 101001.
  • targetDivision 101005 met connectionDivision 101001.
  • targetDivision 101006 met connectionDivision 101001.
Vrije uitdaging

Laat in de execution output duidelijk beide waarden zien. Leg in één Sticky Note in n8n uit waarom ze mogen verschillen.

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 mag targetDivision verschillen van connectionDivision?
  2. Waarvoor heb je CurrentDivision dan wél nodig?
  3. Welke variabelenaam voorkomt de meeste verwarring?

Klaar wanneer

De workflow heeft naast elkaar targetDivision en connectionDivision en blokkeert niet wanneer die verschillen.