Propojení mezi dokumenty

Máme li například dokument zastupce_subjektu a dokument clovek, budeme asi chtít aby v databázi neexistovaly dvě položky evidující stejnou osobu, aby tak nedocházelo k redundanci dat a nutnosti opravovat jeden údaj na více místech. V dokumentu clovek, který si určíme za výchozí, vytvoříme službu inicialy_clověka (vytváření služby již bylo probráno v předchozí kapitole), která bude ostatním dokumentům nabízet údaje ukládané do člověka k použití. V dokumentu zastupce_subjektu pak použijeme vytvořenou službu pro oblast zástupce subjektu, kam se budou iniciály zástupce psát.

Znamená to tedy, že údaje, psané do dokumentu zastupce_subjektu se budou ve skutečnosti ukládat do dokumentu clovek. Znamená to tedy, že můžeme v případě tvorby nového zástupce vytvořit i nového člověka. Zápis atributu source v oblasti inicialy v dokumentu zastupce_subjektu bude vypadat takto:

source="foreign:clovek:/inicialy_cloveka"

Přejeme-li si vytvářet vlastní úložiště s využitím výchozích hodnot uložených v jiných dokumentech, můžeme použít na místo klíčového slova foreign slovo initial. Tento mechanismus může najít uplatnění například v dokumentu faktura, kde jako fakturační položky používáme položky dokumentu cenik. Jde však o to, že faktura je daňový doklad a jako takový musí zůstat zachován stejný i v budoucnu, přesto, že budeme například nuceni poopravit název ceníkové položky či dokonce změnit sazbu DPH.

Pokud bychom mezi fakturou a ceníkem použili vazbu foreign, pak by spolu se změnami v ceníku došlo i k nežádoucím změnám na faktuře (resp. všech fakturách, které danou položku ceníku využívají). Právě pro tyto případy je tu mechanismus initial. Tento mechanismus sice propojuje dva dokumenty a do odkazujícího ukládá klíč výchozího, stejně jako u mechanismu foreign, ale navíc vytváří i vlastní políčka v databázi pro všechny převzaté prvky. Uživatel tedy pak snadno z ceníku vybere požadovanou položku a fakturu vystaví. Po změně položky v ceníku však faktura zůstane beze změn, nebo" změna v ceníku se netýká úložiště ve faktuře.


Vztah opakovatelnosti depend a typu zdroje

Má-li segment cizí zdroj (tj. s mechanismem initial nebo foreign), může být jeho opakovatelnost (viz. vlastnost repeat) nastavena na hodnotu depend, pokud nejde přímo o výběrový uzel, ale některý z j...

Více o propojení na zdroj viz. XDS způsoby propojování dokumentů a popis XDS vlastnosti source a viz. též sekce Rozklad dokumentů v databázi.


Výběrové a specifikační uzly

Struktura dokumentů a jejich segmentů je navržena nejen pro oddělené ukládání informací různých typů, ale i pro jejich vzájemné sdílení mezi dokumenty. Dochází tak například k tomu, že dokument zastu...


Dokument a další segmentyPropojení mezi dokumentyRozklad dokumentů v databáziObecná oblast všech dokumentůPřehled řídících atributů dokumentůHistorie změnPrincip rozpracovaných dokumentůMetadataPohledy a pseudo typyPrincipy mapování na jiné aplikaceXSD schemata dokumentů dle XDS