Data kopiëren tussen Exact Online en Microsoft SQL Server

Ook bij cloud-gebaseerde bedrijfsoplossingen is het soms nodig om bedrijfsgegevens massaal uit te wisselen tussen de draaiende oplossingen. Denk bijvoorbeeld aan een subadministratie waarin de juiste factuurgegevens en leveringen bepaald worden en Exact Online.

Massaal gegevens uitwisselen betekent of veel handwerk of een grote investering in automatisering.
Toch is het met standaard Invantive producten al mogelijk om voor EUR 49 per maand voor maximaal 100 administraties de gegevens uit te wisselen tussen bedrijfsoplossingen en Microsoft SQL Server. Je hebt hiervoor geen kennis nodig van de API protocollen van Exact Online. Invantive SQL ondersteunt standaard al ruim 1.000 API’s, zowel op de XML API als de REST API en heeft geïntegreerde foutafhandeling voor de meeste problemen als de gegevensdownload niet lukt.

In deze voorbeelden laat ik je zien hoe je massaal Exact Online data ophaalt en deze data bewaart in een SQL Server database, en vice versa. Deze voorbeelden zijn gebaseerd op de Invantive scripting taal met Invantive SQL voor Exact Online en Microsoft SQL Server. Het maakt niet uit of het een SQL Server database on-premise of Azure SQL Server database is. Om de voorbeelden zelf uit te voeren kun je bijvoorbeeld Invantive Control for Excel gebruiken of Invantive Data Hub voor een serveromgeving.

Een doorzoekbaar overzicht van de beschikbare Exact Online-tabellen is te vinden op:

Update 2020, nu nog makkelijker: Invantive Cloud voor Power BI of Azure Data Factory

Je kunt de kopie op SQL Server gebruiken voor Tableau, Power BI of voor eigen rapportagesoftware. Specifiek voor Power BI en Power Query biedt Invantive sinds 2019 Invantive Cloud. Daarmee kun je een Power BI koppeling voor tientallen administraties in een paar minuten realiseren en een paar clicks. Je hebt dan geen SQL Server database nodig, wat zowel de kosten verlaagt als risico’s op gedoe over Microsoft licenties.

Het is ook mogelijk om rechtstreeks gegevens in een Azure SQL Server database te laden vanuit Exact Online en tientallen andere platformen via Azure Data Factory: lees hier meer over in Hoe verbind ik Exact Online met Azure Data Factory?.

Mocht het gebruik van Azure Data Factory ongewenst zijn, dan kan Exact Online ook geladen worden via een applicatiemodule in SQL Server zoals beschreven in Elementaire datareplicatie tussen Exact Online en Azure SQL Server.

Data vanuit Exact Online naar SQL Server

In dit voorbeeld uit 2017 wordt de lijst van activa uit Exact Online opgehaald. Dat is meestal een relatief korte lijst. Voor echt heel grote lijsten (meer dan 1 miljoen rijen of kleiner als je ze vaak ophaalt) kun je ook gebruik maken van een “glijdend” venster om het volume beperkt te houden, bijvoorbeeld door alleen recent gewijzigde gegevens over te halen. Anyway, dit zijn de instructies:

local remark Haal activa op uit Exact Online

select code_attr
,      description 
from   assets 

local remark Berg ze op in een klembord met de naam "assets" 

local memorize results clipboard assets 

local remark Maak verbinding met Microsoft SQL Server. 

local log on 

local remark Kopieer de activa uit Exact Online in een tabel met identieke kolomnamen en data types.

local insert results clipboard assets in table eolassets

Van SQL Server naar Exact Online

Maar ook andersom is gemakkelijk. In dit voorbeeld wordt een (onnozele) lijst van activiteiten omgezet in activiteiten binnen Exact Online:

select 'ik moet nog huiswerk maken' description 

local memorize results clipboard tasks 

local log on 

local insert results clipboard tasks in table tasks

Commandoregel gestuurd kopiëren van/naar Exact Online

De serveroplossing Invantive Data Hub biedt ook de mogelijkheid om deze gegevensuitwisseling te automatiseren. Dat gaat na een ‘local deploy static’ bijvoorbeeld met:

C:\Program Files\Invantive Software B.V\Invantive Data Hub 2016R1 stable channel (L12345678)\invantive.producer.queryengine.exe /user:USER /connection:"Exact Online (XML interface)\Exact Online XML (nl)" /file:c:\scripts\eol2mssql.sql /logfile:c:\logs\eol2mssql.log /interactive:false

Je kunt dergelijke statements ook verwerken in de Windows Scheduler. Maar uiteraard is het ook mogelijk om met andere platformen Exact Online gegevens uit te wisselen dan met Microsoft SQL Server alleen. Denk aan MySQL, Oracle, DB2 of andere cloudplatformen zoals Facebook, maar dat is eigenlijk meer van hetzelfde.

Enterprisegrade replicatie

Om honderden of duizenden Exact Online administratie te repliceren is Invantive Data Replicator de aanbevolen oplossing. Zie ook: