Book Contents

Book Index

Konverze zákaznických úprav

Po převodu nových identifikátorů dochází k masivním změnám ve všech standardních i zákaznických skriptech, sestavách apod. Aby byl přechod na verzi K2 iris co nejhladší, je připraveno několik nástrojů, které zajistí převod změn v těchto oblastech pro novou verzi. V následujícím textu jsou popsány nástroje, které slouží ke konverzi implementovaných úprav a formulářů k těmto úpravám.

Princip a spuštění konverze

Ke konverzi dochází při spuštění speciální funkce. Ta zajistí konverzi zákaznických úprav ve skriptech, sestavách, DFM formulářích, univerzálních formulářích a také rozšíření vytvořená v Návrháři objektů. Výstup se ukládá do adresáře \SupportedFiles\Convert2023\..., kde jsou soubory uloženy ve struktuře, v jaké byly nalezeny v IS K2. Tedy pokud se původní soubor nachází v databázi, pak je výstup v ~DB~\DBNAME\Special, pokud byl uložen v souborovém systému, je výstup v adresáři ~ABS~\.., kde … udává stejnou adresářovou strukturu, jako ve výchozím umístění.

Vše, co bylo popsáno, pak funguje pouze za předpokladu, že je IS K2 spuštěna se speciálním parametrem, viz dále.

Spuštění konverze je možné provést dvěma způsoby.

Testovací konverze - manuální spuštění

Tento režim je určen spíše pro otestování konverze, případně k dodatečné konverzi. Je to z toho důvodu, že konverze probíhá na verzi K2 ori.05 a výstupní soubory jsou určeny pro verzi K2 iris.

Pro aktivaci konverzního mechanismu je potřeba spustit K2 ori.05 s parametrem ConvertToNextVersion=2023. Samotnou konverzi pak provede funkce Export speciálních skriptů přeložených pro následující verzi s číslem 791.

Automatická konverze - přechod na novou verzi

Tento režim se využívá při samotné reinstalaci v automatickém režimu. Před výměnou souborů z verze K2 ori.05 na verzi K2 iris, spustí instalátor K2 výše zmíněnou funkci se všemi náležitostmi.

Po úspěšné konverzi následuje druhý krok, který se provádí již na nových souborech verze K2 iris. Jedná se o spuštění funkce Administrátor – Import konvertovaných zdrojů s číslem 790, která vrátí všechny zkonvertované položky zpět do původního umístění. K tomu, aby se vše importovalo do původního místa, se využije vzniklá adresářová struktura ze složky SupportedFiles\Convert2023\.

Po tomto kroku jsou na verzi K2 iris zkonvertovány skripty a sestavy včetně jejich importu zpět do úložiště IS K2.

Upozornění

Zkonvertované sestavy a skripty přestávají být na verzi K2 ori funkční. Již obsahují identifikátory, které jsou platné pro verzi K2 iris.

Upozornění

Nutným předpokladem správné konverze skriptů a sestav je jejich přeložitelnost na verzi K2 ori.05.

Upozornění

V případě, že dojde při reinstalaci k chybě, opakovaná reinstalace probíhá v režimu přebrání instalačního adresáře a zároveň v adresáři neexistuje spustitelná K2 verze K2 ori.05, nedojde ke konverzi zákaznických úprav pro verzi K2 iris! Doporučujeme nejprve provést přebrání instalace formou reinstalace na verzi K2 ori.05 a až následně spustit reinstalaci na verzi K2 iris.

Poznámka

V případě, že v průběhu konverze není potřeba objekt měnit, tento se neexportuje do výstupní složky.

Konverze zákaznických AM sestav a K2 skriptů

Při konverzi zákaznických skriptů a sestav dochází k nahrazení změněných identifikátorů přímo ve zdrojových souborech jednotlivých komponent. Konkrétně k tomu dochází při pokusu o kompilaci implementace sestavy nebo skriptu (soubor) v IS K2. Pokud je v pořádku a kompilace je úspěšná, pak se zároveň nahradí všechny identifikátory.

Upozornění

Protože konverze skriptů a sestav se provádí při kompilaci jejich implementace, musí být objekt v dané verzi IS K2 přeložitelný. Pokud není, pak se ignoruje.

Co se automaticky konvertuje

