duplicated business logicFileMaker maintainabilitycustom software developmentAPI integrationsERP customizationtechnical debt
Hoe gedupliceerde bedrijfslogica herkennen

Hoe gedupliceerde bedrijfslogica herkennen

Jeroen·

Leer hoe je gedupliceerde bedrijfslogica in je FileMaker of ERP-systeem kunt opsporen voordat het tot bugs, verspilde uren en inconsistente gegevens leidt.

U lost een korting op één plek, stuurt het uit, en een week later klaagt een klant dat ze de oude prijs hebben betaald op een ander scherm. Er was eigenlijk niets kapot — de regel was gewoon twee keer geschreven, en u heeft er maar één hersteld. Als dit scenario u bekend in de oren klinkt, hebt u niet met een bug te maken. U hebt met gedupliceerde bedrijfslogica te maken, en het is één van de stilste, duurste problemen in elk groeiend aangepast systeem.

Dit artikel laat u zien hoe u gedupliceerde logica in een live FileMaker, ERP of aangepast systeem daadwerkelijk kunt herkennen — niet alleen de term definiëren — zodat u het kunt herstellen voordat het u een klant, een auditbevinding of een zeer verwararde nieuwe developer kost.

Wat telt precies als "gedupliceerde bedrijfslogica"?

Bedrijfslogica is elke regel die bepaalt wat het systeem moet doen op basis van uw specifieke manier van werken: hoe een korting wordt berekend, wanneer een order mag worden verzonden, welke goedkeuring een factuur boven een bepaald bedrag nodig heeft, hoe verzendkosten worden afgeleid van gewicht en bestemming.

Gedupliceerde bedrijfslogica betekent dat dezelfde regel op meer dan één plaats in uw systeem bestaat — onafhankelijk geschreven, niet gedeeld. Het verschilt van gedupliceerde gegevens (dezelfde klantrecord tweemaal opgeslagen) of gedupliceerde UI (twee schermen die er vergelijkbaar uitzien). Gedupliceerde logica gaat over dezelfde beslissing die twee keer is gecodeerd, wat betekent dat deze kan afwijken op het moment dat één kopie verandert en de ander niet.

Een concreet voorbeeld: een FileMaker-oplossing berekent een korting van 5% voor loyaliteit in een script dat wordt geactiveerd vanaf de Sales-indeling. Zes maanden later bouwt iemand snel een bestelformulier voor de webshop-connector, en in plaats van dat bestaande script aan te roepen, typen ze dezelfde regel van 5% opnieuw als een berekenend veld op de nieuwe indeling. Beide werken prima — totdat marketing loyaliteitskortingen naar 7% verandert. Nu past één bestelkanaal 7% toe en de ander nog steeds 5%, en niemand merkt het totdat de financiën de nummers afstemmen.

Waarom gebeurt gedupliceerde logica ook in goed geleide teams?

Het is zelden luiheid. Het gebeurt meestal om heel redelijke, menselijke redenen:

  • Deadline-druk. Het kopiëren van een bestaande berekening is sneller dan traceren waar het zich bevindt en het refactoren tot iets dat herbruikbaar is.
  • Onduidelijk eigenaarschap. In een systeem dat jaren is gegroeid, weet niemand precies welk script of veld de "officiële" bron van een regel is, dus een nieuwe developer schrijft gewoon zijn eigen versie om zeker te zijn.
  • Meerdere ingangspunten. Een modern zakelijk systeem heeft zelden nog maar één interface — er is de desktop FileMaker-client, een WebDirect of FmBetterforms-portal voor externe gebruikers, en een API-connector die gegevens naar een boekhoudpakket voert. Elk ingangspunt verleid een developer ertoe om de regel lokaal opnieuw in te voeren in plaats van terug te bellen naar een gedeelde.
  • Geen documentatie van waar regels zich bevinden. Als er geen kaart is van "prijsbepaling bevindt zich in Script X, verzendkosten bevinden zich in Veld Y," is elk nieuw onderdeel een muntgooispel tussen hergebruik en heruit vitaal.

Wat zijn de waarschuwingssignalen die u nu kunt controleren?

