Exact Online database

Het in Nederland en België populaire boekhoudpakket Exact Online verwerkt in haar databases de gegevens van meer dan 400.000 ondernemingen. In dit artikel leer je meer over de werking, structuur en hoe je de gegevens uit de Exact Online databases kunt ophalen met SQL van Invantive. Een aantal verwijzingen naar kennisartikelen op deze forums helpen je verder.

Mis je een concrete handreiking voor je probleem met toegang tot je Exact Online administraties: vermeld dit s.v.p. als antwoord onderaan en we voegen indien mogelijk een kennisartikel hiervoor toe.

Exact Online Database(s)

Exact Online slaat de gegevens van ondernemingen op in databases. Exact heeft als databaseplatform gekozen voor Microsoft SQL Server bij Exact Online. Alhoewel Exact Online klein begonnen is, is het wonderbaarlijk hoe ver men de software heeft weten laten meegroeien met de wensen van wat grotere ondernemingen.

Exact Online bestaat uit meerdere SQL Server omgevingen. Er is sowieso een aparte omgeving per land. De softwareversies en het datamodel zijn in alle landen gelijk. Bij een (mogelijk dagelijkse) release van een nieuwe versie van Exact Online wordt de software en het datamodel in alle landen tegelijk geupgrade.

De tabellen in SQL Server hebben een kolom die aangeeft bij welke administratie een rij hoort. Deze kolom zorgt voor de partitionering zoals dat bekend is van andere SQL databases. De administratiekolom is zichtbaar via het veld DivisionCode in de API’s. Ook bij het gebruik van Invantive SQL hebben de meeste tabellen deze kolom DivisionCode (REST API-gebaseerde tabellen) of DIVISION_CODE (XML API-gebaseerde tabellen).

Administraties die van een accountant zijn of aan een accountant gekoppeld staan binnen één omgeving. Het verhuizen van een administraties tussen omgevingen gebeurt 's nachts; op dat moment worden de gegevens verplaatst. Daarom kan het een dag duren totdat je administratie aan een accountant gekoppeld is. Dat is ook de reden dat maar één accountant toegang kan hebben tot de administratie.

Meer uitleg over de werking is te vinden in de strook met tekst aan de rechterkant van de Exact Online poster:

Rechtstreekse Toegang Exact Online Database

Er is een officiele mogelijkheid om rechtstreeks toegang te krijgen tot de Exact Online database. Dit gaat via een SQL Server database die je kunt download bij Exact met alleen de gegevens van de gekozen administratie; andere administraties staan hier niet in. Er staan wel database views in.

Om rechtstreeks toegang te krijgen de Exact Online database en zo data uit Exact Online te halen, voer je de volgende stappen uit:

  • Maak een backup van de administratie(s).
  • Download de backup (zie bijvoorbeeld Hoe kan een backup in Exact Online worden gedownload?).
  • Meld je aan op Microsoft SQL Server Management Studio op een lokale Microsoft SQL Server 2019 database.
  • Open Databases.
  • Kies “Restore Database”.
  • Kies als bron “From device” en selecteer de backup.
  • De Exact Online database is nu beschikbaar.

Het resultaat ziet er ongeveer zo uit:

Het terugschrijven van data in Exact Online is langs deze weg niet mogelijk.

Het automatiseren van de Exact Online backup en terugzetten hiervan is - alhoewel technisch in principe mogelijk - niet gewenst door Exact. Meer informatie hierover vind je bij:

Voor kleine omgevingen met lage verversingseisen en/of tabellen die niet ontsloten zijn via de Exact Online API’s is de beschreven werkwijze met een lokale SQL database misschien wel erg technisch, maar wel handig om in Power BI rapporten te bouwen. Hou er rekening mee dat de tabellen technisch van aard zijn en niet zoals de tabellen van Invantive SQL en de API’s functioneel.

Toegang via SQL of Invantive Cloud

Exact heeft het voor gebruikers ook mogelijk gemaakt om de database te benaderen via vooraf gedefinieerde afspraken in de vorm van “API’s”. Exact biedt ruim 1.000 API’s. De API’s zijn onderverdeeld in twee groepen:

  • de XML API’s: ouder, maar meestal snel en rijk aan mogelijkheden,
  • de REST API’s: moderner en in actief onderhoud.

De REST API’s worden door de meeste partners van Exact ondersteund; voor de XML API’s is Invantive SQL voor zover bekend de enige beschikbare mogelijkheid voor Microsoft Power BI.

Elke API is benaderbaar als een tabel. Samen zijn er ruim 1.000 tabellen op Exact Online beschikbaar.

Via Invantive SQL kan via Excel formules, Power Query, Power BI of een SQL database waar de data uit Exact in geladen wordt gewerkt worden met de administraties. Dit zijn real-time gegevens, bijgewerkt tot/met de laatste seconde.

In tegenstelling tot de boven beschreven backup, kun je via Invantive SQL ook meerdere tientallen of honderden administraties tegelijk uitlezen. De gegevens uit Exact verschijnt dan onder elkaar, met telkens een andere waarde voor het veld DivisionCode om de administratie van herkomst aan te geven.

Een aantal voorbeelden van opvragingen via SQL, Excel en Power BI is beschikbaar op deze site.

Het terugschrijven in Exact Online is ook mogelijk met Invantive SQL, maar vereist kennis van de functionaliteit van Exact Online. Je kunt bijvoorbeeld in Exact Online geen verkooporder zonder regels maken en dat geldt ook voor Invantive SQL. Ook synchroniseren tussen Exact Online en bijvoorbeeld ActiveCampaign is mogelijk.

Invantive SQL werkt met een select statement om gegevens uit de administraties op te halen, maar meestal hoeft de select query niet geschreven te worden. Via de Excel formules voor Exact Online kunnen de gegevens ook opgehaald worden. En vanuit Power BI wordt meestal gewerkt met een SQL database op de Invantive Cloud. Invantive Cloud maakt het mogelijk om met de standaard door Microsoft meegeleverde OData connector gegevens vlot en efficient te importeren in rapportagetools zoals Power BI. Ook importeren in Microsoft Access is mogelijk en mocht het niet lukken via OData, dan kan bijvoorbeeld ook met JSON, CSV of XML gewerkt worden.

Het kopieren van gegevens kan zoals beschreven op Data kopiëren tussen Exact Online en Microsoft SQL Server, maar kan ook via Azure Data Factory of Invantive Data Replicator.

Het is ook mogelijk een Exact Online database te definieren op Invantive Cloud door deze video te volgen: