Serverracks met netwerkverbindingen in een datacenter
GidsUitgebreide gids16 oktober · 17:0018 min leestijd

Legacy ERP koppelen zonder API: route kiezen en herstellen

Een legacy ERP zonder publieke API hoeft geen handwerk te blijven. Kies per datastroom de juiste ingang, leg eigenaar en support vast, test met bewijs en zorg dat je veilig stopt, herstelt of vervangt.

Je hebt een legacy ERP waar je bedrijf nog dagelijks op draait. De webshop staat erbuiten, de voorraad moet terug naar een verkoopkanaal en iemand tikt orders over omdat een leverancier ooit zei dat er geen API is.

De eerste succesvolle run is niet het moeilijke deel. De koppeling moet ook kunnen uitleggen wat er gebeurde na een time-out, een update of een half bestand. Deze gids helpt je de route kiezen. Je bepaalt daarna wie hem mag vrijgeven, welk bewijs voldoende is en wanneer je stopt of vervangt.

Een herstelbare koppeling is een integratie waarbij elke mutatie een eigenaar, zakelijke sleutel, bewijsrecord en terugvalpad heeft. Bij een fout stop je nieuwe writes, bewaar je de ontvangen gebeurtenissen, zoek je eerst op die sleutel of de mutatie al gelukt is, en hervat je pas na controle. Een nieuwe poging maakt geen dubbel record.

Wat je eerst moet begrijpen: een gesloten ERP is geen ja of nee

Een ERP zonder publieke API heeft vaak wel een ondersteunde import, een lokale webservice, een leesbare rapportagelaag of een bestandsuitgang. Die ingangen hebben verschillende eigenaars, snelheden en supportgrenzen. Daarom bestaat er geen beste route voor het hele pakket. Je kiest per datastroom en per richting.

Bij KING ERP staan lokale webservices, ODBC en bestandsroutes naast elkaar. De technische route-inventarisatie staat bij de lokale webservice, ODBC-leeslaag en SFTP-route voor KING ERP. Hier gaat het om de beslissing die daarna komt: wanneer is een route verantwoord genoeg om productiegegevens te schrijven, wie draagt het risico en hoe kom je terug als het misgaat?

Wat je nodig hebt voordat je een route kiest

Een routebesluit begint met eigenaarschap en bewijs, niet met een tool. Leg de volgende vijf dingen vast voordat je een leverancier of ontwikkelaar opdracht geeft.

1. Eén beslisser met mandaat

Wijs één persoon aan die de stroom mag vrijgeven en stilleggen. Dat hoeft niet de ontwikkelaar te zijn. Finance beslist over bedragen en boekingen, operations over orders en levering, IT over toegang en beveiliging. De beslisser houdt het geheel bij elkaar en heeft vooraf toestemming om een run te stoppen.

Zet bij die naam ook drie termijnen: binnen hoeveel uur iemand een fout bekijkt, hoe lang handmatig werk als noodroute mag duren en op welke datum het routebesluit opnieuw wordt beoordeeld. Een koppeling zonder eigenaar is geen automatisering. Het is werk dat ergens tussen twee systemen blijft liggen.

2. Een stroomkaart per richting

Schrijf niet op dat je het ERP en de webshop koppelt. Schrijf twee regels op: verkooporders van webshop naar ERP, elke tien minuten; beschikbare voorraad van ERP naar webshop, elk uur. Noteer per regel:

  • de bron en de doelapplicatie;
  • lezen, schrijven of beide;
  • de gewenste versheid;
  • de zakelijke sleutel, zoals extern ordernummer of artikelcode;
  • het verwachte volume en de foutkosten;
  • de eigenaar van elk veld;
  • de datum waarop de stroom nodig is.

Dit voorkomt dat één routekeuze stilletjes vijf verschillende processen krijgt. Orders schrijven kan een webservice vereisen, terwijl voorraad lezen prima via een export loopt.

3. Exacte versie, installatievorm en licenties

Vraag het versienummer op uit het ERP zelf. Noteer of het client-server, standalone, lokaal of gehost draait. Kijk ook naar modules die al in je licentie zitten: import, taakplanner, DataDigger, webservice of externe toegang. Een route die op papier bestaat, kan door de installatievorm wegvallen.

De actuele KING-pagina biedt op 16 oktober 2026 een installer voor King 5.70a en noemt als voorwaarden King 5.54 client/server of hoger, .NET Framework 4.5.2 en IIS 7.0 of hoger. Dat is dus een concrete kandidaat voor een lokale schrijfrichting, geen algemene belofte dat elke KING-installatie hetzelfde werkt. De actuele KING-documentatie noemt die versies en systeemeisen.

