Jak pracuje Evolio - Excel Import Tachov

1. Obecné

  • Všechno logování se ukládá do složky dokumenty\Evolio.Log ve formátu rrrrMMdd_hhmmss_NAZEV_SOUBORU.log.

  • Importer před samotným importem zanalyzuje tabulku excelu dle definice uvedené v XML, které se nachází dokumenty\Evolio.Settings. Výsledkem je zkonvertovaná datová tabulka se zformátovanými hodnotami v jednotlivých buňkách. Importer, pak při samotném importu už nemusí přemýšlet, jak dotyčnou hodnotu formátovat. Výhodou tohoto je, že se chyby odhalí hned na žačátku před samotným importem. U importu je přidána jedna aktivita importeru navíc. Tou je konverze samotného sešitu excelu do nové sešitu excelu. Protože původní excel, obsahuje formátování, kterým Importer nerozumí, je třeba tento původní excel převést na formát, kterému Importer už rozumí. Poté dokáže výslednou tabulku z nové sešitu zkonvertovat do datové tabulky, kterou pak použije pro import. Při importu, ale tuto tabulku nejdříve zredukuje na potřebný počet záznamů, protože v tabulce se opakují hodnoty.

  • Základní premisou, aby konverze tabulky sešitu z excelu do datové tabulky proběhla úspěšně je, že všechny hodnoty musí být ve formátu prostého textu a žádný sloupeček se nesmí opakovat (duplicita názvů sloupců). Proto importer při konverzi z jednoho Excelu do druhého automaticky vyhledává a přejmenovává duplicitní sloupečky. Nový Excel pak použije pro import.

  • Pokud během importu spisů Importer zjistí, že daný spis v systému už existuje. Je kompletně celý vymazán a založen znovu.

  • O konverzi tabulky ze sešitu z původního excelu do nové sešitu se stará Excel Converter.

  • O konverzi tabulky ze sešitu z excelu do datové tabulky se zformátovanými hodnotami se stará Excel Validator.

  • Excel Validator, když tvoří strukturu tabulky určené pro import, prochází jednotlivé sloupce z definice v XML. Každý sloupec pak projde následujícími kroky. Nejdřív se zjistí, jestli sloupec patří mezi neopakující se sloupce. Tzn. jestli název sloupce v XML se rovná názvu sloupce v Excelu. Pak je předpoklad, že sloupec je opakující se a tedy, že název sloupce v XML je obsažen v názvu některého sloupce Excelu.

  • Název žádného sloupce nesmí být součástí názvu jiného sloupce (např. "uhrada" a "uhrada datum"). Je však dovoleno "uhrada castka" a "uhrada datum".

  • Excel Validator validuje XML proti XSD jednoduchým způsobem skrze DataSet. Struktura XML a základní pravidla se načtou do DataSetu pomocí XSD a data (definice sloupců) pak pomocí XML. Pokud vznikne během zpracování vyjímka, Excel Validator o ní informuje.

  • Při zjišťování nejbližšího nejvyššího čísla spisů Impoter předpokládá, že všechna čísla spisů jsou ve správném formátu (EX 00000/00)

2. Hlášení během importu a jejich význam

Nahrávám data z Excelu pro zjištění počtu sloupců v sešitu.


Excel Converter musí načíst všechny data z excelu, aby při pozdějším zpracování sešitu procházel nezbytně nutné množství sloupců (Excel nativně obsahuje opravdu hodně sloupečků).

Otevírání Excelu (NAZEV_SOUBORU).

Excel Converter otevírá sešit excelu pro další zpracování.

Vymazávání mezer na začátku a na konci názvů sloupců.

Excel Converter prochází každý sloupec v Excelu a u každého z nich vymaže mezeru na začátku a na konci. (Excel Validator nepřipouští mezery na začátku a na konci názvu sloupce)

Vyhledávání a přejmenovávání duplicitních sloupců (sloupce se stejnými názvy).

Excel Converter prochází každý sloupec (master) v Excelu a porovnává ho s každým dalším sloupcem (slave) v Excelu. Pokud zjistí, že se názvy porovnávaných sloupců rovnají přiřadí slave sloupci na konec názvu "_PORADI-OPAKOVANI".

