# 3.3.9. Synchronizace entit

Záznamy archivních entit v Elza je možné stahovat, odesílat nebo uvádět do souladu s jinými informační systémy (zejména CAM).

Instance Elza může komunikovat s více externími systémy najednou, ale jednotlivé záznamy archivních entit mohou být za účelem sjednocení (synchronizace) aktivně napojené pouze na jeden externí systém, který je označen v administraci jako prioritní.

Synchronizace probíhá automaticky dle nastavení integrace nebo ručně pomocí uživatelského rozhraní v modulu Archivní entity.

Dostupné akce z menu v horním panelu:

> Import ze systému

>   - Umožňuje vyhledat entity podle různých kritérií a převzít je do zvolené oblasti.

> Fronta synchronizace

>   - Nabízí přehled o aktualizaci, stažení nebo odeslání konkrétních entit, které je možné vyhledávat dle externího systému, oblasti a stavu ve frontě synchronizace.

Dostupné akce ze záhlaví entity:

> Zápis entity do externího systému

>   - Umožňuje zapsat entitu do externího systému.

> Zapsat změny

>   - Zapíše lokální změny entity v instanci Elza do externího systému.

Každá entita v systému CAM má jedinečné ID a UUID, které mimo jiné brání opětovnému stažení do Elza a vzniku duplicitních záznamů.

Poznámka

Některé situace, kdy v jedné instanci Elza existují entity napojené na více externích systémů a není možné je vzájemně synchronizovat a jednoduše deduplikovat, lze řešit pomocí funkcionality Kopie entity.

## Napojené entity

V případě napojení archivní entity na jiný systém je v jejím záhlaví k dispozici citace zdroje včetně ID, UUID a identifikace zapisovatele poslední změny do externího systému, a dále funkční tlačítko pro jednotlivé akce synchronizace.

S napojenými entitami je možné v závislosti na jejich obsahu a stavu synchronizace provádět tyto akce:

Aktualizace údajů z externího systému

  - Převezme změny z externího systému do instance Elza.

Zápis změn do externího systému

  - Zapíše lokální změny entity v instanci Elza do externího systému.

Převzetí napojených entit

  - Převezme z externího systému související entity napojené k dané entitě a založí jejich záznamy v instanci Elza, pokud nebyly již dříve staženy.

Oprávnění uživatelů k výše popsaným akcím se přidělují v administraci.

Vazbu archivní entity na externí systém nelze zrušit. Řešením je vytvoření entity nové v instanci Elza a zneplatnění té napojené. Případné odeslání takovéto entity do stejného externího systému může být zablokováno kontrolou bránící vzniku duplicitních záznamů.

U entit, které jsou zapsány v systému CAM, není možné měnit třídu a podtřídu entity.

## Stavy synchronizace

Aktuální stav synchronizace entity mezi instancí ELZA a externím systémem je znázorněn jak v záhlaví entity, tak u jednotlivých prvků popisu barevnými symboly s tímto významem a důsledky:

> Aktivní synchronizace (zelený) = optimální stav

>   - popis entity v instanci Elza i externím systému je shodný

>   - probíhá automatická aktualizace z externího systému dle nastavení integrace / serveru

> Existuje lokální změna (žlutý) = dočasný stav

>   - řešení: akce Zápis změn do externího systému

>   - v instanci Elza existuje novější verze entity se změněným popisem

>   - automatická aktualizace z externího systému je zastavena a opětovně spuštěna až akcí Zápis změn do externího systému (při použití akce Aktualizace údajů z externího systému v této situaci k opětovné aktivaci synchronizace nedojde, pokud se lokální změny vyskytují u nově vytvořených částí popisu, a zároveň může dojít ke ztrátě případných lokálních změn u částí popisu, které jsou ruční aktualizací opětovně převzaty z externího systému)

> Nesynchronizuje se (červený) = nechtěný stav

>   - řešení: akce Aktualizace údajů z externího systému

>   - v instanci Elza i externím systému existují novější verze entity se změněným popisem

>   - automatická aktualizace z externího systému neprobíhá a spustí se znovu až akcí Aktualizace údajů z externího systému (akce Zápis změn do externího systému není možná)

Varování

Části popisu (party) existující v Elza a následně změněné v externím systému jsou po provedení akce Aktualizace údajů z externího systému převzaty z externího systému. Případné změny těchto částí popisu provedené souběžně v Elza jsou aktualizací ztraceny (v Elza jsou zachovány původní části popisu, které nebyly po odeslání entity do externího systému změněny, a dále ty, které byly v Elza nově vytvořeny).

Po zneplatnění nebo nahrazení entity ve stavu Aktivní synchronizace provedeném v externím systému dojde k jejímu zneplatnění nebo nahrazení také v Elza. Pokud v Elza není k dispozici nahrazující entita (ve stavu Aktivní synchronizace), entita odstraněná v externím systému zůstane v Elza ve stavu nahrazená a odstranění případné duplicity je třeba provést přímo v instanci Elza.

Viz Odstraňování duplicit.

## Synchronizace a související entity

Při synchronizaci archivních entit je třeba věnovat zvláštní pozornost entitám, které jsou napojeny k záznamům entit pomocí vztahů (související entity).