U hebt geen volledige code-audit nodig om duplication op te merken. Loop door deze controles:

  1. Zoek in uw scripts en berekeningen naar hetzelfde trefwoord of dezelfde constante. In FileMaker gebruikt u Scripts beheren en Database beheren om naar een specifiek getal (zoals een belastingtarief of een vaste vergoeding) in elk script en elke berekening te zoeken. Als het op drie niet-gerelateerde plaatsen verschijnt, is dat een sterk signaal.
  2. Vergelijk gedrag tussen kanalen. Plaats dezelfde testbestelling via elk ingangspunt — de desktop-client, de klantwebportal, de API — en controleer of de korting, belasting of verzendkosten elke keer overeenkomen. Elke discrepantie leidt meestal terug naar gedupliceerde logica, niet naar een willekeurige bug.
  3. Vraag jezelf af "als deze regel morgen zou veranderen, hoeveel plaatsen zou ik moeten bijwerken?" voor uw vijf meest zakelijk-kritieke regels (prijsbepaling, belasting, goedkeuringdrempels, voorraadbepaling, commissie). Als het eerlijke antwoord meer dan één is, hebt u duplication.
  4. Zoek naar bijna identieke scripts met iets andere namen, zoals "Korting berekenen," "Korting berekenen v2," en "Korting berekenen – Webshop." Deze namen zijn bijna altijd aanwijzing dat iemand het origineel niet vertrouwde of niet kon vinden.
  5. Controleer of bedrijfsregels lekken in de interface-laag. Als een validatieregel ("bestellingen onder de €50 hebben goedkeuring van manager nodig") rechtstreeks in een knopscriptstap op één indeling staat geschreven, en afzonderlijk in een portalfilter op een ander, hebt u dezelfde logica in twee niet-gerelateerde lagen van het systeem.

Hoeveel geld kost gedupliceerde logica u eigenlijk?

Het is gemakkelijk om dit als een nettigheidskwestie te behandelen, maar het heeft directe zakelijke gevolgen:

  • Inconsistente klantervaring — één kanaal honoreert een promotieprogramma, een ander niet, en ondersteuning moet het verschil uitleggen.
  • Compliance-risico — als een goedkeuringdrempel of belastingregel in uw ERP voor een nieuwe regelgeving wordt bijgewerkt, maar de API-connector gebruikt nog steeds de oude hardcoded waarde, genereert u mogelijk facturen die niet voldoen aan huidige vereisten.
  • Langzamere ontwikkeling — elk nieuw onderdeel moet rekening houden met "welke kopie van deze regel moet ik aanraken," wat stil elke toekomstige verandering belast.
  • Moeilijker onboarden — een nieuwe interne developer of een externe partner die is ingehuurd om het systeem uit te breiden, moet reverse-engineeren welke versie van een regel werkelijk gezaghebbend is, wat elke projectschatting vertraagt.

Hoe herstelt u gedupliceerde logica zodra u deze hebt gevonden?

Het vinden ervan is slechts de helft van de klus. Een paar praktische stappen die goed werken in FileMaker en vergelijkbare aangepaste systemen:

  1. Kies de gezaghebbende versie. Bepaal welke kopie van de regel vandaag correct is, en behandel elke andere kopie als degene die u wilt stopzetten.
  2. Centraliseer het op één plaats die het hele systeem kan aanroepen. In FileMaker betekent dit vaak het verplaatsen van logica naar één script of een aangepaste functie die elke indeling, portal en API-eindpunt aanroept — in plaats van drie afzonderlijke berekenVelden die dezelfde wiskunde doen.
  3. Leid elk ingangspunt via die enkele bron. Of het verzoek van WebDirect, een FmBetterforms-formulier of een externe API-integratie komt, het zou dezelfde onderliggende logica moeten activeren in plaats van een opnieuw geïmplementeerde kopie.
  4. Verwijder de duplicaten — laat ze niet gewoon inactief achter. Ongebruikte bijna-duplicaatscripts zijn precies wat ervoor zorgt dat de volgende developer per ongeluk op het verkeerde bouwt.
  5. Documenteer waar de regel nu zich bevindt, al is het maar kort, zodat de volgende persoon het niet op de zware manier hoeft te herontdekken.

