Systémové importy

Server je schopen importovat data dle struktury interních tabulek. Provádění těchto importů dočasně zastaví server a jsou proto vhodné spíše pro občasné vkládání velkého množtví dat. Force import je schopen vkládat data včetně jejich interní struktury - tedy vazeb mezi nimi. Force import je dále též schopen měnit stávající data v databázi. Force import je vždy transakční jako celek, provede se tedy vždy celý a bez chyb, nebo vůbec. 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 načasován a také opakován pomocí atributů plánovače úloh. Odstranění naplánované úlohy importu viz. odstrňování úloh.


Syntaxe požadavku

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

syntax
<do-force-import
folder="{#string}"
test="true|false"
self="true|false"
delete="true|false"
validity="{#string}"
repeat="{#string}"
when-off="{true|false}"
failsafe="{#string}"
/>

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

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

test - provede pouze test konzistence dat importu. Jelikož import může být velmi složitý s vnitřními vazbami mezi jednotlivými soubory, ale také s vazbami na stávající data, je vhodné jej před použitím otestovat. Pro tuto operaci není nutné zastavovat server.

self - standardně (false) je autorem importovaných dat uživatel system, pokud je atribut zapnut (true), pak se autorem stane uživatel, který zadal požadavek na force-import

delete - určuje, zda mají být soubory po importování vymazány

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_fimport nebo p_admin.


Jméno importovaného souboru

Jména importovaných souborů musí korespondovat se jmény tabulek do nichž má proběhnout import, jako přípona souboru je použito ".csv".


Syntaxe odpovědi

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

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

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


Vstupní formát

Vstupním formátem souboru je CSV oddělené středníkem bez oddělovače textu.

První řádek vstupního souboru musí, jako názvy sloupců, obsahovat názvy všech databázových polí tabulky (v libovolném pořadí).

Speciální nakládání s poli klíčů (pdk, psk, tdk, tak, fdk, fsk):

%klic% - vnitřní vazba. Klíč je chápán jako interní identifikátor v rámci force-importní dávky, tzn. pokud ma dokument 'x' vazbu na dokument 'y' a v dokumentu 'y' je v pdk použita hodnota 10, pak hodnota 10 v fdk dokumentu 'x' znamená, že se má do databáze zanést tento vztah. Obě hodnoty jsou v databázi nahrazeny dle interního číslování.

<%klic%> - vnější vazba. Říká, že klíč nemá být nahrazen novým, dle interního číslování, ale že se jedná o hodnotu klíče, který se již nachází v databázi. V praxi to znamená, že pro pdk/psk aktualizujeme již existující záznam, pro tdk/tak že začleňujeme do stávající struktury a pro fdk/fsk vytváříme vazbu na již existující dokument.

Speciální symboly polí (lze použít v libovolných polích):

<DEFAULT> - je-li do vstupního souboru místo libovolné hodnoty vložen tento klíčový řetězec, pak je do databáze na jeho místo vložena výchozí hodnota daného pole dle DAD

<ORIGINAL> - je-li do vstupního souboru místo libovolné hodnoty vložen tento klíčový řetězec, pak je do databáze na jeho místo vložena původní hodnota jakou měl před změnou (má smysl pouze pokud je měněn stávající dokument - jinak je vložena výchozí hodnota)


Systémové importyImporty