SystemDivisionClassifications
is een speciale Exact Online API.
Er zijn drie soorten API’s:
- Systeembrede data
- Gepartitioneerde data
- Abonnementsdata
Systeembrede Data
Enkele Exact Online tabellen zijn geldig voor de gehele database. Denk bijvoorbeeld aan Me
met de gebruikersnaam en SystemDivisions
met de administraties en hun toestand.
Gepartitioneerde Data
De meeste Exact Online API’s zijn gepartitioneerd in Invantive SQL: elke administratie is een partitie en de kolommen zijn gelijk in elke partitie. De data wordt gelijktijdig door Invantive opgehaald uit meerdere administraties en netjes onder elkaar gelegd en “streaming” teruggegeven.
Division |
Code |
Name |
123132 |
10001 |
Janssen BV |
123132 |
10002 |
Pietersen BV |
124738 |
10001 |
ACME BV |
Dit noemen we ook “partitioned data” en hetzelfde concept komt terug in bijvoorbeeld Twinfield. Het komt meer tot op beperkte hoogte terug in salarissystemen zoals Loket en NMBRS omdat die eigenlijk geen partities hebben maar de data intern maar beperkt scheiden.
Abonnementsdata
Elk Exact Online heeft een nummer dat in divisie 1 het nummer van de relatie is. Vandaar de rare spaties rondom de CustomerCode
; het is gewoon een AccountCode
maar dan uit divisie 1 van het desbetreffende Exact Online land. Op abonnementsniveau worden ook een aantal gegevens vastgehouden zoals de client-IDs van het abonnement, MailMessagesReceived
en de Users
(gebruikers).
Tussen partities en systeembreed kent Invantive SQL geen tussenlaag, dus er is gekozen om in elke administratie (partitie) deze data terug te laten komen. In het geval van Users
betekent dit je bij een ondernemer met 3 administraties drie keer de gebruikers ziet terugkomen, namelijk bij elke divisie.
En ben je een accountant met gekoppelde administraties van zelfboekende ondernemers? Dan heb je toegang tot meerdere Exact Online abonnementen. In elk abonnement zitten andere gebruikers die de desbetreffende applicatiebeheerder zelf bijhoudt. De inhoud van Users
is dan:
Division |
CustomerCode |
UserFullName |
123123 |
8041231 |
Piet Janssen |
123123 |
8041231 |
Karel Janssen |
123124 |
8041231 |
Piet Janssen |
123124 |
8041231 |
Karel Janssen |
343423 |
9635421 |
John Doe |
343423 |
9635421 |
Blondie |
Je moet zelf filteren om de juiste gegevens. In veel gevallen door jezelf te beperken tot een partitie per abonnement:
use select min(code) from systemdivisions where status = 1 /* Active. */ group by customercode
Maar ook SystemDivisionClassifications
heeft abonnementseigenschappen. Het is dus geen systeembrede data zoals SystemDivisions
. Maar wat is er dan abonnementsspecifiek aan SystemDivisionClassifications
?
Elke abonnementhouder kan op een divisie (administratie) classificaties toekennen, maar die classificatiestructuur voor administraties is abonnementsspecifiek. Nog sterker, anders dan bij Users
kan de accountant een andere classificatiestructuur gebruiken dan de zelfboekende ondernemer op dezelfde administraties.
Dit maakt het gebruik van SystemDivisionClassifications
zo’n beetje de meest moeilijke tabel uit het Exact Online datamodel. De realisatie van deze API was dan ook uitdagend, maar uiteindelijk is het een goed werkende API geworden.
Meer Exact Online datamodel uitleg
Meer details over het Exact Online model zijn te vinden rechtsonder op de Exact Online poster.