Konverze zákaznických struktur a rozšíření standardních tabulek
Jednou z velkých změn ve verzi K2 gaia 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á.
Konverze databázových tabulek z K2 skripty
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.
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. 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. Všechny SQL dotazy, které se následně použijí k reinstalaci, jsou k dispozici ve složce instalace K2\Sql.
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.
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. 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.