4. Een bewijsplek die langer leeft dan de workflowtool

Bewaar per run minimaal:

  • run_id en tijdstip;
  • bron-ID en zakelijke sleutel;
  • doel-ID zodra dat bestaat;
  • route en versie van de ingang;
  • aantal aangeboden, verwerkte en afgewezen records;
  • status geslaagd, mislukt of onbekend;
  • foutcode, foutmelding en eigenaar;
  • verwijzing naar input, output en handmatige beslissing.

Een uitvoerlog van Make, n8n of een RPA-product is daarvoor onvoldoende. Die log vertelt vaak dat een stap draaide, niet of het ERP het bedrijfsresultaat heeft geaccepteerd. Bewaar gevoelige payloads beperkt en versleuteld, maar houd de zakelijke sleutel en uitkomst lang genoeg bij om een verschil te kunnen verklaren.

5. Testdata en een terugval die echt kan worden uitgevoerd

Maak een testadministratie of afgeschermde dataset. Neem normale records mee, maar ook een onbekende klant, een vervallen artikel, korting, een decimaalbedrag, een dubbele aanbieding en een time-out na een write. Bepaal vooraf wat er gebeurt als de oude route niet meer beschikbaar is.

Een terugval is geen knop met de naam rollback. Bij een write die al in het ERP is aangekomen, moet je eerst de status opzoeken. Soms bestaat er geen technische undo. Dan is de veilige terugval: nieuwe writes stoppen, de gebeurtenis bewaren, de bestaande mutatie controleren en een menselijke correctie vrijgeven.

Voordat je een route kiest: dit moet geregeld zijn
0/7

Concrete stappen: van routevraag naar herstelbare koppeling

Werk per datastroom. De volgorde hieronder geeft je een besluitdossier dat een andere beheerder later kan uitvoeren.

Stap 1: Kies één bedrijfsuitkomst

Formuleer de stroom als een gebeurtenis met een controleerbaar resultaat. Bijvoorbeeld: een betaalde webshoporder staat binnen vijftien minuten als verkooporder in KING ERP met hetzelfde externe ordernummer, totaalbedrag en artikelregels.

Schrijf ook wat niet binnen de opdracht valt. Voorraad publiceren is een andere stroom dan een order schrijven. Een factuur boeken is niet hetzelfde als een betaalstatus doorgeven. Hoe kleiner de eerste stroom, hoe sneller je de herstelroute kunt bewijzen.

Stap 2: Vraag de leverancier naar de voordeur

Stuur vóór het bouwen vier vragen met de naam van de ingang erbij:

Welke import, webservice, rapportagefunctie of datamodule ondersteunt u voor deze stroom? Mag ik ermee lezen, schrijven of beide, en met welke versie en installatievorm? Welke wijzigingen meldt u bij een update, binnen welke termijn, en wat valt onder support? Welke export van mijn eigen gegevens krijg ik als de route of het pakket stopt?

Vraag om een reactietermijn en een contactnaam. Een antwoord als dat kan technisch wel is geen akkoord. Je wilt weten wie een storing onderzoekt, of een wijziging wordt aangekondigd en wanneer een leverancier je naar maatwerk verwijst.

Bij KING Webservices zijn webservices per service uitgeschakeld totdat in King 5 een toegangscode is vastgelegd. Requests gaan als JSON via POST naar een administratie en de code gaat mee als ACCESS-TOKEN. De handleiding beschrijft een status, foutcode en foutmelding bij een mislukte uitvoering en noemt het Windows Logboek als plek voor technische details. De implementatiehandleiding v2.0 uit 2021 beschrijft die configuratie en logging, geraadpleegd op 16 oktober 2026.

Stap 3: Scheid lezen van schrijven

Gebruik voor schrijven de ingang die de leverancier zelf ondersteunt: een importfunctie of webservice. Gebruik een database- of rapportagelaag hooguit voor lezen. De installatiehandleiding van King Task Centre beschrijft KingDataDigger als ODBC-verbinding voor het benaderen van de administratie en waarschuwt tegelijk dat je eerst een back-up van de Task Centre-database maakt voor je een bestaande installatie converteert. Die installatiehandleiding noemt ook de ODBC-configuratie, een document uit 2021 dat ik op 16 oktober 2026 heb gecontroleerd.

Rechtstreeks schrijven in tabellen lijkt snel, maar je omzeilt validatie, nummerreeksen en regels die je niet in het schema ziet. De patroonbeschrijving van Enterprise Integration Patterns noemt het ontwerpen van één gedeeld schema voor meerdere applicaties al een lastige oefening. De risico’s van een gedeelde database zitten daar in schema en belangen tegelijk, geraadpleegd op 16 oktober 2026.

