Your Tech Club

Exact Online koppelen aan je eigen software

Een koppeling met Exact Online scheelt overtypwerk, maar loopt vaak stuk op dubbele data. Zo bepaal je de bron, de richting en het herstel.

Joey van VlietMede-oprichter van Your Tech Club6 min lezen

Datamodel met de velden die tussen twee systemen worden gesynchroniseerd
In dit artikel

Je webshop verkoopt, je ERP plant, je urenregistratie telt en je boekhouding staat in Exact Online. Zonder koppeling typt iemand die gegevens over, met vertraging en met fouten. Een koppeling lost dat op, maar alleen als je vooraf drie dingen beslist: welk systeem de bron is, welke kant de gegevens op gaan en wat er gebeurt als het misgaat.

Wat wil je precies koppelen aan Exact Online?

Begin met de stroom, niet met de techniek. In de praktijk zijn dit de meest voorkomende richtingen.

  • Verkoopfacturen: bestellingen uit een webshop of platform worden facturen of boekingen in Exact.
  • Inkoopfacturen: binnengekomen facturen worden na herkenning en akkoord weggeschreven.
  • Relaties: klanten en leveranciers worden op één plek beheerd en naar de andere systemen gestuurd.
  • Artikelen en voorraad: artikelgegevens en standen worden gelijkgehouden tussen ERP, webshop en Exact.
  • Uren en projecten: geschreven uren worden facturen of kostenboekingen.
  • Betalingen: bankafschriften en betaalstatussen worden teruggekoppeld naar het verkoopsysteem.

Kies er één om mee te beginnen. Een koppeling die zes stromen tegelijk probeert, gaat in de eerste maand zes keer stuk en dan weet je niet waardoor.

Hoe werkt de koppeling technisch?

Exact Online biedt een REST API waarop je met OAuth namens een gebruiker inlogt. Je werkt per administratie, dus je moet expliciet bepalen in welke administratie je schrijft. Er gelden limieten op het aantal aanroepen; kijk voor de actuele waarden in de documentatie van Exact zelf, want die veranderen.

Die limieten bepalen je ontwerp. Haal niet elke minuut alles op, maar vraag alleen wijzigingen sinds de vorige keer. Verwerk in batches waar dat kan. En bouw een wachtrij, zodat een piek in bestellingen geen verloren berichten oplevert.

Wat er verder in een koppeling met Exact meekomt, staat bij Exact Online. Andere pakketten staan bij de koppelingen.

Stap 1: bepaal welk systeem de bron is

Voor elk gegeven wijs je één systeem aan dat de waarheid heeft. Klantgegevens bijvoorbeeld in je CRM, artikelen in je ERP, financiële boekingen in Exact. De andere systemen volgen.

Doe je dat niet, dan kun je een klantadres op twee plekken wijzigen en weet niemand welke versie wint. Dat is de meest voorkomende oorzaak van een koppeling die na een half jaar niet meer wordt vertrouwd.

Stap 2: kies per veld wie wint

Loop de velden langs die je synchroniseert en noteer per veld de richting: alleen heen, alleen terug, of beide. Bij beide richtingen bepaal je wie wint bij een conflict, meestal op basis van het tijdstip van wijziging.

Let op de velden die stilletjes misgaan: btw-codes, grootboekrekeningen, valuta, betalingscondities en kostenplaatsen. Die verschillen per pakket in naamgeving en in toegestane waarden. Leg de vertaling vast in een tabel die een beheerder kan aanpassen, niet in code.

Spreek ook af wat er met verwijderde records gebeurt. Een klant die in het ene systeem inactief wordt, hoort in het andere niet zomaar te verdwijnen.

Stap 3: bouw opnieuw proberen in vanaf dag één

Koppelingen falen. Een systeem is in onderhoud, een limiet wordt geraakt, een veld is te lang, een verplicht gegeven ontbreekt. Dat is normaal. Wat niet normaal is, is dat een bericht daardoor verdwijnt.

Zet elk bericht in een wachtrij met een eigen status. Mislukt het, dan probeert het systeem het opnieuw met oplopende tussenpozen. Lukt het daarna nog niet, dan komt het in een aparte lijst te staan die iemand bekijkt. Zorg dat opnieuw sturen nooit tot een dubbele boeking leidt: geef elk bericht een unieke sleutel en controleer die voordat je schrijft.

Stap 4: maak zichtbaar wat er misgaat

Een koppeling zonder scherm is een koppeling die niemand vertrouwt. Maak een overzicht waarop een beheerder ziet hoeveel berichten er vandaag zijn verwerkt, hoeveel er wachten en welke zijn vastgelopen, met de reden erbij in gewone taal.

