Importy

Server je schopen hromadného zadání nových dokumentů formou importu souboru nebo importu z proudu XML odesílaného na server v rámci požadavku. Import přitom může být buď jednorázový na základě požadavku klienta z předpřipraveného souboru nebo může být automatizovaný na základě načasování a výskytu souboru na vyznačeném místě. Vlastní import však zpracovává tatáž procedura serveru pomocí atributů plánovače úloh. Odstranění naplánované úlohy importu viz. odstrňování úloh.


Možné vstupní formáty

Server je schopen importu ze dvou základních textových souborových formátů:

XML

CSV (oddělený středníkem)

V případě XML dokumentu budou jasně dány názvy tagů a jejich struktura. Platnou strukturu importního souboru ukazuje následující příklad:

syntax
<?XML version='1.0'?>
<data-file>
<row e10012345='údaj pro 1. sloupec' e10012346='2. sloupec' .../>
<row e10012345='...' .../>
</data-file>

Jméno kmenového tagu i jméno tagů jednotlivých řádků jsou pevně dány. Jména atributů jednotlivých sloupců musí být shodná s názvy prvků v DAD.


Importní složka

Import jednorázový i automatický je serveru zadáván pomocí XML požadavku s mapovací informací a informací o vstupní složce, kde je soubor umístěn. Toto určení složky bude vždy relativní a bude se odvíjet od umístění importní složky dané pomocí nastavení serveru. Importní složka v nastaveních serveru bude například dána takto: "F:\import". V dílčím požadavku na provedení konkrétního importu pak bude doplněna podsložka/y "platby". Server pak bude importovaný soubor hledat ve složce "F:\import\platby".


Jméno importovaného souboru

Co se týká jména importovaného souboru, ten se zadává samostatně do složky tak, aby bylo možno částečně využít hvězdičkové konvence (masky) pro vyhledání souboru (*.*). Částečně proto, že přípona souboru bude vždy dána pevně (csv/xml), proto může nejobecnější forma zadané masky pro výběr importního souboru vypadat takto: *.csv nebo *.xml. Pokud masce odpovídá v rámci zadané složky více než jeden soubor, proběhne import všech odpovídajících souborů na základě jediného požadavku a to bez dalšího upozorňování uživatele.


Mapování vstupního souboru

Aby server rozpoznal, do jakých databázových objektů má jednotlivé údaje ze souboru ukládat, je zapotřebí mapovací informace vstupního souboru. Tuto informaci bude většinou sestavovat uživatel ve svém webovém rozhraní formou sestavení přehledu. Uživatel tedy musí sestavit tabulkový přehled s výstupními sloupečky v tom pořadí, v jakém jsou údaje za sebou řazeny na řádku vstupního souboru. Klientský skript pak na základě uživatelem sestaveného přehledu serveru předá seznam sloupců v DB ve formě jejich XDS id, přičemž bude zaručeno, že žádný údaj se nebude v seznamu vyskytovat dvakrát (tj. žádné XDS id nebude v seznamu duplicitní).


Syntaxe požadavku

Na základě výše popsaných skutečností bude mít požadavek na import následující XML syntaxi:

<do-import
doc-type="platby"
rel-folder="platby"
file-mask="*"
file-type="xml|csv"
tran="1|2|3"
attached-data="true|false"
validity="{#string}"
repeat="{#string}"
when-off="{true|false}"
failsafe="{#string}"
>
<column xds-id="10012345"/>
<column xds-id="10012346"/>
...
<data>
<row e10012345='...' .../>
...
</data>
</do-import>

Jednotlivé atributy mají následující význam:

doc-type - obsahuje jméno dokumentu (dle vlastnosti name v XDS), kam mají být jednotlivé informace nakopírovány. Pro každý řádek importního souboru se vytvoří nová instance dokumentu tohoto typu

rel-folder - jmeno složky v níž se budou hledat soubory pro import

file-mask - nastavuje masku souboru pro import

file-type - určuje zda bude importováno XML nebo CSV

tran - určuje transakčnost importu: 1 - záznam (řádek - prakticky bez transakcí), 2 - soubor (výchozí hodnota při neuvedení atributu - pokud dojde v rámci souboru k chybě, pak se nevloží žádný záznam z tohoto souboru; ostatní soubory proběhnou normálně), 3 - celek (všechny soubory - pokud dojde k chybě v jakémkoli záznamu, jakéhokoli souboru nevloží se nic)

attached-data - určuje, zda se importuje ze souboru (false) nebo se importují data přiložená k požadavku (true)

validity, repeat, when-off, failsafe - viz Nastavení plánovače úloh

Jako potomci tagu požadavku do-import jež je potomkem tagu request jsou v seznamu uvedeny jednotlivé odkazy na naplňované prvky. Ty jsou identifikovány pomocí xds-id.

Pokud jsou importovaná data součástí požadavku, pak jsou uváděna v tagu data. Struktura prikládaných dat je shodná se strukturou souboru, u XML se je tag data kořenovým tagem (tag data-file se neuvádí).

Aby uživatel mohl tento požadavek používat, musí mít ve vlastnostech uživatele aktivováno oprávnění p_import nebo p_admin.


Syntaxe odpovědi

Syntaxe odpovědi ještě před provedením vlastního importu na serveru je:

<do-import status="ok|error" [id="{#numb}"] [detail="{#string}"]/>

Atribut id je jednoznačný identifikátor importu přidělený serverem.


Systémové importyImporty