Stap 4: Leg de acceptatie-eis vast vóór de eerste run

Maak een acceptatieblad met vier kolommen: criterium, bewijs, eigenaar, besluit. Een route is pas klaar als:

  • elk testrecord een verklaarde uitkomst heeft;
  • een dubbele aanbieding geen dubbel doelrecord maakt;
  • een time-out eindigt als onbekend totdat de doelzijde is gecontroleerd;
  • foutieve records in een foutqueue met reden en eigenaar staan;
  • de telling van bron, tussenlaag en doel aansluit;
  • de afgesproken versheid en deadline aantoonbaar worden gehaald;
  • de leverancier weet welke versie en configuratie je gebruikt.

Gebruik geen algemeen groen percentage als vrijgavecriterium. Eén dubbele betaling kan zwaarder wegen dan honderden correcte leesacties. De eigenaar van het proces tekent het bedrijfsresultaat af, niet alleen de ontwikkelaar de technische response.

Stap 5: Bouw een duurzame sleutel en statusledger

Kies één sleutel die beide kanten begrijpen. Voor een order kan dat webshop_order_10482 zijn. Sla vóór elke write de sleutel, route, versie en beoogde actie op. Na de response voeg je doel-ID, status en bewijs toe.

Een time-out betekent onbekend, niet mislukt. Zoek eerst in de ledger en daarna in het ERP op de zakelijke sleutel. Bestaat het doelrecord, markeer de eerste poging als geslaagd of gedeeltelijk geslaagd. Bestaat het niet, herhaal dan dezelfde zakelijke actie met dezelfde idempotente sleutel als de ingang dat ondersteunt. Gebruik geen nieuwe sleutel om een verdwenen response te compenseren.

Kan de oude ingang zelf niet ontdubbelen, maak dan de ledger de poort: een record met dezelfde sleutel en een afgeronde status mag niet nogmaals schrijven. Voor correcties gebruik je een nieuwe actie, met een nieuwe reden en een menselijke vrijgave.

Stap 6: Test de lelijke gevallen op volgorde

Draai minimaal deze gevallen, steeds met een nieuw run-ID maar met een stabiele zakelijke sleutel:

  1. één normale record;
  2. dezelfde record twee keer;
  3. doelpakket tijdelijk niet bereikbaar;
  4. time-out nadat de write mogelijk al is uitgevoerd;
  5. onbekende klant of artikel;
  6. ontbrekende kolom of gewijzigd bestandstype;
  7. halve batch en hervatting vanaf de laatste bevestigde sleutel;
  8. versie-update met opnieuw dezelfde testset.

Bij een bestandsroute schrijf je eerst naar een tijdelijke naam en zet je het bestand pas daarna in de inkomende map. Bewaar verwerkte bestanden en verplaats mislukte bestanden naar een foutmap. File Transfer werkt juist omdat applicaties op vaste momenten bestanden uitwisselen, maar de omzetting naar het formaat van de andere applicatie blijft jouw verantwoordelijkheid. De file-transferbeschrijving noemt dat transformatiewerk expliciet, geraadpleegd op 16 oktober 2026.

Stap 7: Draai een kleine proef en laat één persoon vrijgeven

Begin met lezen of met een kleine set met lage financiële impact. Laat de oude route niet tegelijk dezelfde records schrijven. Vergelijk bron, doel en ledger. Kijk naar de zakelijke uitkomst: aantallen, bedragen, statussen, voorraad en vervolgactie. Een HTTP-status 200 zonder doelcontrole is geen bewijs.

Laat de beslisser per proef één van drie statussen vastleggen: vrijgegeven, geblokkeerd of terug naar ontwerp. Een geblokkeerde proef houdt inkomende gebeurtenissen vast. Hij wist ze niet. Zo kun je herstellen zonder dat je na een storing moet raden welke records al zijn aangeboden.

Stap 8: Zet bewaking, support en een deadline op papier

Een geslaagde run moet een hartslag produceren. Bewaak het uitblijven van die hartslag, de lengte van de foutqueue en de afwijking tussen bron- en doelcount. De eigenaar krijgt een melding met run-ID, laatste geslaagde sleutel, foutreden en voorgestelde volgende actie.

Leg na de proef vast:

  • wie eerste lijn doet en wie de leverancier belt;
  • welke tijden en kanalen gelden voor support;
  • welke update eerst in test moet worden uitgevoerd;
  • hoe lang de noodroute mag lopen;
  • op welke datum je beslist om door te bouwen, terug te vallen of te vervangen.

