==== Činnost 9. 6.18 - Definice exportů a importů ==== Obecná struktura pro uložení definic exportů z ESO9 a importů do ESO9.\\ === Definice exportů a importů === Obecná datová struktura pro uložení definic exportů z ESO9 a importů do ESO9.\\ Připraveno pro postupné sjednocování práce s exporty a importy. Je použitelné pouze v PROFI aplikacích.\\ \\ Činnost "Definice importů a exportů" slouží správci k definicím a testům.\\ Ve formách, kde se bude používat, se zapojí formulář odvozený od Nastaveni\ExpImpDef.htm tak, že se zobrazí pouze definice určitého názvu. Zobrazení slave forem lze také omezit.\\ \\ Forma "Realizované exporty/importy" slouží jako historie provedených akcí, včetně případných chybových hlášení.\\ Do ní lze zapojit i další výkonné akce (podle způsobu zapojení v jednotlivých činnostech).\\ === Stav zapojení === Zapojen Import z XLS s ukládáním obsahu sešitů do databáze a následným zpracováním importu.\\ Zapojen Import z TXT a CSV s uložením obsahu do databáze.\\ K funkčnosti je třeba:\\ - nainstalovat klientský doplněk ExpImpAddin na každou stanici, kde se používá, \\ - profi procedury pro zpracování importovaných záložek (zpravidla pro uložení do cílových tabulek).\\ === Definice: Typ a druh === Zatím funkční pouze kombinace: Typ: import, Druh XLS, Uložit detail: jako CSV. Typ: import, Druh CSV, Uložit detail: jako CSV (dostupné pouze v obecném klientovi). Typ: import, Druh TXT, Uložit detail: jako CSV. Stav definice: Je-li povolená, lze spustit. Je-li zakázaná, je buď připravovaná nebo již nepoužívaná, ale definice se uchovává kvůli prohlížení historie importů/exportů. Záhlaví řádku: Pro importy z CSV a XLS. 0 - importní soubor neobsahuje řádek záhlaví číslo - je číslem řádku záhlaví, číslováno od 1. Tento řádek se naimportuje do položky Záhlaví v Detailu importu. Od dalšího řádku se importují data. Typ oddělovače pro import z XLS, možnosti: - Výchozí: výchozí nastavení Excelu a .NET FW. Toto je zpravidla anglické, oddělovač čárka. - Regionální nastavení: podle regionálního nastavení Windows, oddělovač seznamů. V českém prostředí bývá zpravidla středník. - Vlastní: hodnota podle parametru „Vlastní oddělovač“. Vlastní oddělovač – použije se jen v případě Typ oddělovače = Vlastní. Použije se v případě importu z XLS. U voleb „Výchozí / Regionální“ probíhá import pomocí metody „Ulož jako CSV“ z Excelu. V případě volby „Vlastní“ probíhá skládání výstupu po jednotlivých buňkách a v případě velkých importovaných souborů může být řádově pomalejší. Použije se i v případě importu z TXT, ale jen pro první oddělovač za číslem označujícím pořadí řádku. Ostatní oddělovače se přímo převezmou z TXT/CSV souboru – je tedy potřeba oddělovač v CSV a parametru sladit. Uložit do DOC databáze: zatím nezapojeno.\\ === Definice: Adresář a soubor (pouze klient pro Internet Explorer) === Do definice můžete zadat obvyklý adresář, kde očekáváte importní soubor. \\ Celé jméno importního souboru nebo jeho částečná název pomocí * a ?.\\ \\ Maska - pokud není vyplněna (doporučujeme) použije se obvyklá maska pro typ importu.\\ Pokud se vyplní, je třeba dodržovat zásady pro masku dialogů v .NET studiu (po dvojicí veřejná a neveřejná část oddělená |). Například pro import z XLS: "Excel (*.xls)|*.xls*|Vše (*.*)|*.*"\\ === Definice: Import a procedura === XLS: importovat listy: - pokud necháte prázdné, importují se všechny listy z XLS souboru - pokud vyjmenujete názvy listů oddělené středníkem, importují se jen uvedené - můžete vyjmenovat jen pořadí listů, číslované od 1 (lze dokonce kombinovat pořadí a názvy) Po importu spustit proceduru - Internet Explorer: - pokud vyplníte, spustí klientský doplněk proceduru uvedeného jména ihned po provedení importu. Předá se jí povinný parametr mf_IDEXPIMP naplněný ID nově založeného "Realizovaného importu". Tato procedura provede vlastní zpracování dat z tabulky Detail (EXPIMPS). - pokud před název procedury uvedete "ExpImp.", vyvolá se procedura přímo nad uvedenou formou. V tomto případě se se jí předává parametr IDEXPIMP. - za název procedury můžete uvést seznam parametrů jako při volání procedury na tlačítko. Například: spMojeProcedura;TimeOut=1200 Po importu spustit proceduru - obecný klient: - pokud vyplníte, spustí se po provedení importu proceduru se zadaným jménem - procedura může mít na vstupu pouze následující parametry: - IDEXPIMP, MF_IDEXPIMP - ID aktuálně provedeného importu - IDEXPIMPDEF - ID aktuální definice importu - IDLOGUSER - ID aktuálně přihlášeného uživatele - MF_PARAMS - XML řetězec nahrazující možnost předat do procedury parametry z aktuální formy (viz Internet Explorer). XML řetězec může obsahovat libovolné další parametry, které je třeba do procedury předat. - procedura může mít definovaný vlastní timeout v aplikačních parametrech ve skupině TIMEOUT (pokud jej nemá, použije se standardní TO = 360sec).\\ === Akce: Test importu (pouze klient pro Internet Explorer) === Akce na tlačítko "Test importu" vyvolá klientský doplněk ExpImpAddin.\\ Zobrazí se dialog, který uživatele provede importem.\\ Import z vybraného XLS souboru zapisuje do tabulek "Realizované importy" a "Detail".\\ === Akce: Proveď import (pouze obecný klient) === Spustí vlastní import a zpracování importovaného souboru. Před spuštěním importu je nutné načíst či zadat cestu k importovanému souboru do položky "XLS soubor".\\ === Formulář: Realizované exporty / importy === Tabulka EXPIMP slouží jako historie provedených akcí, včetně případných chybových hlášení.\\ Do ní lze zapojit i další výkonné akce (podle způsobu zapojení v jednotlivých činnostech).\\ \\ Začátek, Konec: datum a čas průběhu akce.\\ Spustil uživatel: kód a jméno uživatele, který akci provedl.\\ Spuštěno z počítače: jméno počítače, za kterého bylo spuštěno.\\ Import z adresáře: adresář, ze kterého byl import proveden.\\ Importovaný soubor: jméno souboru, který byl importován.\\ Stav zpracování: stav importu nebo následného zpracování importní procedurou.\\ \\ Výsledek/chyba: průběh zpracování, detaily chyb a další informace.\\ === Formulář: Detail === Naplní se pokud je v definici nastaveno Založit detail.\\ \\ Pořadí listu v XLS souboru.\\ Název záložky: Název listu v sešitu.\\ Název záložky ACSII: Totéž jako předchozí položka, s odstraněnou diakritikou a podtržítka místo mezer. Slouží k lepší manipulaci s SQL proceduře.\\ \\ Záhlaví: seznam sloupců záhlaví, oddělené čárkou. Začíná pořadím řádku.\\ \\ Obsah: obsah datových řádků v dané záložce, oddělené čárkou. Začíná pořadím řádku.\\ Nad tímto obsahem vyvoláte vlastní importní proceduru pro zpracování dat.\\ Z důvodu optimalizace je v datovém zdroji zobrazeno pouze prvních 8000 znaků.\\ \\