Book Contents

Book Index

Konverze zákaznických struktur a rozšíření standardních tabulek

Jednou z velkých změn popsaných na začátku tohoto dokumentu je podpora unicode v IS K2. Protože standard IS K2 je kompletně převeden na unicode, je žádoucí, aby všechna rozšíření a speciální tabulky, které ukládají data z IS K2, měly také své struktury převedeny na unicode. Jedná se o rozšíření standardních tabulek pomocí nástroje rozšíření souborových modulů a také o tabulky, které jsou vytvářené pomocí skriptu – xFile, AdoFile apod. V případě, že pole v těchto tabulkách zůstanou jako ansistring, při ukládání unicodových dat dojde k jejich poškození a ta nebudou dále čitelná. Jakým způsobem proběhne konverze a co je potřeba vyřešit následně je popsáno v dalším textu.

Book Contents

Book Index

Konverze databázových tabulek z K2 skriptu

Z K2 skriptu je možné vytvářet vlastní databázové tabulky, například typu AdoFile. Pokud je v takové tabulce vytvořeno pole, které je typu string, do verze K2 luna včetně, jsou tato pole vytvářena jako ansistring, tedy nepodporující unicode. Od verze K2 gaia jsou tato pole vnitřně interpretována jako widestring, tedy s podporou unicode. Aby vše fungovalo dále správně, je nutné tato pole konvertovat na unicode i na úrovni databáze.

pic_5475.png

Obr. Ukázka AdoFile se string polem ve skriptu

Aby vše fungovalo správně, je před konverzí databáze spuštěna aplikace – K2InstallerHelperCmd, která připraví optimalizovaný SQL skript pro všechny databázové tabulky ve všech databázích patřících reinstalované K2. Aplikace projde všechny existující tabulky a v případě, že existuje ansistring pole, vygeneruje optimalizovaný SQL dotaz pro konverzi na unicode variantu. V rámci této konverze se ruší a znovu vytváří všechny indexy, které obsahují konvertovaná pole. Průběh vytváření SQL dotazů je vidět v samotné aplikaci. Výstupem aplikace jsou SQL soubory, které obsahují všechny potřebné skripty. Pro každou databázi vzniká samostatný soubor, například pro mandanta DEMO vznikne pro MS SQL variantu soubor K2_D2021_Unicode_DEMO.sql, pro Oracle variantu K2_D2021Ora_Unicode_DEMO.sql. Zároveň pro každou databázi vzniká log soubor se souhrnem, co se všechno generovalo, například K2_D2021_UnicodeLog_DEMO.txt. Samotné aplikování SQL skriptů pak provádí aplikace K2_sqlrs, která slouží ke konverzi databázových struktur IS K2. Nejprve se spustí vygenerované SQL skripty a následně SQL skripty dodané instalací IS K2. Všechny SQL dotazy, které se následně použijí k reinstalaci, jsou k dispozici ve složce instalace K2\Sql.

V případě, že je nutné, aby pole zůstalo typu ansistring, musí se v definic AdoFile ve skriptu místo string uvést ansistring, což je nový typ, který je zavedený od verze K2 gaia. Tyto situace mohou nastat například v případě, že jsou tabulky napojeny na externí software, který neumí zpracovávat unicodová pole. O tomto ještě pojednávají poslední kapitoly tohoto textu.

pic_5476.png

Obr. Generování SQL dotazů pro konverzi na unicode - K2InstallerHelperCmd

Upozornění

Během reinstalace musí dojít k vygenerování a spuštění konverzních skriptů. Bez této konverze není možné pokračovat v reinstalaci dále. Pokud by konverze neproběhla, data ukládaná do těchto polí by pravděpodobně nebyla čitelná.

Upozornění

Je vhodné před reinstalací zjistit, zda existují tabulky, které vyžadují, aby pole typu string zůstala jako ansistring a konverze na nich neproběhla. Tyto tabulky pak lze zapsat do souboru k ignorování při konverzi, viz kapitola Předinstalační příprava.

Poznámka

Konverze probíhá nad všemi databázemi mandantů včetně databáze Conf.

Book Contents

Book Index

Konverze rozšíření souborových modulů

Rozšíření souborových modulů IS K2 slouží k rozšiřování standardních databázových tabulek o nová pole. K dispozici je v menu Správce/Systém/Rozšíření souborových modulů. Definice rozšíření je vždy uložená v adresáři mandanta v souboru TableMod.xml.

Konverze zajistí změnu všech polí, která jsou přidána skrz rozšíření souborových modulů a jsou typu ftString. Je rozdělena na dvě části. První databázová, proběhne v rámci konverze databázových struktur, viz kapitola – aplikace „K2InstallerHelperCmd“. V druhé části se pak provede konverze definičního souboru TableMod.xml z typu ftString na ftWideString.

Poznámka

Konverze probíhá nad všemi databázemi mandantů včetně databáze Conf.