NIST beschrijft configuratiewijziging als een proces met vastgelegde verantwoordelijkheden, beoordeling, testen en controle na implementatie. Oudere baselines moeten beschikbaar blijven voor terugval. NIST SP 800-128 koppelt change control aan testen, verantwoordelijkheden en rollback, een publicatie uit 2011, geraadpleegd op 16 oktober 2026.

Valkuilen die de route laten breken

Je verwart geen publieke API met geen ingang

Een cloudplatform kan jouw lokale webservice niet zien, terwijl de webservice binnen je eigen netwerk prima werkt. Vraag daarom altijd naar installatievorm, lokale componenten en modules. De juiste vervolgvraag is niet heeft het een API?, maar welke ondersteunde ingang kan deze stroom gebruiken?

Je maakt de database de schrijver

Een read-only ODBC-account kan nuttig zijn voor rapportage. Een account met schrijfrechten op tabellen is een alarmsignaal. Als het systeem een import of webservice heeft, hoort de koppeling die voordeur te gebruiken. Als die voordeur ontbreekt, kies je voor een bestand, een vervangend proces of vervanging van het pakket. Je maakt geen stille schrijfroute omdat een SQL-update lukt.

Je kiest RPA voordat je de supportgrens hebt onderzocht

Een schermrobot werkt omdat hij doet alsof hij een mens is. Dat maakt hem geschikt als laatste route, niet als standaardroute. Een wachtwoordwijziging, schermwijziging, pop-up of verlopen sessie kan de taak stil laten mislukken. Gebruik een aparte serviceaccount, een noodstop, een kleine taak en menselijke vrijgave.

UiPath publiceert op 16 oktober 2026 een Basic-plan vanaf 25 dollar per maand, maar noemt daarbij beperkte schaal. De Standard- en Enterprise-plannen hebben geen publieke prijs. Die licentieprijs zegt dus weinig over de echte kosten van schermtesten, beheer en herstel. De actuele UiPath-prijspagina maakt dat verschil zichtbaar.

Je bewaakt alleen fouten, niet afwezigheid

Een export die niet draait, stuurt geen fout naar je inbox. Je ziet alleen dat er geen bestand of record bijkomt. Zet daarom een uiterste tijd op elke stroom. Als de normale interval tien minuten is, maak je de coulance zo groot dat een korte vertraging niet meteen belt, maar een gemiste volledige ronde wel.

Je maakt na een time-out een nieuwe sleutel

Dit is de snelste weg naar dubbele orders, boekingen of voorraadmutaties. Zoek eerst op je eigen actie-ID, de zakelijke sleutel en het doel-ID. Herhaal pas wanneer je de eerdere status hebt vastgesteld. Een nieuwe sleutel hoort bij een nieuwe beslissing, niet bij een verdwenen antwoord.

Je laat twee systemen hetzelfde veld bezitten

Als webshop en ERP allebei voorraad mogen schrijven, kan een technisch geslaagde run nog steeds de verkeerde werkelijkheid verspreiden. Wijs per veld één bronhouder aan. De andere kant leest, vraagt een wijziging aan of ontvangt een gecontroleerde correctie.

Je neemt een deadline aan als supportbelofte

Een leverancier die zegt dat een aanpassing op de planning staat, heeft nog geen datum, testbewijs of terugval. Vraag naar releaseversie, testvenster, eigenaar, supportgrens en export bij vertrek. Krijg je geen antwoord, behandel de route dan als onbeheerd en plan een vervanger.

Je bewaart alleen technische logs

Een logregel als POST geslaagd verklaart niet welk ordernummer is aangemaakt, welke boeking is geraakt of wie de afwijking heeft beoordeeld. Bewaar de bedrijfsreferentie naast de technische response. Zonder die koppeling kun je een incident technisch reproduceren, maar zakelijk niet herstellen.

Beslis-kader: wie beslist, welke support en wanneer terugvallen?

Gebruik vier assen: wat schrijf je, hoe snel moet het, hoe duur is een fout en wie beheert de route na de eerste livegang. De uitkomst is meestal één van deze zes opties.

Uitvoerbare beslismatrix

Gebruik deze matrix vóór je bouwt. De reactiedeadline is de tijd waarbinnen de aangewezen eigenaar een afwijking onderzoekt; de stoptrigger is een vooraf afgesproken grens, geen advies achteraf. Leg de route alleen vrij nadat elke cel voor jouw datastroom is bevestigd. Ontbreekt een formele leveranciers-SLA, behandel externe support als best effort en gebruik de interne grens in de matrix.