Stel meldingen in op twee dingen: een bericht dat blijft hangen, en een stroom die stilvalt. Dat tweede wordt vaak vergeten, terwijl een koppeling die niets doet net zo schadelijk is als een koppeling die fout doet.

Waar loopt een Exact-koppeling meestal op stuk?

Vier oorzaken zie je steeds terug. De eerste: er is geen eigenaar aan de kant van de klant die beslist over de vertaaltabellen. De tweede: de administratiestructuur verandert, bijvoorbeeld een nieuw boekjaar of een extra administratie, zonder dat iemand de koppeling erop nakijkt.

De derde: bestaande data wordt niet opgeschoond voor de eerste synchronisatie, waardoor dubbele relaties zich verdubbelen. De vierde: het aantal aanroepen loopt tegen de limiet omdat er te vaak alles wordt opgehaald in plaats van alleen de wijzigingen.

Wanneer is een koppeling niet de oplossing?

Als het volume klein is. Tien handelingen per week overtypen kost minder dan het bouwen en onderhouden van een koppeling. Als beide systemen vervangen gaan worden binnen een jaar, wacht dan. En als het echte probleem het proces is en niet de overdracht van gegevens, los dan eerst het proces op.

Er is ook een tussenvorm. Bestaat er een standaardkoppeling tussen jouw pakketten die doet wat je nodig hebt, gebruik die dan. Zelf bouwen is logisch als je meerdere systemen moet combineren, als je eigen logica nodig hebt in de vertaling, of als de standaardkoppeling net de velden mist waar het je om gaat.

Wat kost een koppeling met Exact Online?

Dat hangt af van het aantal stromen, het aantal velden, de eisen aan controle en of er data moet worden opgeschoond. Eén stroom in één richting met een schone bron is een overzichtelijk project. Zes stromen in twee richtingen met historische rommel is dat niet.

Richtbedragen per type staan bij wat een koppeling kost. Zit er naast de koppeling ook eigen software omheen, kijk dan bij software op maat. En wil je eerst weten welke koppeling het meeste oplevert, dan is dat precies wat de AI Opportunity Audit uitzoekt.

Veelgestelde vragen

Heeft Exact Online een API?

Ja. Exact Online biedt een REST API waarop je met OAuth inlogt en per administratie werkt. Er gelden limieten op het aantal aanroepen; raadpleeg de documentatie van Exact voor de actuele waarden, want die worden aangepast.

Hoe lang duurt het bouwen van een Exact-koppeling?

Eén stroom in één richting met schone brondata is een kwestie van weken. De doorlooptijd wordt bijna altijd bepaald door het opschonen van bestaande gegevens en het vaststellen van de vertaaltabellen, niet door het programmeerwerk.

Kan een koppeling twee kanten op werken?

Dat kan, maar bepaal dan per veld wie wint bij een conflict. Zonder die afspraak krijg je gegevens die heen en weer blijven overschrijven. Voor de meeste velden is één richting genoeg en dat is veel stabieler.

Wat gebeurt er als de koppeling uitvalt?

Bij een goed ontwerp komt elk bericht in een wachtrij en wordt het opnieuw geprobeerd. Lukt het daarna niet, dan komt het op een lijst die iemand bekijkt. Elk bericht krijgt een unieke sleutel, zodat opnieuw sturen nooit tot een dubbele boeking leidt.

Moeten we onze data eerst opschonen?

Ja, en dit wordt het vaakst overgeslagen. Dubbele relaties, afwijkende artikelnummers en lege verplichte velden verdubbelen zich bij de eerste synchronisatie. Ruim eerst op, koppel daarna.

Kunnen jullie ook andere pakketten koppelen?

Ja. Er zit geen beperking op welke systemen we koppelen. Voor de meest gevraagde pakketten staat per systeem uitgewerkt wat er mogelijk is, bij de koppelingen.

Joey van VlietYassine Seghrouchni
Joey en Yassine, oprichters

Wat betekent dit voor jouw organisatie?

Een artikel geeft richting, maar jouw situatie is specifiek. In een kort gesprek kijken we mee waar de kans zit en wat een logische eerste stap is.

Verder lezen

Alle artikelen
Een overzicht van de velden die tussen AFAS en een eigen applicatie worden uitgewisseld

Koppelingen6 min lezen

AFAS koppelen aan je eigen software

AFAS geeft gegevens vrij via connectoren die je eerst laat inrichten. Zo bepaal je de bron, schrijf je veilig terug en houd je grip op fouten.

Lees het artikel