Functionele omschrijving
Beheer > Integraties > AFAS

De klantsynchronisatie tussen i-Reserve en AFAS is per veld richtingsgestuurd. In de Parameters van de koppeling staat per actief klant-/bedrijfsveld een rij met de richting, de AFAS-connector en de AFAS-veldnaam. Zo bepaal je per veld wie eigenaar is van de data.

1. Richting per veld

RichtingUitgaand (i-Reserve → AFAS)Inkomend (AFAS → i-Reserve)
i-Reserve leidend (standaard)Veld wordt naar AFAS gepushtInkomende waarde wordt genegeerd
AFAS leidendVeld wordt niet meegestuurdInkomende waarde overschrijft i-Reserve
Geen sync

Bij AFAS leidend hoort een GetConnector + veldnaam (waar de waarde vandaan komt); bij i-Reserve leidend een UpdateConnector-object zoals KnOrganisation, KnPerson, KnBasicAddressAdr of KnContact (waar de waarde naartoe wordt geschreven).

2. Wanneer ontstaat de debiteur in AFAS?

Een klantregistratie in i-Reserve pusht niet automatisch naar AFAS. De debiteur ontstaat op het eerste moment dat hij nodig is:

  • Bij facturatie — wanneer een factuur definitief wordt, zoekt de koppeling de debiteur; bestaat die niet, dan wordt hij aangemaakt.
  • Handmatig — via de AFAS-actieknop op de klantenkaart.

Bij aanmaak worden alleen de velden met richting i-Reserve leidend naar AFAS geschreven. De teruggegeven debiteurcode wordt in het externe-id-veld van de klant bewaard, zodat latere synchronisaties direct de juiste debiteur vinden. Dit voorkomt half gevulde debiteuren en onnodige schrijfacties bij elke registratie.

3. Handmatig vanaf de klantenkaart

  • Naar AFAS sturen — maakt de debiteur aan of werkt hem bij volgens de veldrichtingen.
  • Vanuit AFAS ophalen — haalt de AFAS-leidende velden op aanvraag binnen.
  • Debiteur- en factuurdetails — toont de actuele AFAS-gegevens naast de i-Reserve-waarden, inclusief synchronisatiestatus per factuur.

4. Inbound-sync (AFAS → i-Reserve, optioneel)

Met de inbound-sync haalt een achtergrondtaak periodiek gewijzigde debiteuren uit AFAS op (interval instelbaar, standaard elke 30 minuten). De taak filtert op debiteuren die zijn gewijzigd sinds de vorige succesvolle run; daarvoor is een wijzigingsdatum-veld in de debiteur-GetConnector nodig — zonder dat veld wordt telkens de volledige lijst opgehaald.

Per opgehaalde debiteur:

  1. Matchen, in volgorde: extern id → debiteurnummer → e-mailadres. Een bestaande, nog niet gekoppelde klant met hetzelfde debiteurnummer of e-mailadres wordt gekoppeld in plaats van gedupliceerd.
  2. Geen match → optioneel wordt een nieuwe klant aangemaakt (instelbaar).
  3. Velden → alleen velden met richting AFAS leidend worden bijgewerkt. Optioneel worden ook de gegevens van de contactpersoon uit de contact-GetConnector meegenomen.
  4. Bedrijfsmodus → is een bedrijfs-koppelveld ingesteld, dan wordt de AFAS-debiteur aan een bedrijf gekoppeld (en zo nodig aangemaakt) en worden contactpersonen klanten onder dat bedrijf.

5. Conflicten, audit en loop-preventie

  • Wijzigt een gebruiker in i-Reserve een veld dat op AFAS leidend staat, dan overschrijft de volgende inbound-run die waarde weer — AFAS wint op zijn eigen velden. Het conflict wordt expliciet gelogd.
  • Elke inkomende wijziging levert een audit-record op met de oude én nieuwe waarde, zodat wijzigingen altijd terugvindbaar zijn.
  • Tijdens een inbound-run is loop-preventie actief: het opslaan van de klant veroorzaakt geen push terug naar AFAS.
  • Het synchronisatiemoment wordt alleen na een foutloze run bijgewerkt; na een fout is de run dus veilig herhaalbaar.

De inrichting van connectors en rechten staat in AFAS Profit instellen.