RouteBeslisserSupportgrens / SLAVersheid + reactiedeadlineBewijsdrempel vóór livegangConcrete rollback- of vervangingstrigger
Kant-en-klare connectorProceseigenaar van de stroom; IT geeft toegang vrijLeverancier ondersteunt exact ERP-versie, connector en foutpad schriftelijk; interne eerste triage binnen 30 min, leverancier binnen 4 kantoorurenAlleen kiezen als de connector de afgesproken versheid haalt; alarm na 1 gemiste cyclus, eigenaar start onderzoek binnen 30 min100% van de testset verklaard, inclusief dubbele aanbieding, time-out, aantallen en doel-ID's; export bij vertrek getestStop writes en zet de queue vast na 2 gemiste SLA's of 1 onverklaarde financiële mutatie; vervang de connector als dit binnen 30 dagen opnieuw gebeurt
Ondersteunde webservice of importProceseigenaar van de write-stroom; ERP-beheerder beheert toegangSupport geldt alleen voor benoemde versie, component en configuratie; IT eerste lijn binnen 15 min, leverancier binnen 4 kantoorurenVoor een orderstroom: maximaal 15 min achterstand; een time-out is binnen 15 min onbekend en wordt gecontroleerd vóór retryElk testrecord heeft bron-/doel-ID, status en foutreden; bron-, tussenlaag- en doelcount sluiten 100% aan; dubbele write is uitgeslotenStop nieuwe writes bij een onverklaarde doelstatus of een afgewezen versie; ga tijdelijk naar handmatige invoer en vervang zodra de leverancier geen wijzigings- of hersteltermijn geeft
Read-only ODBC of rapportageData-eigenaar samen met IT; niemand mag deze route voor writes vrijgevenSupport eindigt bij lezen en schema/export; de leverancier hoeft queries niet te dragen tenzij dat schriftelijk is afgesproken; IT triage binnen 1 uurAlleen kiezen als de afgesproken leesversheid wordt gehaald, bijvoorbeeld elk uur; alarm na 2 gemiste pulls, onderzoek vóór de volgende publicatieRead-only account, schema-/exportcontrole, telling en steekproef sluiten aan; geen writes in de testlogStop publicatie na 1 schemawijziging zonder verklaring; vervang de leeslaag als 2 updates op rij breken of niemand schema-eigenaarschap accepteert
Bestand of SFTPProceseigenaar van de ontvangende stroom; IT beheert transport, bron en doel beheren het formaatSFTP ondersteunt transport en toegang, niet de inhoud; bron-/doeleigenaar bevestigen formaat en archief; gemist bestand wordt binnen 30 min onderzochtAlleen kiezen als batch binnen de toegestane versheid past; alarm bij 1 gemist bestand of onvolledige telling, reactie vóór de volgende batchTijdelijke naam, definitieve naam, recordtelling/checksum, duurzame sleutel, archief- en foutmap zijn getest; alle records reconciliërenHoud inkomend bestand apart en stop publicatie bij onvolledige telling; vervang de route als formaat 2 keer zonder waarschuwing wijzigt of de batchdeadline niet wordt gehaald
RPA als tijdelijke laatste routeProceseigenaar; IT beheert runner, account en noodstopSupportgrens is het benoemde scherm en de runner; wijziging in ERP-scherm valt onder aanvullend beheer; eigenaar reageert binnen 15 min na een gemiste runAlleen kiezen als handmatige fallback de deadline nog haalt; alarm na 1 gemiste run, besluit binnen 15 min tussen stoppen en handmatig uitvoerenElke actie, screenshot/response, zakelijke sleutel en menselijke vrijgave zijn aantoonbaar; een schermwijzigingstest is geslaagdStop de robot na 1 onbekende schermuitkomst; vervang binnen de afgesproken einddatum of na 2 scherm-/credentialincidenten in 30 dagen
Vervanging of eigen tussenlaagStuurgroep plus proceseigenaar; IT is eigenaar van de nieuwe grensEigen team of contractpartij draagt component-, release- en exit-support; eerste incidenttriage binnen 1 uur, escalatie volgens contractKies dit als geen andere route de vereiste versheid haalt; deadline en herstelvenster staan in het ontwerpbesluitOnafhankelijke reconciliatie, versiebeheer, ledger, export bij vertrek en bewezen herstelproef vóór productieStart vervanging als support, deadline of bewijsdrempel structureel niet haalbaar is; stop de legacy-route zodra de nieuwe route twee volledige proefcycli aansluit

De termijnen in deze matrix zijn startwaarden voor het routebesluit. Schrijf ze per stroom over naar het acceptatieblad, bijvoorbeeld orders: 15 min versheid, 15 min reactie en voorraad: 1 uur versheid, reactie vóór de volgende publicatie. Zo wordt een matrix een werkafspraak die iemand tijdens een incident kan uitvoeren.