Konverze hodnot.

Excel Converter v celém sešitě konvertuje hodnoty, kde mu programátor určil.

Ukládání excelu do nové souboru (NAZEV_SOUBORU).

Excel Converter uloží zpracovaný sešit Excelu do nového sešitu Excelu pod názvem NAZEV_SOUBORU.

Hodnota HODNOTA bude zkonvertována na typ DOUBLE - řádek CISLO_RADKU, sloupec SLOUPEC

Excel Converter zformátuje danou hodnotu na řetězcovou hodnotu určenou pro pozdější konverzi na číslo.

Hodnota HODNOTA bude zkonvertována na typ DATETIME - řádek CISLO_RADKU, sloupec SLOUPEC

Excel Converter zformátuje danou hodnotu na řetězcovou hodnotu určenou pro pozdější konverzi na datum.

Číselná hodnota data nemůže být menší než 1.

Excel Converter při formátování hodnoty na řetězcovou hodnotu určenou pro pozdější konverzi na datum zjistil, že číslo v buňce má nedovolenou hodnotu. (V Excelu jsou datumy evidovány jako číslo).

Konverze Excelu->Konverze data: předaný formát řetezce (string.format) pro datum v excelu obsahuje nepovolený počet klíčových písmen (y,m,d,M,h,H,s). Vzor pro parsování data bude prázdný..

Excel Converter při formátování dané hodnoty na řetězcovou hodnotu určenou pro pozdější konverzi na datum zjistil, že programátor špatně určil vzor Regulárního výrazu pro data.
Povolený počet všech písmenek je 2 s vyjímkou y, kde je dovolený počet 2 a 4.

Xml není validní. Excel bude považován ze nevalidní a nebude vyhodnocován.

Excel Validator zjistil, že XML (definice sloupců pro importovaný excel) neodpovídá zadanému schématu ExcelDataTable.xsd (dokumenty\Evolio.Settings)

Nemohl jsem ve sloupci NAZEV_SLOUPCE na řádku CISLO_RADKU zkonvertovat hodnotu HODNOTA.

Excel Validatoru se nepodařilo HODNOTA zkonvertovat do požadovaného tvaru.

Ve sloupci NAZEV_SLOUPCE na řádku CISLO_RADKU není hodnota HODNOTA.

Excel Validator zjistil, že není HODNOTA je prázdná a že tudíž není co konvertovat.

Pro sloupec NAZEV_SLOUPCE v Excelu jsem našel sloupec NAZEV_SLOUPCE_XML v XML, který ale není opakující se.

Excel Validator předpokládal, že by se tento měl opakovat, protože ho nenašel mezi neopakujícími se sloupci definovaných v XML. Při prohledávání opakujících se sloupců, kdy prochází všechny sloupce definované v XML, jej našel, ale byl označen jako neopakující se.

Pro sloupec NAZEV_SLOUPCE v Excelu není v XML definice.

Excel Validator zjistil, že sloupec NAZEV_SLOUPCE v XML neexistuje (není definován).

U sloupce NAZEV_SLOUPCE_XML jsem nemohl zkonvertovat defaultní hodnotu HODNOTA: CHYBA_SYSTEMU

Excel Validator se pokusil zkonvertovat hodnotu, která uvedená v definici u sloupce NAZEV_SLOUPCE, ale nezdařilo se.

U Sloupce NAZEV_SLOUPCE vyskytujícího se několikrát po odstranění názvu dle xml a pořadí, zbývá více než jedna mezera. Nebude možno tento sloupec později rozpoznat.

Excel Validator při tvorbě opakujícího se sloupce zjistil, že mezi názvem sloupce uvedeným v definici v XML a číslem na kopnci určující jeho pořadí je více než 1 mezera, což nepovolený stav.

Nešlo určit pořadí sloupce NAZEV_SLOUPCE_XML vyskytujícího se několikrát

Excel Validatoru při tvorbě opakujícího se sloupce se nepodařilo určit pořadí opakujícího se sloupce.

Sloupec NAZEV_SLOUPCE nebyl v excelu nalezen

