Naar de inhoud
SyncMyShop

Kennisbank

Waarom een dry run voordat een koppeling live gaat?

Een dry run is een run waarin de koppeling de echte gegevens leest, alle regels toepast en niets wegschrijft. Je ziet per artikel of per order wat er zou veranderen, zodat fouten in de matching, de mapping en de regels zichtbaar zijn voordat ze in je webshop of je administratie staan.

Bijgewerkt op

Wat is een dry run?

Een dry run is een run waarin de koppeling alles doet behalve schrijven. Hij leest de gegevens uit de bron, leest de huidige stand in het doel, past elke regel toe en legt vast wat hij zou wijzigen. De webshop en de administratie blijven zoals ze waren.

De uitkomst is een verschillenlijst: per artikel of per order de oude waarde, de nieuwe waarde en de regel die het verschil veroorzaakt. Voor een voorraadkoppeling met 8.000 artikelen ziet die er zo uit:

dry run 03-10-2026 09:45   bron: exact online   doel: webshop   geschreven: 0
gelezen         8.000
gelijk          7.412
zou wijzigen      561   voorraad 512, leverdatum 38, prijs 11
geen match         27   artikelcode niet gevonden in de webshop

10482      voorraad     88 -> 82          order 20418, 6 stuks gereserveerd
10484      leverdatum   14-10 -> 21-10    inkooporder verzet
10517      prijs        12,50 -> 0,13     daling 99%
00123456   geen match                     webshop kent 123456

7.412 plus 561 plus 27 is 8.000: elk gelezen artikel staat in precies één groep. De 561 wijzigingen tellen op dezelfde manier op: 512 plus 38 plus 11. Klopt een van die optellingen niet, dan is de run zelf niet af.

Een dry run leest bron en doel en schrijft alleen een verschillenlijst De koppeling leest 8.000 artikelen uit het ERP en de huidige stand uit de webshop. Hij schrijft niets naar de webshop. De verschillenlijst telt 7.412 gelijke artikelen, 561 wijzigingen en 27 artikelen zonder match. ERP 8.000 artikelen Koppeling dry run Verschillenlijst in het dashboard Webshop huidige stand Beoordeling 27 zonder match leest 8.000 leest de stand schrijft 0 561 anders eerst oplossen 7.412 gelijk plus 561 wijzigingen plus 27 zonder match is 8.000. Elk gelezen artikel staat in precies één groep, en de webshop is na de run dezelfde als ervoor.
Een dry run leest beide kanten en schrijft alleen een verschillenlijst. De webshop is na de run dezelfde als ervoor.

Waarom is een testomgeving niet genoeg?

Een testomgeving beantwoordt een andere vraag. In een sandbox test je of de aanroepen technisch werken: de aanmelding, de verplichte velden, de foutcodes. De gegevens die er staan zijn testgegevens of een kopie van een eerder moment.

Testomgeving Dry run
Gegevens testdata of een kopie van een eerdere datum productie, op het moment van de run
Schrijft ja, in de testomgeving nee, nergens
Vindt fouten in de techniek: aanmelding, verplichte velden, veldlengtes fouten in de gegevens: codes die niet matchen, formaten, uitschieters
Vindt niet wat er in jouw 8.000 artikelen mis is wat het doel weigert bij het schrijven

Welke testomgeving er is, verschilt per systeem. AFAS heeft naast productie een test- en een acceptatieomgeving, elk met een eigen adres: resttest.afas.online en restaccept.afas.online. Bij Business Central horen bij een productieomgeving drie sandboxes zonder meerprijs, en een sandbox kan worden aangemaakt met de gegevens uit productie (documentatie van Microsoft, nagelezen op 3 oktober 2026). Zo'n kopie veroudert vanaf het moment dat hij gemaakt is. Een leveranciersbestand op een SFTP-server heeft geen testversie: het bestand van vandaag is het enige dat er is.

De volgorde is daarom vast. Eerst de testomgeving, waar een fout bij het schrijven geen gevolgen heeft. Daarna de dry run op de echte gegevens.

Welke fouten vind je alleen met echte gegevens?

De fouten die een koppeling na livegang duur maken, zitten zelden in de aanroep. Ze zitten in de gegevens. De verschillenlijst uit het voorbeeld, uitgesplitst:

Wat de dry run laat zien Aantal Oorzaak Gevolg zonder dry run
Geen match op artikelcode 27 19 codes die bij een import via Excel hun voorloopnullen kwijtraakten, 5 met een spatie achteraan, 3 die niet in de webshop staan 27 artikelen houden een verouderde voorraad
Voorraad naar 0 310 van de 512 de artikelen hebben in het ERP geen voorraadregel voor dit magazijn en de regel leest afwezig als nul 310 artikelen gaan uit de verkoop
Prijs daalt 99% 1 van de 11 een bedrag in euro's is als centen gelezen: 12,50 gedeeld door 100 is 0,125, afgerond 0,13 artikel 10517 staat voor € 0,13 in de webshop
Leverdatum in het verleden 4 van de 38 de inkooporder in het ERP heeft een ontvangstdatum die voorbij is en nooit is bijgewerkt vier artikelen tonen een verlopen datum

Geen van de vier is in een testomgeving te vinden, want ze bestaan alleen in deze administratie en deze webshop. Waar de eerste vandaan komt staat in koppelen op SKU of op EAN. Hoe je afwezigheid in een export of bestand leest staat in CSV en Excel van leveranciers, en de factor 100 in bedragen en btw mappen.

De tweede regel laat zien hoe je een verschillenlijst leest. Van de 512 voorraadwijzigingen gaan er 310 naar nul en zijn er 202 gewone mutaties. 202 op 8.000 artikelen is 2,5%, een normaal beeld voor één dag. 310 artikelen die in één run naar nul gaan is een patroon, geen verkoop. De lijst sorteert daarom op de grootte van de afwijking en groepeert per oorzaak, zodat één fout in een regel als één bevinding verschijnt en niet als 310 losse regels.

Bij orders werkt het op dezelfde manier. Een dry run over de 700 orders van de afgelopen 14 dagen levert bijvoorbeeld 668 orders op die zouden worden aangemaakt en 32 afgekeurde: 17 met een artikel dat het ERP niet kent, 9 zakelijke orders zonder btw-nummer en 6 waarbij de debiteur twee keer gevonden is. 668 plus 17 plus 9 plus 6 is 700.

Hoeveel verzoeken kost een dry run?

Een dry run leest, en lezen telt mee voor de limiet van de API. Exact Online staat 60 verzoeken per minuut en 5.000 per dag per administratie toe. De gewone REST-endpoints geven 60 records per pagina, de sync-endpoints 1.000.

Route Rekensom voor 8.000 artikelen Verzoeken Aandeel van 5.000 per dag
Gewone endpoint, 60 per pagina 8.000 gedeeld door 60 is 133,3 134 2,7%
Sync-endpoint, 1.000 per pagina 8.000 gedeeld door 1.000 8 0,2%

Met 60 verzoeken per minuut duurt de eerste route ruim twee minuten. Een dry run is dus goedkoop genoeg om te herhalen: na elke correctie in de bron of in een regel draait hij opnieuw, tot de lijst klopt. Hoe je zo'n som voor je eigen aantallen maakt staat in doorvoer berekenen.

Wat test een dry run niet?

Een dry run schrijft niet, dus het doel krijgt geen kans om iets te weigeren. Drie dingen blijven ongetest.

De validatie van het doel. Een verplicht veld dat leeg is, een bedrijfsnaam die langer is dan het naamveld van de vervoerder toelaat, bijvoorbeeld 35 tekens, een btw-code die in de administratie niet bestaat. Het doel meldt dat pas bij het schrijven.

De limiet op schrijven. 561 wijzigingen die elk één verzoek kosten, duren bij 60 verzoeken per minuut 9 minuten en 21 seconden. Bij 5.610 wijzigingen is dat ruim anderhalf uur, en dan telt mee wat er in die tijd nog meer naar hetzelfde systeem moet.

De tijd tussen lezen en schrijven. De voorraad die de koppeling om 09:45 las, kan om 09:46 door een verkoop zijn veranderd. Shopify heeft daar een controle voor in de aanroep zelf: inventorySetQuantities schrijft alleen als de opgeslagen hoeveelheid gelijk is aan de meegegeven changeFromQuantity, en geeft anders de fout CHANGE_FROM_QUANTITY_STALE terug.

De eerste echte run is daarom klein: één artikelgroep, bijvoorbeeld 50 artikelen. Dat zijn 50 schrijfacties die elk worden teruggelezen en vergeleken met de verschillenlijst. Weigert het doel er 2, dan zijn dat twee regels om aan te passen in plaats van 320 op 8.000 artikelen bij hetzelfde percentage.

Wat komt er na de dry run?

Na de dry run schrijft de koppeling, en hoeveel hij zelfstandig mag schrijven is een instelling per stroom of per leverancier.

