Návrh evidence integrací, mapování a změn mezi systémy

1. Cíl evidence

Evidence má sloužit jako jednotné místo, kde je popsáno:

Typický příklad: systém A má REST API Customer.emailAddress jako string, systém B má objekt Client.email jako varchar(255). Evidence musí zachytit, že jde o stejný význam, ale jiný název a případně jiný technický typ.

2. Hlavní entity

2.1 System

Reprezentuje integrovaný systém.

Doporučená pole:

2.2 ApiEndpoint

Popisuje API rozhraní systému.

Doporučená pole:

2.3 DataObject

Reprezentuje objekt, tabulku nebo datovou strukturu.

Doporučená pole:

2.4 Attribute

Popisuje konkrétní atribut/sloupec/pole.

Doporučená pole:

Business význam je důležitý, protože systémy často používají jiné názvy pro stejnou věc.

3. Evidence mapování

3.1 Integration

Vyjadřuje integrační vazbu mezi dvěma nebo více systémy.

Doporučená pole:

3.2 ObjectMapping

Mapování mezi zdrojovým a cílovým objektem/tabulkou.

Doporučená pole:

Příklad:

source object target object význam
CRM.Customer ERP.Client zákazník/klient
CRM.Order ERP.SalesOrder objednávka

3.3 AttributeMapping

Mapování mezi jednotlivými atributy.

Doporučená pole:

Příklady mapování:

zdroj cíl typ mapování poznámka
Customer.emailAddress Client.email rename jiný název atributu
Customer.birthDate Client.date_of_birth transform změna formátu data
Customer.status Client.active lookup/transform převod hodnot ACTIVE/INACTIVE na boolean
Customer.firstName + Customer.lastName Client.full_name merge složení jména

4. Transformace datových typů a hodnot

4.1 TransformationRule

Popisuje transformaci potřebnou při mapování.

Doporučená pole:

Příklady pravidel:

pravidlo zdroj cíl popis
date ISO to CZ 2026-05-08 08.05.2026 změna formátu data
status to boolean ACTIVE true převod číselníku
decimal comma to dot 12,50 12.50 normalizace desetinného čísla
full name merge Jan, Novák Jan Novák spojení polí

4.2 LookupTable

Pro číselníky a hodnotové převody.

Doporučená pole:

Příklad:

source value target value
ACTIVE A
INACTIVE I
BLOCKED B

5. Verze mapování

5.1 MappingVersion

Každá sada mapování by měla mít verzi.

Doporučená pole:

Doporučení pro verzování:

6. Audit změn

6.1 ChangeLog

Audit musí odpovědět na otázky: kdo, kdy, co, proč a jaký to má dopad.

Doporučená pole:

6.2 Impact flagy

Pro každou změnu je vhodné automaticky nebo ručně vyhodnotit dopad:

změna requires_mapping_update requires_regeneration dopad
změna popisu atributu ne ne pouze dokumentační
přidání nepovinného zdrojového atributu možná ne/maybe mapování lze doplnit později
přidání povinného cílového atributu ano ano musí být namapováno
přejmenování atributu ano ano změna source/target path
změna datového typu ano ano nutná transformace nebo validace
změna povolených hodnot enumu ano ano nutná úprava lookup tabulky
odstranění atributu ano ano možný breaking change
změna API endpointu/path ano ano dopad na konektor/generovaný soubor

7. Jak poznat, že je potřeba regenerovat mapovací soubory

Regenerace je nutná, pokud se změní cokoliv, co ovlivňuje technický výstup mapování.

Regenerovat při změně:

Regenerace obvykle není nutná při změně:

Doporučený mechanismus:

  1. Každá změna vytvoří záznam v ChangeLog.
  2. Při uložení se vyhodnotí pravidla dopadu.
  3. Pokud requires_mapping_update = true, mapování přejde do stavu needs_review.
  4. Pokud requires_regeneration = true, aktuální generovaný artefakt se označí jako outdated.
  5. Po kontrole a schválení vznikne nová MappingVersion.
  6. Po regeneraci se uloží timestamp generated_at a hash nebo identifikátor výstupního souboru.