Kies kopen als de stroom standaard is

Een kant-en-klare connector wint bij één gangbare stroom, een ondersteunde ERP-versie, een duidelijke supportgrens en een export die je bij vertrek meekrijgt. Vraag vóór aankoop hoe dubbele records, refunds, ontbrekende artikelen en updates worden behandeld. Een abonnement zonder herstelprocedure is goedkoop tot de eerste uitzondering.

Kies een ondersteunde webservice of import voor writes

Dit is de voorkeursroute als het ERP zelf de ingang levert. Je krijgt validatie aan de juiste kant van de grens en kunt leverancier en versie aan het probleem koppelen. De supportafspraak moet minimaal bevatten: welke componenten ondersteund zijn, wie de toegangscode beheert, hoeveel waarschuwing je bij een update krijgt en welke testactie je na een update uitvoert.

Kies read-only ODBC of rapportage voor reads

Deze route past voor dashboards, voorraadlezing of controles wanneer de datamodule beschikbaar is en de leverancier schrijven niet toestaat. Zet een schema- of exportcontrole na elke ERP-update. Als een wijziging niet wordt aangekondigd, is dat onderhoud jouw verantwoordelijkheid.

Kies bestand of SFTP als batch voldoende is

Een bestand is een goede route als minuten of uren genoeg zijn en beide partijen een formaat kunnen afspreken. Gebruik tijdelijke bestandsnamen, een volgnummer, checksum of recordtelling, een archiefmap en een foutmap. SFTP is transport, geen bewijslaag. Microsoft vermeldt voor Azure Blob Storage dat SFTP lokale gebruikers of Microsoft Entra ID kan gebruiken, dat poort 22 en rechten apart worden ingericht en dat SFTP een uurprijs heeft naast opslag-, transactie- en netwerkprijzen. Microsofts SFTP-documentatie is bijgewerkt op 26 februari 2026 en gecontroleerd op 16 oktober 2026.

Kies RPA als tijdelijke laatste route

Een RPA-route is verdedigbaar als geen ondersteunde ingang, leeslaag of bestandsroute bestaat, de schermflow stabiel is en de fout handmatig kan worden vrijgegeven. Zet een eigenaar op het scherm, gebruik een aparte account en beperk de robot tot een kleine handeling. Neem in het besluit een vervangingsdatum op. Een schermrobot zonder einddatum wordt vaak een ongedocumenteerde productiekritische medewerker.

Kies vervanging of een eigen tussenlaag als het risico structureel is

Vervang het proces of het pakket wanneer er geen ondersteunde ingang is, niemand support draagt, de gewenste versheid niet haalbaar is of de foutkosten hoger zijn dan de waarde van de koppeling. Een eigen tussenlaag kan zinvol zijn wanneer vier of meer systemen aan het ERP hangen of wanneer elke pakketwissel anders alle logica opnieuw breekt. Die laag moet de bedrijfsregels, sleutel en bewijslaag bezitten. Niet alleen de API-aanroep.

Behandel een route pas als gekozen wanneer de uitkomst ook zegt wie de support doet, welke deadline geldt, welk bewijs de eigenaar beoordeelt en welke gebeurtenis de route stopt. De techniek is het middel. Het besluitdossier is het product.

Welke route past bij jouw datastroom?

Moet de stroom gegevens in het ERP schrijven?

Uitgewerkt voorbeeld: groothandel met KING ERP 5.70a

Neem een groothandel met twaalf medewerkers. KING ERP 5.70a draait client-server op een eigen Windows-server. De webshop staat bij een hoster. Op een normale werkdag komen zestig orders binnen. Een medewerker tikt een order in ongeveer drie minuten over, dus het handwerk is een rekenvoorbeeld van drie uur per dag, niet een algemene productiviteitsclaim.

Het besluitdossier

De eigenaar van operations schrijft twee stromen uit:

  1. verkooporders van webshop naar KING, binnen vijftien minuten;
  2. beschikbare voorraad van KING naar webshop, elk uur.

Finance bezit de bedragen en btw. Operations bezit orderstatus en uitlevering. IT bezit de Windows-server, toegangsbeheer en bewaking. De koppelaar krijgt geen mandaat om zelf productie vrij te geven.