Stand Wat de koppeling doet Voorbeeld
Dry run rekent alles door en schrijft niets de eerste run over 8.000 artikelen
Goedkeuring zet wijzigingen klaar en schrijft na akkoord de eerste bestanden van een nieuwe leverancier
Automatisch met drempel schrijft direct en houdt uitschieters vast een prijsdaling van meer dan 30% wacht op akkoord
Uitsluiting slaat het artikel over artikel 10510 met een actieprijs tot 31 oktober
Override houdt een eigen waarde vast een levertijd die je zelf op 3 werkdagen hebt gezet

Artikel 10517 uit de verschillenlijst wordt in de derde stand niet geschreven: een daling van 99% ligt boven de drempel van 30% en wacht op akkoord.

De dry run blijft daarna in gebruik. Gaat de buffer van 2 naar 5 stuks, dan rekent de koppeling die regel eerst droog door. Van de 8.000 artikelen hebben er 640 een vrije voorraad van 5 of minder, en 210 daarvan stonden met de oude buffer al op nul. De nieuwe regel haalt dus 430 artikelen extra uit de verkoop. Dat getal wil je kennen voordat de regel aan staat.

Wat betekent dit voor je koppeling?

Een koppeling die wij bouwen draait eerst als dry run op je eigen gegevens. De verschillenlijst staat in het dashboard, en wat erin opvalt lossen we op in de bron of in de regel voordat er iets wordt geschreven. Daarna kies je per stroom of wijzigingen op goedkeuring wachten of direct doorgaan, welke artikelen zijn uitgesloten en welke waarden je zelf vasthoudt. Na elke run staat er per artikel wat er is gewijzigd, van welke waarde naar welke.

Hoe dat per stroom is ingericht staat op dry run en goedkeuring, en het overzicht van alle stromen op koppelingen tussen je webshop en de systemen erachter. Vertel welke systemen je gebruikt, dan hoor je wat een eerste dry run bij jou zou lezen.

Veelgestelde vragen

Wat is het verschil tussen een dry run en een testomgeving?

Een testomgeving is een aparte kopie van een systeem waarin je mag schrijven zonder gevolgen. Een dry run draait tegen de echte systemen en schrijft niet. In de testomgeving zie je of een aanroep technisch werkt, in de dry run zie je wat jouw 8.000 artikelen of 700 orders met de regels doen. Een koppeling gaat door allebei.

Merkt mijn webshop iets van een dry run?

Alleen leesverzoeken. Die tellen wel mee voor de rate limit van het systeem. Het lezen van 8.000 artikelen uit Exact Online in pagina's van 60 kost 134 verzoeken, 2,7% van de 5.000 per dag. Er verandert geen voorraad, geen prijs en geen order.

Hoe lang moet een dry run draaien?

Tot elke soort geval minstens één keer is langsgekomen en elk verschil in de lijst verklaard is. Voor voorraad is dat een run met een volledig leveranciersbestand en een run met een bestand waarin artikelen ontbreken. Voor orders hoort er een order met korting, een buitenlandse klant, een annulering en een creditnota bij. De maat is de lijst met gevallen, niet de kalender.

Wat gebeurt er met de fouten die de dry run vindt?

Elke fout krijgt een van twee oplossingen: de bron wordt gecorrigeerd of de regel wordt aangepast. Een artikelcode die zijn voorloopnullen kwijt is, herstel je in het bestand of de koppeling vult hem aan tot de vaste lengte. Daarna draait de dry run opnieuw, tot de groep zonder match leeg is of alleen artikelen bevat die bewust niet meedoen.

Draait een dry run ook nog nadat de koppeling live is?

Ja. Elke wijziging in een regel gaat eerst droog: een hogere buffer, een nieuwe leverancier, een andere prijslijst. De koppeling rekent de nieuwe regel door over de echte gegevens en toont wat er zou veranderen, terwijl de bestaande regel gewoon blijft schrijven.

Is meedraaien naast een oude koppeling ook een dry run?

Het is dezelfde techniek over een langere periode. De nieuwe koppeling leest dezelfde gegevens als de oude, schrijft niets en vergelijkt zijn uitkomst met wat de oude koppeling deed. Hoe dat verloopt staat in een bestaande koppeling vervangen.

Vertel wat je nodig hebt

Vertel welke systemen je gebruikt en wat je wilt verbeteren. Je krijgt binnen één werkdag een persoonlijk antwoord. We helpen je de werkzaamheden helder te krijgen en spreken de prijs en planning af voordat je iets toezegt.

  • Je weet de prijs en de doorlooptijd voordat je iets toezegt
  • Wij zoeken uit welke koppeling het werk uit handen neemt
  • Wij verzorgen de bouw, hosting, bewaking en het onderhoud
  • Je team krijgt minder overtypwerk en minder uitzoekwerk

Leveranciers, producten, orders per dag, een ruwe schatting is prima.

Of mail direct: carsten@syncmyshop.com