Sommige teams introduceren een klein intern hulpmiddel of een met AI ondersteunde scriptzoeking (dit is één gebied waar het toevoegen van AI in FileMaker echt loont) om automatisch naar herhaalde berekeningspatronen te scannen, in plaats van op handmatige herinnering van waar elke regel zit.

één gedeelde regelbox die drie afzonderlijke app-schermen voedt

Is dit alleen een FileMaker-probleem?

Nee — gedupliceerde bedrijfslogica verschijnt in elk soort systeem: ERP-aanpassingen, spreadsheets die database-regels weerspiegelen, aangepaste web-apps en API-middleware. Het wordt meestal erger, met name in low-code en snelle-ontwikkelings-platforms zoals FileMaker, precies omdat ze het zo gemakkelijk maken om in minuten een nieuw berekenend veld of scriptstap toe te voegen. Die snelheid is een enorm voordeel voor het snel uitbrengen van functies, maar zonder enige discipline over waar logica zich bevindt, is het ook precies wat duplication onopgemerkt laat binnensluipen. Dit is één van de specifieke onderhouds-risico's die dieper worden behandeld in hoe u zakelijke software onderhoudbаar kunt houden als deze groeit.

Een snelle checklist om duplication te vangen voordat deze zich verspreidt

  • Zoek in scripts/berekeningen naar herhaalde constanten (belastingtarieven, vergoedingen, drempels)
  • Test dezelfde transactie via elk kanaal (desktop, webportal, API) en vergelijk resultaten
  • Maak een lijst van uw top 5 meest zakelijk-kritieke regels en bevestig dat elk op precies één plaats bestaat
  • Markeer scripts met versie-achtige namen ("v2," "new," "webshop copy")
  • Bevestig dat validatieregels niet zijn verdeeld tussen interface-laag en data-laag
  • Controleer deze lijst opnieuw na elke grote functirelease, niet alleen eenmaal per jaar

Veelgestelde vragen

Hoe vaak moet ik controleren op gedupliceerde logica? Behandel het als een lichte audit — een snelle controle na elk grote onderdeel, en een vollediger onderzoek een of twee keer per jaar als het systeem groeit.

Kan gedupliceerde logica ooit opzettelijk of acceptabel zijn? Af en toe, voor echt geïsoleerde eenmalige regels die nooit hoeven te overeenkomen met een ander deel van het systeem. Maar voor alles wat aan prijsbepaling, compliance of klantgericht gedrag is gerelateerd, behandel duplication als een defect, niet als een kortste weg.

Verhoogt het toevoegen van een API-connector het risico op duplication? Ja, als de connector regels opnieuw implementeert in plaats van aan te roepen in de bestaande systeemlogica. Een goed ontworpen integratie zou hetzelfde script of dezelfde functie moeten activeren als de hoofdtoepassing, niet de berekening onafhankelijk reproduceren.

Is dit iets wat alleen een developer kan opvangen? Zakelijke eigenaren en managers kunnen de symptomen ook opsporen — inconsistente kortingen, niet-overeenkomende facturen, ondersteuningstickets over "het werkte gisteren." Dit zijn precies de signalen die het waard zijn om met wie dan ook die het systeem onderhoudt aan te kaarten.

Als deze checklist meer gedupliceerde regels opleverde dan u verwachtte, is dat een normaal teken van een systeem dat in de loop der jaren organisch is gegroeid — geen teken dat het helemaal van nul af aan moet worden herbouwd. Loggix helpt teams regelmatig traceren waar bedrijfslogica daadwerkelijk in een FileMaker of verbonden ERP-omgeving leeft, het consolideren in een enkele, onderhoudbare bron, en API-integraties of AI-tools aansluiten zodat elk ingangspunt — desktop, web of extern systeem — speelt volgens dezelfde regels. Soms is dat een gericht schoon project; soms is het een korte advies-sessie om in kaart te brengen waar het risico werkelijk zit voordat wordt bepaald wat u eerst moet aanraken.