In het licentieoverzicht staat King Task Centre. DataDigger staat er niet in. De leverancier bevestigt schriftelijk dat King Webservices voor deze KING-versie is toegestaan en dat aanpassing van Task Centre-taken na een pakketupdate apart moet worden getest. De actuele Task Centre-pagina toont een download voor versie 2021, build 6618, ondersteunt Windows 2016 en hoger en noemt dat een webserviceconnector na een upgrade opnieuw moet worden geïmporteerd als de taak niet goed werkt. Die supportinformatie is gecontroleerd op 16 oktober 2026.

De gekozen routes

Orders schrijven gaat via King Webservices op de lokale server. De webshop praat niet rechtstreeks met het ERP. Een klein tussenproces ontvangt de order, zet hem om naar het JSON-formaat van de webservice en bewaart de externe ordercode voordat hij schrijft. De response met het door KING gegenereerde ordernummer gaat terug naar de ledger.

Voorraad lezen gaat via een geplande export uit Task Centre. De export komt eerst als voorraad-20261016-1200.tmp op een SFTP-postbus terecht en krijgt pas na afronding de definitieve naam. De webshop leest alleen definitieve bestanden. Verwerkte bestanden gaan naar archive, fouten naar failed.

De read-only DataDigger-route wordt niet gekocht. Niet omdat ODBC onveilig per definitie is, maar omdat deze stroom een gecontroleerde export nodig heeft en een nieuwe module extra afhankelijkheid zou toevoegen. Een schermrobot komt niet in beeld. Er zijn twee ondersteunde ingangen.

Het bewijs en de proef

De eerste proef bevat dertig orders: normale orders, korting, onbekende klant, vervallen artikel, een decimaalbedrag en een dubbele aanbieding. De eigenaar stelt geen vrijgave in als alle requests groen zijn. Vrijgave volgt als elk ordernummer terug te vinden is, de totalen aansluiten, de dubbele aanbieding geen tweede order maakt, de voorraadbestanden volledig zijn en elke uitzondering een eigenaar heeft.

Op de derde proef treedt een time-out op nadat order WEB-10482 is aangeboden. De ledger zet hem op onbekend. De beheerder zoekt eerst op WEB-10482 in het ERP. Het order bestaat met KING-nummer 483921. De run wordt dus niet opnieuw aangeboden. Het bewijsrecord krijgt de status geslaagd-na-timeout en verwijst naar de response die later uit het Windows Logboek is gehaald.

Een week later wijzigt een pakketupdate een exportveld. De eerste voorraadcontrole ziet een ontbrekende kolom en zet de voorraadstroom stil. De inkomende orders blijven doorlopen, omdat het twee verschillende stromen zijn. IT maakt de export in test opnieuw, Operations vergelijkt de aantallen en pas daarna wordt de voorraadroute vrijgegeven.

De route heeft nu een eigenaar, een supportafspraak, een deadline voor de volgende test en een terugval die de gebeurtenissen bewaart. Het resultaat is geen magische API. Het is een saaie keten waarin iedereen kan zien wat er gebeurde.

Vergelijking: vier routes met actuele productdetails

De bedragen hieronder zijn controlepunten voor 16 oktober 2026, geen complete projectoffertes. De grootste kostenpost is vaak beheer: updates testen, uitzonderingen beoordelen en zorgen dat een afwezige run wordt gezien.

RouteConcreet product of hulpmiddelSupport en bewijsKosten of beperkingVervangen wanneer
Ondersteunde webservice of importKING Webservices voor King 5.70a, of een native import van het ERPLeverancier kan versie en toegang ondersteunen. Bewaar request, response, doel-ID en foutcodeModule, servercomponent en bouwtijd. De KING-implementatiehandleiding is v2.0 uit 2021Leverancier trekt support in of kan geen wijzigingstermijn geven
Read-only routeKingDataDigger via ODBC, rapportage-export of een eigen rapportagedatabaseAlleen lezen, schriftelijke toestemming en schema- of exporttest na updatesDatamodule en onderhoud van een schema dat niet van jou isEen update breekt de lezing herhaaldelijk of niemand bewaakt het schema
Bestand of SFTPKing Task Centre, Windows Taakplanner, n8n of Azure Blob Storage met SFTPTijdelijke naam, recordtelling, checksum, archiefmap, foutmap en hartslagn8n Starter kost volgens de actuele prijspagina €20 per maand bij jaarlijkse betaling voor 2.500 workflowuitvoeringen; de Community Edition is self-hosted beschikbaar. n8n controleerde ik op 16 oktober 2026Batch is te traag, formaat verandert zonder waarschuwing of de postbus wordt een onbeheerste vuilnisbak
RPA of schermrobotUiPath Automation Cloud of Power Automate DesktopServiceaccount, noodstop, schermtest na elke wijziging en menselijke vrijgaveUiPath Basic start volgens de actuele prijspagina bij 25 dollar per maand met beperkte schaal; Standard en Enterprise vragen een offerteSchermwijzigingen, sessies of credentials veroorzaken terugkerende fouten
Vervanging of eigen tussenlaagNieuw ERP, eigen adapter of proceslaag rond het legacy pakketContractueel eigenaarschap, export bij vertrek, versiebeheer, ledger en onafhankelijke reconciliatieGeen betrouwbare standaardprijs. Begroot ontwerp, migratie, beheer en exitGeen route haalt de deadline, versheid of bewijsdrempel zonder structureel risico