Excel Validator zjistil, že sloupec NAZEV_SLOUPCE v XML neexistuje (není definován).

Sloupec NAZEV_SLOUPCE se má vyskytovat CISLO1 přičemž se vyskytuje CISLO2

Excel Validator u opakujícího sloupce NAZEV_SLOUPCE zjistil, že dle definici v XML se má opakovat CISLO1 krát, ale v Excelu je CISLO2 krát.

XML není validní: CHYBA_SYSTEMU

Excel Validator při validaci XML obsahující definici sloupců narazil na chybu CHYBA_SYSTEMU.

XML XML_UPLNA_CESTA_K_SOUBORU nebo XSD XSD_UPLNA_CESTA_K_SOUBORU neexistuje.

Excel Validator nenašel XML nebo XSD, aby mohl provést validaci XML oproti XSD.

Soubor XML_UPLNA_CESTA_K_SOUBORU neexistuje

Excel Validator nenašel XML, aby z jej začal používat pro analýzu a konverzi excelovské tabulky.

Chyba v Xml : CHYBA_SYSTEMU

V Excel Validatoru nastala chyba při úvodním načítání definic.

Bude ignorováno CISLO řádků od začátku.

Excel Validator hlásí, že bude při plnění tabulky určené pro import daty z excelu ignorovat CISLO řádků, kde by jinak předpokládal data.

Xml nemohl jsem rozpoznat kolik řádku na začátku má být ignorováno. Patrně chybí atribut CountOfRowsFromBeginToIgnore v tagu sheet.

Excel Validator nemohl zjistit kolik řádků má ignorovat a tak nastaví 0. Svádí to na opomenutí na neexistenci atributu CountOfRowsFromBeginToIgnore v XML.

Xml sloupec číslo CISLO: CHYBA_SYSTEMU

Excel Validator konverzi definice sloupce v XML na objekt třídy pro další zpracování provedl špatně. Chyba je popsána v CHYBA_SYSTEMU.

Nenašel jsem v xml TAG Sheet.

Excel Validator postrádá kořenový TAG v XML. Konverze Excelovské tabulky nemůže pokračovat.

Nemohl jsem správně vyhodnotit hodnotu v MultipleTimes: HODNOTA

Excel Validatoru se nepodařilo HODNOTA převést na číslo u definice opakujícího se sloupce.

Nemohl jsem správně zkonvertovat hodnotu HODNOTA pro datový typ NAZEV_DATOVEHO_TYPU

Excel Validatoru se nepodařilo HODNOTA převést na požadovaný datový typ.

Hodnota ke zkonvertování je prázdná pro datový typ NAZEV_DATOVEHO_TYPU

Excel Validator neměl co konvertovat na požadovaný datový typ.

Redukuji případ s tímto titulem CISLO_TITULU

Importer informuje o tom, že záznamy s číslem titulu CISLO_TITULU právě podlehnou redukci.

Případ pro titul CISLO_TITULU a VS CISLO_VS existuje a bude celý vymazán.

Importer našel spis v systému a celý ho smaže.

Případ pro titul CISLO_TITULU bude založen pod číslem CISLO_SPISU.

Importer založí spis s číslem titulu CISLO_TITULU do systému pod číslem spisu CISLO_SPISU.

Případ pro titul CISLO_TITULU a VS CISLO_VS nemá vyplněný titul nebo číslo nebude importován.

Importer narazil na spis, který nemá vyplněno číslo titulu a vs, proto tento spis importovat nebude.

Případ pro titul CISLO_TITULU : založení financí.

Importer informuje o tom, že založí finance pro spis s číslem titulu CISLO_TITULU.

Případ pro titul CISLO_TITULU : založení titulu.

Importer informuje o tom, že založí exekuční titul pro spis s číslem titulu CISLO_TITULU.

Případ pro titul CISLO_TITULU : založení povinného.

Importer informuje o tom, že založí povinného pro spis s číslem titulu CISLO_TITULU.

Případ pro titul CISLO_TITULU : vypnutí účtování paušálem .

Importer informuje o tom, že pro spis s číslem titulu CISLO_TITULU vypne účtování paušálem.