Pokud projde K2 skript nebo sestava konverzí, převedou se změněné názvy property, metod a konstant zveřejněných z jádra IS K2 do K2 skriptu.

Ukázka konvertovaného K2 skriptu je na obrázku níže. Konkrétně použití metody na verzi K2 ori.05 AktIndexDM a DoGetKeyDM a po přejmenování na verzi K2 siri CurrentIndex a DoGetKey.

pic_7469.png

Obr. Konvertovaný skript

Částečně konvertovány identifikátory

Pokud kompilátor nedokáže nahradit identifikátory, doplní na daný řádek informaci s důvodem, proč se takto rozhodnul. Zároveň je do adresáře SupportFiles\Convert2023 zapíše soubor ScriptStatistics.txt, který obsahuje souhrnné informace o tom, co se nepovedlo vyřešit. V tomto souboru je také zapsán počet výskytů těchto metod včetně procentuální úspěšnosti náhrady.

Následující tabulka shrnuje všechny možné důvody nenahrazení:

Popis ve skriptu

Význam

{2023 NoEnglishName}

field nemá anglický překlad

{2023 NoFieldInfo}

field v metadatech neexistuje

{2023 BadPath}

cesta nebyla v metadatech dohledatelná

{2023 TMFile}

jedná se o netypovou třídu TMFile, nejde poznat, zda je pole standardní nebo speciální

{2023 TDataM}

jedná se o netypovou třídu TDataM, nejde poznat, zda je pole standardní nebo speciální

{2023 UnknownType}

jedná se o jinou netypovou třídu, nejde poznat, zda je pole standardní nebo speciální

{2023 NoClass}

funkce/metoda nemá definovanou třídu, pole nelze vyhodnotit

{2023 NoConstant}

funkce/metoda obsahuje proměnou, kterou nelze při překladu vyhodnotit – například spuštění SQL dotazu

Co nelze automaticky konvertovat

Část, kterou není možné vůbec konvertovat, jsou takové property či funkce, které byly úplně odstraněny. Při pokusu o jejich nahrazení, by tak mohlo dojít k chybné náhradě a k poškození skriptu nebo sestavy. Jak může K2 pomoci s přepisem těchto částí je popsáno dále v textu v posledních kapitolách.

Konverze zákaznických formulářů (standardních/univerzálních)

Univerzální

Při konverzi zákaznických univerzálních formulářů dochází k nahrazení použitých identifikátorů, které byly změněny. Mohou se nacházet na komponentách, které zobrazují data, případně v místech, kde se na základě dat vyhodnocuje například jejich zobrazení. Konverzí proběhnou všechny vlastní formuláře a také modifikace standardních formulářů.

Formuláře se také exportují do výše zmíněné složky a následným exportem se vrací zpět do IS K2.

Konverze zákaznických úprav v Návrháři objektů

Při konverzi rozšíření v Návrháři objektů dochází k nahrazení použitých identifikátorů, které byly změněny. Mohou se nacházet v samotné definici, v hodnotách vlastností jednotlivých datových modulů, nebo v samotném skriptu, který je v modulu implementován.

Konvertovaná definice rozšíření se ukládá do výše zmíněné složky do adresáře ServisW/NO/WaitingRoom.

Následným exportem se vrací zpět do IS K2, ale pouze jako definice rozšíření. Běhové soubory z adresáře extensions se zatím nekonvertují. Posledním krokem je instalace konvertovaných definic Návrháře objektů. Pokud proběhne úspěšně, vznikne adresář extensions, ve kterém budou nové běhové soubory Návrháře objektů pro IS K2. V případě, že dojde při instalaci k chybě, většinou se jedná o složitější projekty, které jsou na sobě závislé, je nutné instalaci postupně dořešit až po opravě nepřeložitelných skriptů, viz kapitola akce po reinstalaci.

Upozornění

V případě, že v IS K2 nejsou na sobě závislé projekty z Návrháře objektů, většinou instalace projde bez problémů. Pokud některé závislé rozšíření obsahuje nepřeložitelný skript, není možné instalaci rozšíření dokončit bez opravy tohoto skriptu.

Poznámka

Zde platí stejné pravidlo, co lze a nelze zkonvertovat, viz Konverze zákaznických AM sestav a K2 skriptů.