Samenvoegen (Mergen) binnen Novulo: relaties, connecties, adressen, bankrekeningen en verwachte transacties

Binnen Novulo zijn meerdere samenvoegmodules beschikbaar waarmee dubbele of ongewenst gesplitste gegevens kunnen worden samengevoegd. Het doel van deze functionaliteit is om één record als doelrecord te behouden en de gerelateerde gegevens van het bronrecord naar dit doelrecord over te brengen.

Belangrijk uitgangspunt: Iedere samenvoegmodule is momenteel los van de andere modules opgebouwd. Er bestaat nog geen overkoepelend proces dat op basis van twee relaties automatisch alle onderliggende connecties, adressen en bankrekeningen ophaalt en samenvoegt.


Beschikbare samenvoegcomponenten

Binnen Novulo zijn de volgende samenvoegmodules beschikbaar:

Module Modelnummer
Relaties samenvoegen M7864
Connecties samenvoegen M12084
Adressen samenvoegen M11377
Bankrekeningen samenvoegen M11601
Verwachte transacties samenvoegen Onderdeel van M3162

Algemene werking

In de basis werkt het samenvoegproces binnen iedere module op vergelijkbare wijze. De gebruiker selecteert een bronrecord en een doelrecord. Vervolgens worden verwijzingen naar het bronrecord verplaatst naar het doelrecord, waarna validatie en commit plaatsvinden.

Input

Voor het uitvoeren van een samenvoeging zijn de volgende gegevens nodig:

  • Een te mergen bronrecord.
  • Een doelrecord waar naartoe gemerged wordt.
  • Een keuze of het bronrecord na afloop verwijderd of inactief gemaakt moet worden.
  • Een keuze of wijzigingen individueel of in bulk gecommit moeten worden.

Selecteren van records

Voor iedere variant bestaat binnen Applicatiebeheer, onder de algemene overzichten, een module voor samenvoegen. Via het grid kan de gebruiker twee records selecteren die mogelijk samengevoegd moeten worden.

Daarna wordt gecontroleerd of de geselecteerde records logisch samengevoegd kunnen worden. De validatieregels verschillen per type samenvoeging. Bij connecties wordt bijvoorbeeld gecontroleerd of de relatie van, de relatie naar en het type overeenkomen.

Na de selectie verschijnt een pop-up waarin beide records worden getoond. Hier bepaalt de gebruiker welk record het doelrecord wordt, welk record als bronrecord dient en wat er na afloop met het bronrecord moet gebeuren.


Procesverloop

Het samenvoegproces bestaat uit meerdere stappen.

1. Controle op openstaande transacties

Voor de opgegeven records wordt gecontroleerd of er geen openstaande edit- of delete-transactie aanwezig is. Wanneer dergelijke transacties aanwezig zijn, kan het proces niet veilig worden uitgevoerd.

2. Vastleggen van de merge-richting

Op het bronrecord wordt vastgelegd naar welk doelrecord samengevoegd gaat worden.

3. Verplaatsen van referenties

Alle foreign keys die verwijzen naar het bronrecord worden opgehaald. Via een pluginactie worden deze verwijzingen aangepast zodat zij naar het doelrecord verwijzen.

4. Afhandeling van gefaalde records

Wanneer tijdens het verplaatsen van referenties records falen, wordt voor deze records geen commit meer uitgevoerd. De betrokken records worden ge-unlocked, wijzigingen worden teruggedraaid en het volledige proces wordt afgebroken. De gebruiker ontvangt hierover een melding.

5. Validatie van gemigreerde records

Na het verplaatsen van de referenties worden validaties uitgevoerd op de gemigreerde records. Indien validaties falen, worden de betrokken records ge-unlocked en worden de validatiefouten opgehaald en gelogd op het bronrecord.

6. Commit van wijzigingen

Afhankelijk van de gekozen instelling worden wijzigingen individueel of in bulk opgeslagen. Op het bronrecord wordt vastgelegd of het samenvoegen succesvol is uitgevoerd.

7. Afhandeling van het bronrecord

Na voltooiing van het proces wordt het bronrecord verwijderd, inactief gemaakt of behouden, afhankelijk van de gekozen variant.


Foutafhandeling en logging

Tijdens het samenvoegproces wordt onderscheid gemaakt tussen fouten bij het migreren van referenties en fouten die ontstaan tijdens validatie. In beide situaties wordt voorkomen dat inconsistente of onvolledige gegevens worden opgeslagen.

Situatie Actie Resultaat
Gefaalde records bij migratie Geen commit, records unlocken en proces stoppen Gebruiker krijgt melding dat het samenvoegen niet is voltooid
Validatiefouten na migratie Records unlocken en validatiefouten ophalen Validatiefouten worden gelogd op het bronrecord
Succesvolle migratie en validatie Individueel of in bulk committen Resultaat wordt gelogd op het bronrecord

Huidige beperking

Hoewel meerdere samenvoegmodules beschikbaar zijn, zijn deze momenteel afzonderlijk ingericht. Er bestaat nog geen generiek proces dat vanuit twee relaties automatisch alle onderliggende gegevens verzamelt en verwerkt.

Dit betekent dat de volgende onderdelen nog apart samengevoegd moeten worden:

  • Connecties
  • Adressen
  • Bankrekeningen

Specifieke werking: Connecties samenvoegen (M12084)

De module Connecties samenvoegen (M12084) wijkt af van de overige samenvoegmodules doordat meerdere onderdelen altijd gezamenlijk worden verwerkt binnen één samenvoegproces.

Daarbij geldt:

  • Connectieverbandinformatie wordt altijd meegenomen.
  • De twee bijbehorende connectieverbanden worden altijd gelijktijdig samengevoegd.
  • Deze onderdelen worden binnen één proces verwerkt zodat de connectiestructuur consistent blijft.

Daarnaast bevat deze module een aanvullend proces waarbij de gebruiker een relatie kan opgeven. Op basis hiervan zoekt het systeem automatisch dubbele connecties op, waarna deze kunnen worden samengevoegd.


Specifieke werking: Verwachte transacties (M3162)

Binnen Novulo Betaalopdrachten is een proces beschikbaar voor het samenvoegen van verwachte transacties. Dit proces werkt anders dan de overige mergefunctionaliteit.

Op basis van een lijst met verwachte transacties wordt eerst gecontroleerd of alle transacties nog de status concept hebben. Zodra één of meerdere transacties deze status niet hebben, wordt het proces afgebroken.

Vervolgens wordt een overzicht opgebouwd van alle betrokken bankrekeningen van eigenaar en aanbieder. Per eigenaar en aanbieder wordt bepaald welke verwachte transacties kunnen worden gecombineerd. Indien meerdere transacties dezelfde combinatie bevatten, worden de transactieregels samengebracht in één verwachte transactie. Overgebleven lege transacties worden daarna verwijderd.