Kies n8n of een vergelijkbare uitvoerlaag alleen als de bewijsledger erbuiten blijft bestaan. Kies UiPath alleen als je de schermafhankelijkheid bewust accepteert en een einddatum vastlegt. Een lage licentieprijs maakt een onbeheerde fout niet goedkoop.

De route is pas klaar als je hem kunt terugnemen

Een legacy ERP hoeft geen modern product te worden om betrouwbaar mee te doen. Het moet een ingang hebben die iemand kan uitleggen, een eigenaar die mag stoppen en een spoor waarmee je een record terugvindt.

De beste route is daarom niet de route met de minste code. Het is de route waarbij je na een time-out nog weet wat je moet zoeken, na een update weet wie beslist en na een deadline weet wanneer je ophoudt met repareren. Pas dan is koppelen geen gok meer, maar een beheerst besluit.

Veelgestelde vragen

Alisina Nawabi
Geschreven doorAlisina Nawabi

AI Product Engineer & Solutions Architect

Een route die blijft werken

Ik help je de legacy-ERP-stroom afbakenen, leveranciersafspraken vast te leggen en de koppeling van ontwerp tot livegang te bouwen met bewijs, bewaking en veilige terugval.

Meer informatie

Dit artikel is geproduceerd samen met het Agent Team. Meer over de redactie.

Gerelateerde artikelen

Geen API in je pakket? Zo koppel je KING ERP en andere gesloten software toch
Gids
Uitgebreide gids15 min

3 aug 17:00

Geen API in je pakket? Zo koppel je KING ERP en andere gesloten software toch

Je pakket heeft geen publieke API, dus zeggen koppelpartijen dat er niets kan. Vier routes zeggen van wel, elk met wat hij kost, waar hij breekt en welke afspraak je vooraf met je leverancier maakt.

AI-agent in productie meten: uitzonderingsratio, vrijgavetijd en herstel
Gids
Uitgebreide gids20 min

13 okt 17:00

AI-agent in productie meten: uitzonderingsratio, vrijgavetijd en herstel

Bouw een operationele scorecard voor taakvolume, uitzonderingen, bewijs, menselijke vrijgave, herstel en ERP-read-back. Zo weet je wanneer een productie-agent meer werk krijgt, moet bijsturen of moet stoppen.

AI-agent voor verkooporders in de groothandel: veilige ERP-vrijgave
Gids
Uitgebreide gids18 min

10 okt 09:00

AI-agent voor verkooporders in de groothandel: veilige ERP-vrijgave

Laat e-mail-, pdf- en portalorders gecontroleerd naar je ERP gaan: bewijs klant, artikel, contractprijs en beschikbare voorraad vóór menselijke vrijgave.

Welke koppelingen draaien er in jouw bedrijf? Het register dat je in een middag aanlegt
Gids
Uitgebreide gids14 min

8 sep 09:00

Welke koppelingen draaien er in jouw bedrijf? Het register dat je in een middag aanlegt

Vijf tot vijftien koppelingen draaien er, en van geen enkele weet je op wiens account hij staat of wanneer hij verloopt. Zo loop je in een middag de vijf sporen af en leg je het register aan.

Data-sync met bronversie: voorkom stale writes en geef veilig vrij
Gids
Uitgebreide gids19 min

16 okt 09:00

Data-sync met bronversie: voorkom stale writes en geef veilig vrij

Voorkom dat oude synchronisatiedata nieuwe waarden overschrijft. Bouw bronversies, optimistic concurrency, idempotente retries, read-back en menselijke vrijgave in één herstelbare data-sync.

Available-to-promise per kanaal publiceren: maak van voorraad een leverbelofte
Gids
Uitgebreide gids20 min

11 okt 09:00

Available-to-promise per kanaal publiceren: maak van voorraad een leverbelofte

Bepaal welke voorraad je echt kunt beloven. Deze gids brengt bronhouder, reserveringen, quarantaine, verwachte ontvangsten, kanaalpublicatie, versheid en reconciliatie samen in één werkbare ATP-keten.