Pokud záznam archivní entity obsahuje související entitu, která je k dispozici v daném externím systému, je při akci Zápis entity do externího systému odeslán záznam archivní entity včetně tohoto vztahu a výsledkem je návazná entita ve stavu Aktivní synchronizace.

Pokud záznam archivní entity obsahuje související entitu, která není k dispozici v daném externím systému, je při akci Zápis entity do externího systému odeslán záznam archivní entity bez tohoto vztahu a výsledkem je návazná entita ve stavu Lokální změna.

Pro dosažení stavu Aktivní synchronizace je třeba do externího systému odeslat také veškeré související entity (akce Zápis entity do externího systému) a v případě potřeby u návazných entit ve stavu Lokální změna následně provést jejich dodatečné odeslání do externího systému (akce Zápis změn do externího systému).

### Postupy synchronizace

Entita A (návazná)

  -> vztah k entitě B

Entita B (související)

Ideální postup:

  1. Zápis entity B do externího systému => Aktivní synchronizace entity B

  2. Zápis entity A do externího systému => Aktivní synchronizace entity A

Variantní postup:

  1. Zápis entity A do externího systému => Lokální změna entity A

  2. Zápis entity B do externího systému => Aktivní synchronizace entity B

  3. Zápis změny entity A do externího systému => Aktivní synchronizace entity A

Entita C (návazná + související)

  -> vztah k entitě D

Entita D (návazná + související)

  -> vztah k entitě C

Postup:

  1. Zápis entity C do externího systému => Lokální změna entity C

  2. Zápis entity D do externího systému => Aktivní synchronizace entity D

  3. Zápis změny entity C do externího systému => Aktivní synchronizace entity C

Poznámka

Pro vyhodnocení stavu synchronizace návazné entity hraje roli to, zda je související entita aktuálně dostupná v externím systému, nikoli stav synchronizace související entity v Elza. Související entita ve stavu Lokální změna proto nebrání aktivní synchronizaci návazné entity, pokud byla úspěšně zapsána do externího systému.

Varování

Akce Zápis entity do externího systému skončí chybou, pokud záznam odesílané entity obsahuje související entitu, která není k dispozici v cílovém externím systému a popis jejího vztahu k odesílané entitě uvádí další prvky popisu (Datace vztahu od, Datace vztahu do, Poznámka). Řešením je předchozí odeslání souvisejících entit dle postupu výše.

## Omezení synchronizace dle stavů entit

Výše zmíněné akce synchronizace jsou omezeny stavy příslušných entit.

Záznamy entit ve stavu ke schválení a záznamy entit s vytvořenou revizí nelze aktualizovat z externího systému (Aktualizace údajů z externího systému), a to ani v rámci automatické aktualizace.

Do externího systému je možné zapsat záznamy entit (Zápis entity do externího systému), popřípadě jejich změny (Zápis změn do externího systému) pouze v případě entit ve stavu nová, k doplnění a schválená.

Entity ve stavu ke schválení (Zápis entity do externího systému) nebo nepotvrzené změny záznamů entit, uskutečněné v režimu revize (Zápis změn do externího systému) není možné odeslat do externího systému.

V administraci lze volitelně nastavit, aby byly do externího systému odesílány pouze entity ve stavu schválená.

## Fronta synchronizace s externími systémy

Informace o stavu komunikace s externími systémy, stažení, odeslání nebo aktualizaci konkrétních entit jsou k dispozici v přehledu Fronta synchronizace v nabídce horního panelu.

Rozlišují se následující stavy entit ve frontě (příklady ve vztahu k CAM):

K aktualizaci

  - entita existující v Elza i CAM, čekající na aktualizaci do Elza

Ke stažení

  - entita existující v CAM, čekající na stažení do Elza

Aktualizováno / Staženo

  - informace o úspěšném načtení záznamu o entitě z CAM

  - v závislosti na omezení synchronizace dle stavů entit se může jednat o případy:

    - entita existující v Elza i CAM, úspěšně aktualizovaná do Elza

    - entita existující v CAM, úspěšně stažená do Elza

K odeslání

  - entita existující pouze v Elza, čekající na odeslání do CAM

  - entita existující v Elza i CAM, čekající na aktualizaci do CAM

Odesláno

  - entita existující pouze v Elza, úspěšně odeslaná do CAM

  - entita existující v Elza i CAM, úspěšně aktualizovaná do CAM

Chyba

  - entity, kde došlo k technickému selhání komunikace s externím systémem (při aktualizaci, stažení nebo odeslání entity)

Poznámka

Bezprostředně po odeslání entity nebo zápisu jejích změn do CAM (stav Odesláno) dochází v závislosti na nastavení integrace s externím systémem ke zpětnému stažení informací o zápisu entity do CAM (stav Aktualizováno / Staženo). Příslušnou entitu lze proto najít ve frontě synchronizace v důsledku jednoho požadavku pod oběma stavy. Stav Aktualizováno / Staženo obecně zahrnuje případy úspěšného načtení informace o záznamu entity z CAM bez ohledu na to, zda došlo ke stažení nebo aktualizaci (změně) záznamu entity.