wat AFAS makkelijk maakt.
AFAS maakt gegevens beschikbaar via GetConnectors. Die zijn flexibel: je bepaalt zelf welke velden je opvraagt, en dat maakt het lezen uit AFAS in veel gevallen eenvoudig. Voor het ophalen van orders, klanten, producten of voorraad is dat een sterk uitgangspunt.
Die flexibiliteit heeft een keerzijde. Wat een GetConnector teruggeeft, hangt af van hoe hij is ingericht: de koppeling leest precies de velden die iemand aan jullie kant heeft klaargezet. Wie de GetConnectors beheert, hoort daarom bij het project, want een wijziging daarin raakt de koppeling direct.
waar het knelt.
Er zijn twee punten waar AFAS-koppelingen vaak meer werk zijn dan ze lijken.
een webshop heeft zelden genoeg aan één GetConnector.
Wat in de webshop één product is, komt in AFAS vaak uit verschillende GetConnectors: artikelgegevens, prijzen en voorraad apart. De webshop wil ze als één geheel ontvangen, dus moeten die resultaten worden samengevoegd voordat een extern systeem er iets mee kan, terwijl de koppeling wel betrouwbaar moet blijven.
Dat samenvoegen is lastiger dan het klinkt. De bronnen veranderen niet tegelijk, een opvraging kan mislukken terwijl de andere slagen, en een half product mag nooit in de webshop belanden. Daarom bewaar je tussenresultaten voordat je schrijft: elke bron wordt apart opgehaald en opgeslagen, en pas als alle delen compleet zijn gaat het samengestelde record door. Mislukt een stap, dan blijft de vorige complete versie staan. Wij gebruiken daarvoor slimme opslagmechanismen.
schrijven naar AFAS vraagt kennis van de database.
Gegevens terugschrijven, bijvoorbeeld een bestelling, gaat niet zonder kennis van de databasetabellen en veldnamen van AFAS. Een bestelling raakt meerdere tabellen tegelijk: de kop, de regels, de debiteur en verwijzingen naar artikelen die al moeten bestaan. Elke tabel heeft verplichte velden, en wat in de webshop een vrij tekstveld is, is in AFAS vaak een code uit een vaste lijst.
Een schrijfactie die met een nette voorbeeldbestelling werkt, loopt vast op de eerste bestelling van een nieuwe klant, met een afwijkend btw-tarief of met een artikel dat net is gewijzigd. Die kennis maakt het verschil tussen een koppeling die werkt en een koppeling die steeds opnieuw wordt gerepareerd.
wat je vooraf afspreekt.
De meeste problemen na livegang komen niet uit de techniek, maar uit afspraken die nooit zijn gemaakt. Leg dit vast voordat er iets wordt gebouwd.
- Welk systeem eigenaar is van welk veld. In veel gevallen komen prijzen en voorraad uit AFAS en de productteksten en afbeeldingen uit de webshop. Een veld met twee eigenaren wordt vroeg of laat overschreven.
- Welke richting elke gegevenssoort opgaat. Orders van de webshop naar AFAS, voorraad van AFAS naar de webshop, klanten mogelijk beide kanten op.
- Welke velden verplicht zijn bij het terugschrijven, en wat er gebeurt als de webshop die niet levert: een standaardwaarde, een foutmelding of een bestelling die in de wacht gaat.
- Hoe snel een wijziging zichtbaar moet zijn. Voorraad elke paar minuten vraagt een andere opzet dan prijzen één keer per nacht.
testen en livegang.
Schrijven naar AFAS test je nooit voor het eerst op productie. Werk met een testomgeving van AFAS en een vaste set bestellingen die de lastige gevallen dekt: een nieuwe klant, een afwijkend afleveradres, korting, meerdere btw-tarieven, een artikel zonder voorraad. Controleer na elke schrijfactie in AFAS zelf of het resultaat klopt, niet alleen of de API geen fout teruggaf.
Voor de livegang vergelijk je de aantallen in beide systemen: producten in de webshop tegenover producten die AFAS had moeten leveren, bestellingen verstuurd tegenover bestellingen aangekomen. Spreek af wie de koppeling in de eerste weken in de gaten houdt en wat er gebeurt met een bestelling die blijft hangen. Een koppeling die ongemerkt stopt, is erger dan een die een duidelijke fout geeft.
welke webshop heb je?
AFAS aan Magento hebben we gekoppeld. ERP-pakketten koppelen we regelmatig aan Shopify en Shopware, en AFAS is voor ons bekend terrein. Hoort jouw combinatie daarbij, dan werkt het zo: voordat we een offerte maken controleren we technisch of jouw koppeling kan. Daarna geven we een vaste prijs voor de afgesproken scope, en aanpassingen gaan op nacalculatie met een schatting vooraf. De prijs hangt af van de soorten systemen, bekend of legacy, het aantal routes en de complexiteit van het geheel. Meer over hoe we dat controleren lees je in is dit al eens gedaan?.
Bouwen we op Alumio, dan zijn de connectoren uit de bibliotheek het vertrekpunt. Vrijwel elk bedrijf heeft echter eigenaardigheden in zijn processen die daar niet in passen. Die lossen we op door generieke componenten zo te configureren dat ze bij jouw proces aansluiten.
wat je vooraf moet uitzoeken.
- Welke gegevens moeten heen en terug: orders, klanten, producten, voorraad, prijzen of facturen?
- Wie beheert de GetConnectors en de rechten in AFAS, en kan die persoon wijzigingen doorvoeren?
- Moet er worden teruggeschreven naar AFAS, en welke velden zijn daarbij verplicht?
- Welk systeem is eigenaar van welk veld, en staat dat ergens op papier?
- Is er een testomgeving van AFAS waar we tegen kunnen schrijven?
- Hoe snel moeten wijzigingen zichtbaar zijn in de webshop?
Wil je weten wat dit voor jouw situatie betekent? Vertel ons welke webshop je gebruikt en welke gegevens je wilt uitwisselen, dan zeggen we je in één gesprek wat het inhoudt.