8. Návrh jednoduchého datového modelu

Minimální model pro implementaci:

System
  1 ── n ApiEndpoint
  1 ── n DataObject

DataObject
  1 ── n Attribute

Integration
  n ── 1 source System
  n ── 1 target System
  1 ── n MappingVersion
  1 ── n ObjectMapping

ObjectMapping
  n ── 1 source DataObject
  n ── 1 target DataObject
  1 ── n AttributeMapping

AttributeMapping
  n ── 1 source Attribute
  n ── 1 target Attribute
  n ── 0..1 TransformationRule

TransformationRule
  1 ── n AttributeMapping
  0..1 ── n LookupTable

ChangeLog
  n ── 1 changed entity
  n ── 0..1 MappingVersion

9. Doporučené stavy

9.1 Stav atributu

9.2 Stav mapování

10. Základní workflow změny atributu

Scénář: přidání nebo změna atributu ve zdrojovém systému

  1. Uživatel přidá nebo upraví Attribute u konkrétního DataObject.
  2. Systém vytvoří záznam v ChangeLog.
  3. Vyhodnotí se dopad změny:
  4. je atribut použit v existujícím mapování?
  5. změnil se název, typ, formát nebo povinnost?
  6. vznikla nová povinná hodnota v cílovém systému?
  7. Pokud změna ovlivňuje mapování, nastaví se requires_mapping_update = true.
  8. Dotčené ObjectMapping nebo AttributeMapping dostane stav needs_review nebo outdated.
  9. Analytik upraví mapování nebo transformační pravidlo.
  10. Vznikne nová MappingVersion ve stavu draft.
  11. Po kontrole se verze schválí jako approved.
  12. Regenerační proces vytvoří nové mapovací soubory.
  13. K verzi se uloží generated_at, hash artefaktu a stav generated.
  14. Po nasazení se verze označí jako deployed.

11. Kritická místa návrhu

11.1 Rozdílné názvy atributů

Řešit přes AttributeMapping.source_path a AttributeMapping.target_path.

Nestačí spoléhat na stejný název atributu. Evidence musí obsahovat i business význam, protože například:

11.2 Rozdílné datové typy

Řešit přes TransformationRule.source_type, target_type, input_format, output_format.

Příklady rizik:

11.3 Transformační logika

Každé nedirektní mapování musí mít jasný popis pravidla, příklad vstupu a výstupu a informaci, zda jde o ruční nebo automatickou transformaci.

Typy transformací:

12. Doporučený minimální výstup pro generování

Pokud se z evidence budou později generovat mapovací soubory, každé AttributeMapping by mělo být převoditelné do struktury podobné:

{
  "integration": "CRM_TO_ERP_CUSTOMERS",
  "version": "1.1.0",
  "source": {
    "system": "CRM",
    "object": "Customer",
    "path": "emailAddress",
    "type": "string"
  },
  "target": {
    "system": "ERP",
    "object": "Client",
    "path": "email",
    "type": "varchar(255)"
  },
  "mapping_type": "rename",
  "transformation": null,
  "required": true
}

13. Shrnutí doporučené struktury

Pro první verzi evidence stačí implementovat tyto entity:

  1. System
  2. ApiEndpoint
  3. DataObject
  4. Attribute
  5. Integration
  6. ObjectMapping
  7. AttributeMapping
  8. TransformationRule
  9. LookupTable
  10. MappingVersion
  11. ChangeLog

Tento model pokrývá dva systémy s rozdílným API nebo datovým modelem, mapování objektů a atributů, přejmenování, transformace datových typů i audit změn. Je zároveň dostatečně jednoduchý, aby mohl sloužit jako podklad pro následnou implementaci databáze nebo aplikace.