Případ pro titul CISLO_TITULU: založení jistiny CASTKA.

Importer informuje o tom, že pro spis s číslem titulu CISLO_TITULU zakládá jistinu o částce CASTKA.

Případ pro titul CISLO_TITULU: založení úroku

Importer informuje o tom, že pro spis s číslem titulu CISLO_TITULU zakládá úrok REPO sazbou.

Případ pro titul CISLO_TITULU: datum od u úroku je prázdný. Úrok bude ve spisu chybět.

Importer informuje o tom, že pro spis s číslem titulu CISLO_TITULU bude chybět úrok REPO sazbou, protože není u něj vyplněno datum do.

Případ pro titul CISLO_TITULU: nelze převést hodnotu CASTKA na číslo. Finance budou ve spisu chybět.

Importer informuje o tom, že pro spis s číslem titulu CISLO_TITULU budou chybět finance, protože nezvádl převést CASTKA na číslo (částka jistiny).

Případ pro titul CISLO_TITULU: založení VS CISLO_VS.

Importer informuje o tom, že pro spis s číslem titulu CISLO_TITULU zadá do nastavení spisu VS o CISLO_VS.

Případ pro titul CISLO_TITULU: povinný KLIENT_NAZEV nebyl nalezen dle rč RC nebo ičo ICO. Bude založen.

Importer informuje o tom, že pro spis s číslem titulu CISLO_TITULU nenašel povinného v systému a že ho založí.

Případ pro titul CISLO_TITULU: povinný KLIENT_NAZEV byl nalezen dle rč RC nebo ičo ICO.

Importer informuje o tom, že pro spis s číslem titulu CISLO_TITULU našel povinného v systému a že ho předá do spisu.

Případ pro titul CISLO_TITULU: povinný KLIENT_NAZEV byl nalezen dle rč RC

Importer informuje o tom, že pro spis s číslem titulu CISLO_TITULU našel povinného v systému dle rodného čísla.

Případ pro titul CISLO_TITULU: povinný KLIENT_NAZEV byl nalezen dle ičo ICO.

Importer informuje o tom, že pro spis s číslem titulu CISLO_TITULU našel povinného v systému dle ičo.

Našel jsem nejbližší možné číslo pro rok (/ROK). Čísla nových spisů v roce (ROK) se budou tedy počítat od (CELOCISELNE_CISLO_SPISU).

Importer informuje jakým číslem začne číslovat nadcházející spisy v importu.

Číslo posledního spisu HODNOTA v daném roce (ROK) nelze převést na číslo. Spisy se budou tedy počítat od 1.

Importeru se výslednou hodnotu nepodařilo převést na celočíselnou hodnotu.

Nenašel jsem nejbližší možné číslo pro rok (ROK). Číslo posledního spisu v daném roce neobsahuje / nebo je na začátku. Spisy se budou tedy počítat od 1.

Importer díky nesprávnému číslování spisů nedokázal správně vyhodnotit nejbližší nejvyšší číslo.

Nenašel jsem nejbližší možné číslo pro rok ROK. Číslo posledního spisu v daném roce je prázdné. Spisy se budou tedy počítat od 1.

Importer zjistil, že nejvyšší číslo spisů v roce ROK je prázdné.

Nenašel jsem nejbližší možné číslo pro rok (ROK). Spisy se budou tedy počítat od 1.

Importer zjistil, že půjde o první spis v roce ROK.

Zadaný excel neexistuje

Importeru nebyl předán existující Excel.

Excel obsahuje chyby

Excel Validator zjistil nějaké nesrovnalosti při konverzi tabulky z excelu.

Import neproběhl

Importer informuje, že se import neuskutečnil.

Import neproběhl. Excel se nezdařilo správně analyzovat.

Excel Validator zachytil závažné chyby v Excelu (neodpovídá si počet sloupců v Excelu a počet definovaných sloupců v XML. Chybí, přebývá).

Nenalezl jsem důležité soubory obsahující informace o struktuře excelovské tabulky. Import se neprovede.

Impoter nenalezl důležité soubory (XML - definice sloupců Excelu, XSD) potřebné pro konverzi tabulky z Excelu do datové tabulky pro import.