Definovatelné importy - obecně
Definovatelné importy podporují následující formáty importních dat
- text poziční (TXT)
- text s oddělovači (CSV)
- formát XML
- Excel (XLS, XLSX)
Podporované kódování importních souborů:
-
Pro typ importu XML: UTF-8
-
Pro typ importu TXT a CSV: kódováni bez omezení - například Win-1250 nebo UTF-8 s BOM
V případě využití importních souborů ve formátu CSV a TXT s kódováním UTF-8 je nutné využít kódování UTF-8 s BOM, aby nedošlo ke špatnému importu českých znaků.
Při importu je možné zvolit, zda se vždy budou importovat nové záznamy bez kontroly, zda již v ABRA Gen takový záznam existuje, oprava stávajících záznamů nebo případně oprava stávajících a pokud nejsou nalezeny, tak vytvoření nových. Jednotlivé typy importu popisujeme zde.
U textových položek je v definici možné nastavit, zda se mají existující záznamy přepsat nebo doplnit před existující text nebo za existující text. Tuto volbu určuje položka na Obsahu definovatelných importů s názvem Způsob aktualizace textové položky.
Maximální počet záznamů by optimálně neměl překročit 100 000. Tato hodnota je ověřená z praxe. Neznamená to, že nelze importovat i větší soubory, nicméně je potřeba počítat s tím, že import větších souborů potrvá déle. Větší soubory nad 100 000 záznamů proto doporučujeme rozdělit do více menších souborů.
Možnosti zpracování importních dat:
1. Pouze otestovat správnost definice pro založení nebo aktualizaci business objektu (BO):
Pro možnost pouze otestovat správnost definice je potřeba zatrhnout příznak: Pouze ověřit na hlavičce definice definovatelných importů.
Při tomto nastavení se nevytváří žádný dokument ani se nezakládá/neaktualizuje business objekt. Pro ověření správnosti se využije funkce: Validate BO.
2. Provést nejprve parsing importního souboru do dokumentu a BO následně zpracovat samostatně:
Při zatržení příznaku: Pouze parsovat se provede parsing importních dat do interní sktruktury XML určené k přímému zápisu do business objektů ABRA Gen. Interní XML se uloží jako příloha do samostatného záznamu v agendě Dokumenty. Vzniklý dokument je v kategorií Definovatelný import, viz níže a řadou dokladů dle nastavení v agendě Kategorie dokumentů.
Uživatel má možnost si interní XML strukturu zkontrolovat a případně upravit. Vytvoření nebo aktualizaci business objektu dle uložené interní XML struktury lze zahájit ručně tlačítkem Zpracovat v agendě Dokumenty nebo automaticky jako naplánovanou úlohu.
3. Provést okamžité uložení nebo aktualizaci BO bez mezikroků:
Při nezatržených příznacích: Pouze ověřit a Pouze parsovat se při spuštění importu vynechá mezikrok ukládání dokumentů. Vygeneruje se interní XML struktura a ihned se provede vytvoření nebo aktualizace business objektu.
Po importu je uživatel o výsledku akce informován vytvořením nového záznamu v agendě Logy.
V agendě Kategorie dokumentů je pro účely Definovatelných importů k dispozici nová kategorie: Definovatelný import.
Dokumenty s touto kategorií typicky vznikají při parsování importních dat pomocí definic definovatelných importů. Při zpracování takto vygenerovaných dokumentů dojde k uložení naparsovaných dat do business objektů ABRA Gen
Pro automatické zakládání nových dokumentů s kategorií: Definovatelný import je nezbytné jednorázově nastavit řadu dokladů. Přiřazení řady dokladů se provádí v agendě Kategorie dokumentů, záložka Detail, podzáložka Řady dokladů. Více viz Přiřazení řady dokladů.
Hlavička dokumentu kategorie Definovatelný import obsahuje nové položky Kód chyby a Text chyby, které slouží k zapsání informací o chybě v případě neúspěšného zpracování dokumentu (text chyby lze také vždy dohledat v záznamu logování definovatelných importů). Tyto dvě položky jsou na detailu dokumentu viditelné jen v případě, že dojde k chybě. V seznamu dokumentů jsou sloupce k dispozici vždy.
Do položky Popis/název dokumentu se zapisuje informace o definici definovatelného importu, která byla pro import daného souboru použita.
Dokument vytvořený importem vstupního souboru v Definici definovatelných importů obsahuje strukturu XML vzniklou parsováním vstupních dat připravenou k importu do systému ABRA Gen
V případě volby archivace importního souboru (viz možnost Archivovat dokument v Definici definovatelných importů) vzniklý dokument obsahuje také původní, nerozparsovaná, importní data.
Obsah interní struktury XML pro ukládání dat do ABRA Gen je k nahlédnutí na záložce Obsah / podzáložka Obsah, případně v strukturované formě na podzáložce XML.
Zpracování dokumentu spustí vytvoření či aktualizaci business objektů (vytvoření nového záznamu nebo aktualizaci stávajícího). Zpracování dokumentu lze ručně spustit tlačítkem Zpracovat. Každý dokument lze zpracovat pouze jednou.
Pokud proces zpracování dokumentu proběhl bez chyb, na dokumentu se nastaví příznak Vyřízeno.
Pokud se při zpracovaní dokumentu vyskytne chyba (např. XML soubor neobsahuje povinnou položku pro daný BO – BO tedy nelze vytvořit), text chyby se zapíše do položky Text chyby a příznak dokumentu se nastaví na Přerušeno. O průběhu zpracování se vždy generuje nový záznam logu.
XML vzniklé parsováním lze v dokumentu samozřejmě i ručně upravit (XML si lze uložit, upravit a upravené XML nahrát zpět).
Importní data jsou definovatelným importem zpracovávána vždy v pořadí, v jakém jsou zadána v importní definici. Je to nezbytné, protože v systému ABRA Gen záleží na pořadí zadávání položek business objektů. Pokud při práci s jednotlivými business objekty dojde k chybě, proces zpracování se nepřeruší a pokračuje se zpracováním dalšího business objektu. O chybě je uložena informace do logu. Log se vytváří a ukládá vždy. Úroveň logování je možné si nastavit na hlavičce definice. Veškeré údaje vztažené ke stavu databáze se vyhodnocují v okamžiku parsování importních dat.
V importech lze využít ipodmínkování na úrovni Business objektu s vyhodnocením výrazu, případně více výrazů spojených operátorem AND nebo OR s následným rozhodnutím o ukončení importu nebo jeho pokračování při nesplnění podmínky. Je zde možnost také potlačit automatické předvyplňování na Business objektech (například automatické vyplňování jednotky na skladových kartách).
Při provádění parsingu importních dat definicí definovatelného importu a při operacích s business objekty vždy vzniká nový záznam s logem. Záznamy logování jsou ukládány do agendy Logy. Log je ukládán do záložky Detail, položky Poznámka. Úroveň logovaní (jeho obsah), tedy zda budou logovány podrobnosti, nebo jen chyby, či podrobnosti včetně XML naparsované struktury dat je možné ovlivnit volbou Úroveň logování na hlavičce definice. Na konci logu je vždy uvedena informace, zda import doběhl úspěšně nebo skončil chybou.
U logů s velkým počtem řádků se log rozdělí do více samostatných záznamů logů po blocích. Limit pro jeden blok je 50 tisíc řádků.
Znamená to, že při zpracování jednoho definovatelného importu k němu může vzniknout více záznamů logů. V závěrečných zprávách o průběhu zpracování definovatelného importu se zobrazí informace o všech vytvořených záznamech logů.
Rozšířené logování
Na hlavičce definovatelného importu lze zapnout i rozšířené logování, které následně umožní prohlížet log po jednotlivých řádcích. Je možné si zobrazit část XML rozparsovaného souboru s daty, která se nepovedlo uložit. Volbou lze také zajistit, že v rámci záznamu s logem bude vložena příloha obsahují reálná data před importem. Data před samotným importem mohou být díky skriptům modifikovaná a proto je důležité vidět jejich skutečnou podobu tak, jak jsou do ABRA Gen importována.
V předchozích verzích systému ABRA Gen byly logy ukládány v agendě Servisní knížka
Kromě ručního zadání jednotlivých tříd a subkolekcí business objektů je pro konfiguraci importní definice dostupná možnost Průvodce tvorbou Definic definovatelných importů.
Tlačítko pro spuštění průvodce je dostupné na záložce Detail v Panelu funkčních tlačítek a je aktivní v momentu editace definice (v případě tvorby nové definice po stisku tlačítka Nový).
Stiskem tlačítka se zobrazí dialog pro zadání identifikace business objektu.
V prvním kroku je potřeba vybrat třídu hlavičkového objektu. Dále lze nastavit Typ importu (Nový, Oprava, Oprava nebo nový) a příznak Nastavit aktivní (viz Aktivní v popisu řádků definice). Zatržení příznaku Nastavit aktivní nastaví hodnotu Ano jednak na řádku třídy business objektu, jednak na řádcích všech položek subkolekce daného BO.
V druhém kroku průvodce systém nabídne business objekty zafiltrované dle třídy hlavičkového BO vybraného v prvním kroku. Business objekty, které již na definici zadané jsou, se nenabízí.
Předvyplnění položek BO se provede pro označené objekty.
Po dokončení práce s průvodcem se automaticky provede vyplnění položek seznamu zvolených tříd business objektů (vrchní seznam). Spodní podseznam načte všechny položky subkolekcí a předvyplní hodnoty položek, u kterých je to možné.
Doplnění dalších hodnot a správné nastavení definice je dále na uživateli.
Do balíčků skriptů ABRA Gen je přidán nový aplikační modul Definovatelný import. V modulu jsou přístupné nové skriptingové háčky umožňující ovlivnit způsob zpracování importů. Více informací najdete v Metodické příručce.
Všechny příklady jsou připraveny pro testovaní nad demodaty (demodata je možné vytvořit jako další databázové spojení.). V případě, že budete chtít příklady otestovat na vašich datech, je potřeba změnit data v příkladových importních souborech na data z vaší databáze.
Příklady jsou rozděleny na tři části. Všechny společně obsahují XML definici importu a také zdrojový importní soubor. Textový popis k jednotlivým příkladům, včetně informací, který zdrojový importní soubor použít pro vybraný příklad je popsán v Metodické příručce, kapitola Příklady.
Níže najdete odkazy ke stažení příkladových definic včetně importních souborů:
Nezbytnou podmínkou pro provoz definovatelných importů je, aby byla tato část systému licencována. Definovatelné importy jsou licencovány samostatně (je třeba mít licenci na Importy a exporty) - viz Licencované celky (licencované moduly a vlastnosti).