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_iden 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,misluktofonbekend; - 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.
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
onbekendtotdat 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:
- één normale record;
- dezelfde record twee keer;
- doelpakket tijdelijk niet bereikbaar;
- time-out nadat de write mogelijk al is uitgevoerd;
- onbekende klant of artikel;
- ontbrekende kolom of gewijzigd bestandstype;
- halve batch en hervatting vanaf de laatste bevestigde sleutel;
- 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.
| Route | Beslisser | Supportgrens / SLA | Versheid + reactiedeadline | Bewijsdrempel vóór livegang | Concrete rollback- of vervangingstrigger |
|---|---|---|---|---|---|
| Kant-en-klare connector | Proceseigenaar van de stroom; IT geeft toegang vrij | Leverancier ondersteunt exact ERP-versie, connector en foutpad schriftelijk; interne eerste triage binnen 30 min, leverancier binnen 4 kantooruren | Alleen kiezen als de connector de afgesproken versheid haalt; alarm na 1 gemiste cyclus, eigenaar start onderzoek binnen 30 min | 100% van de testset verklaard, inclusief dubbele aanbieding, time-out, aantallen en doel-ID's; export bij vertrek getest | Stop 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 import | Proceseigenaar van de write-stroom; ERP-beheerder beheert toegang | Support geldt alleen voor benoemde versie, component en configuratie; IT eerste lijn binnen 15 min, leverancier binnen 4 kantooruren | Voor een orderstroom: maximaal 15 min achterstand; een time-out is binnen 15 min onbekend en wordt gecontroleerd vóór retry | Elk testrecord heeft bron-/doel-ID, status en foutreden; bron-, tussenlaag- en doelcount sluiten 100% aan; dubbele write is uitgesloten | Stop 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 rapportage | Data-eigenaar samen met IT; niemand mag deze route voor writes vrijgeven | Support eindigt bij lezen en schema/export; de leverancier hoeft queries niet te dragen tenzij dat schriftelijk is afgesproken; IT triage binnen 1 uur | Alleen kiezen als de afgesproken leesversheid wordt gehaald, bijvoorbeeld elk uur; alarm na 2 gemiste pulls, onderzoek vóór de volgende publicatie | Read-only account, schema-/exportcontrole, telling en steekproef sluiten aan; geen writes in de testlog | Stop publicatie na 1 schemawijziging zonder verklaring; vervang de leeslaag als 2 updates op rij breken of niemand schema-eigenaarschap accepteert |
| Bestand of SFTP | Proceseigenaar van de ontvangende stroom; IT beheert transport, bron en doel beheren het formaat | SFTP ondersteunt transport en toegang, niet de inhoud; bron-/doeleigenaar bevestigen formaat en archief; gemist bestand wordt binnen 30 min onderzocht | Alleen kiezen als batch binnen de toegestane versheid past; alarm bij 1 gemist bestand of onvolledige telling, reactie vóór de volgende batch | Tijdelijke naam, definitieve naam, recordtelling/checksum, duurzame sleutel, archief- en foutmap zijn getest; alle records reconciliëren | Houd 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 route | Proceseigenaar; IT beheert runner, account en noodstop | Supportgrens is het benoemde scherm en de runner; wijziging in ERP-scherm valt onder aanvullend beheer; eigenaar reageert binnen 15 min na een gemiste run | Alleen kiezen als handmatige fallback de deadline nog haalt; alarm na 1 gemiste run, besluit binnen 15 min tussen stoppen en handmatig uitvoeren | Elke actie, screenshot/response, zakelijke sleutel en menselijke vrijgave zijn aantoonbaar; een schermwijzigingstest is geslaagd | Stop de robot na 1 onbekende schermuitkomst; vervang binnen de afgesproken einddatum of na 2 scherm-/credentialincidenten in 30 dagen |
| Vervanging of eigen tussenlaag | Stuurgroep plus proceseigenaar; IT is eigenaar van de nieuwe grens | Eigen team of contractpartij draagt component-, release- en exit-support; eerste incidenttriage binnen 1 uur, escalatie volgens contract | Kies dit als geen andere route de vereiste versheid haalt; deadline en herstelvenster staan in het ontwerpbesluit | Onafhankelijke reconciliatie, versiebeheer, ledger, export bij vertrek en bewezen herstelproef vóór productie | Start 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.
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:
- verkooporders van webshop naar KING, binnen vijftien minuten;
- 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.
| Route | Concreet product of hulpmiddel | Support en bewijs | Kosten of beperking | Vervangen wanneer |
|---|---|---|---|---|
| Ondersteunde webservice of import | KING Webservices voor King 5.70a, of een native import van het ERP | Leverancier kan versie en toegang ondersteunen. Bewaar request, response, doel-ID en foutcode | Module, servercomponent en bouwtijd. De KING-implementatiehandleiding is v2.0 uit 2021 | Leverancier trekt support in of kan geen wijzigingstermijn geven |
| Read-only route | KingDataDigger via ODBC, rapportage-export of een eigen rapportagedatabase | Alleen lezen, schriftelijke toestemming en schema- of exporttest na updates | Datamodule en onderhoud van een schema dat niet van jou is | Een update breekt de lezing herhaaldelijk of niemand bewaakt het schema |
| Bestand of SFTP | King Task Centre, Windows Taakplanner, n8n of Azure Blob Storage met SFTP | Tijdelijke naam, recordtelling, checksum, archiefmap, foutmap en hartslag | n8n 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 2026 | Batch is te traag, formaat verandert zonder waarschuwing of de postbus wordt een onbeheerste vuilnisbak |
| RPA of schermrobot | UiPath Automation Cloud of Power Automate Desktop | Serviceaccount, noodstop, schermtest na elke wijziging en menselijke vrijgave | UiPath Basic start volgens de actuele prijspagina bij 25 dollar per maand met beperkte schaal; Standard en Enterprise vragen een offerte | Schermwijzigingen, sessies of credentials veroorzaken terugkerende fouten |
| Vervanging of eigen tussenlaag | Nieuw ERP, eigen adapter of proceslaag rond het legacy pakket | Contractueel eigenaarschap, export bij vertrek, versiebeheer, ledger en onafhankelijke reconciliatie | Geen betrouwbare standaardprijs. Begroot ontwerp, migratie, beheer en exit | Geen 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
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.
Dit artikel is geproduceerd samen met het Agent Team. Meer over de redactie.
