Použití validačních funkcí

Pro snazší přechod ze starších verzí systému lze použít validační a vyhledávací funkce, které se spouští v Administraci → Servisní konzole. Funkce prohledávají výpočty, dynamické podmínky, dynamické řádky, tiskové šablony (Case Overview) a globální skripty, hledají nepodporovaný kód a část nálezů umí opravit automaticky.

Způsob volání se liší podle verze TAS:

Verze TAS

Kde jsou funkce

Prefix volání

5.7 (od 5.7.33)

Nativně v systému

sys.

5.17 – 5.19

Plugin Template Validation verze 1.x

validation. (stejné názvy funkcí jako v 5.7)

Od verze 5.17 funkce nejsou součástí jádra systému. Plugin Template Validation musí být na prostředí nainstalovaný a aktivní, jinak objekt validation v Servisní konzoli neexistuje.

Verze 5.7 – nativní funkce sys.

Dostupné od verze 5.7.33.

Nalezení použití globálních skriptů v rámci výpočtů

Pro nalezení využití konkrétního skriptu z globálních skriptů v rámci výpočtů lze použít funkce níže.

sys.findScriptImportstInCalculations();

Prázdný první parametr vyhledává ve všech šablonách na prostředí.

sys.findScriptImportstInCalculations(1626);

S uvedeným ID šablony vyhledává a vrací úkoly pouze z dané šablony.

Ve výsledku se lze poté prokliknout přímo na konkrétní šablonu nebo úkol.

Nalezení konkrétní funkce nebo textu v rámci globálních skriptů

sys.findInScripts('result.data.split');

Dohledá, kde je použit zápis result.data.split.

Alternativně lze použít i regulární výraz:

sys.findInScripts(/\bvar\s+approverArray\s*=\s*JSON\.parse\s*\(/);
Do AI stačí zadat, že požadujete zápis RegExp pro funkci sys.findInScripts().

Nalezení konkrétní funkce nebo textu v rámci výpočtů

sys.findInCalculations('sortedTaskActual', 27);

Vyhledá použití sortedTaskActual v rámci šablony s ID 27.

sys.findInCalculations('sortedTaskActual');

Bez specifikace šablony vyhledá použití sortedTaskActual ve všech šablonách.

Alternativně lze použít i regulární výraz:

sys.findInCalculations(/\bvar\s+approverArray\s*=\s*JSON\.parse\s*\(/);
Do AI stačí zadat, že požadujete zápis RegExp pro funkci sys.findInCalculations().

Nalezení konkrétní funkce nebo textu v rámci dynamických podmínek a dynamických řádků

sys.findInConditions('test');

Vyhledá použití řetězce test ve všech dynamických podmínkách a dynamických řádcích (skriptu).

Nalezení nepodporovaných funkcí (lodash a další zaniklé funkce)

Podrobný popis upgradu lodash je k nalezení zde. Tato kontrola je dostupná již ve verzi 5.3.

sys.validateTemplate(1626);

Prohledá konkrétní šablonu a vrátí všechny výskyty nepodporovaných funkcí. Prohledává:

  • výpočty,
  • dynamické podmínky,
  • dynamické řádky,
  • tiskové šablony.
Vyhledává i případné rozbité skripty. Pro jejich automatickou opravu lze použít funkci sys.fixTemplateIssues();
sys.validateTemplates();

Prohledá všechny šablony stejným způsobem jako sys.validateTemplate().

sys.validateGlobalScripts();

Provede kontrolu globálních skriptů (Výpočty, CO React, CO).

Automatické nahrazení nepodporovaných Lodash funkcí

sys.replaceDeprecatedLodashUsage();

Pokud je parametr prázdný, provede nahrazení ve všech šablonách. Pokud je vyplněno ID šablony, provede nahrazení pouze v ní. Nahrazuje ve výpočtech, dynamických podmínkách, dynamických řádcích i ve skriptech. Automaticky přepíše i nepodporovaný zápis _.find (viz Lodash Upgrade).

Funkce zapisuje změny přímo do šablon. Před spuštěním na produkčním prostředí si šablony exportujte.

Verze 5.17 – 5.19 – plugin Template Validation 1.x

Funkce se přesunuly do pluginu Template Validation. Názvy a parametry zůstávají stejné jako ve verzi 5.7, jen se místo sys. volají přes validation., např.:

validation.validateTemplate(1626);
validation.findInCalculations('sortedTaskActual', 27);
validation.replaceDeprecatedLodashUsage();

Všechny funkce z verze 5.7 fungují stejně. Plugin 1.x navíc přidává:

Funkce

Popis

validation.findTextInTemplates('text')

Fulltextové hledání napříč všemi šablonami.

validation.findTextInTemplate(1626, 'text')

Fulltextové hledání v jedné šabloně.

validation.findFunctionInTemplates('nazevFunkce')

Vyhledá použití konkrétní funkce ve všech šablonách.

validation.findFunctionInTemplate(1626, 'nazevFunkce')

Vyhledá použití konkrétní funkce v jedné šabloně.

validation.findFunctionInScripts('nazevFunkce')

Vyhledá použití konkrétní funkce v globálních skriptech.

validation.validateMuiGrid()

Od verze 5.18.2. Zkontroluje všechny šablony a globální skripty na zastaralé MUI Grid v6 vlastnosti (xs, sm, md, lg, xl, xsOffset, item, zeroMinWidth).

validation.fixMuiGridProps(1626)

Od verze 5.18.2. Opraví zastaralé MUI Grid vlastnosti. Bez parametru ve všech šablonách a globálních skriptech.

validation.checkAsyncAwaitRetranspilationNeeded(1626)

Od verze 5.18.14. Vypíše výpočty a globální skripty, které je potřeba znovu transpilovat. Bez parametru kontroluje všechny šablony i skripty. K samotné retranspilaci slouží sys.retranspileCalculationsByProcessId() a sys.retranspileGlobalScripts().

Kontrola před upgradem – validation.checkMigration()

validation.checkMigration();

Prohledá celý systém včetně globálních skriptů a vrátí souhrnnou tabulku nálezů seskupených podle pravidla. U každého pravidla je uvedena závažnost, počet výskytů a zda jde opravit automaticky.

validation.checkMigration(1626);

Zkontroluje pouze šablonu s ID 1626.

Závažnost nálezů:

Závažnost

Význam

error

Nefunguje už nyní – funkce nebo API v systému neexistuje.

warning

Kód běží, ale chová se chybně nebo jsou data nekonzistentní.

deprecated

Zatím funguje, ale je naplánováno odstranění. Ve výpisu je uvedeno, do které verze bude fungovat. Po upgradu na tuto verzi se nález automaticky změní na error.

info

Kosmetický nález.

Detail pravidla – validation.checkRule()

ID pravidla (ruleId) se zobrazuje ve výpisu validation.checkMigration().

validation.checkRule('lodash.pluck');
validation.checkRule('lodash.pluck', 1626);

Vypíše všechna konkrétní místa, kde se pravidlo uplatnilo, s odkazem na šablonu, úkol nebo skript.

Vyhledávání – validation.find()

Nahrazuje všechny dřívější vyhledávací funkce (findInScripts, findInCalculations, findInConditions, findTextInTemplate(s), findFunctionInTemplate(s), findFunctionInScripts).

validation.find('result.data.split');

Vyhledá text ve všech šablonách a globálních skriptech.

validation.find('sortedTaskActual', { tProcId: 27 });

Vyhledá text pouze v šabloně s ID 27.

validation.find(/\bvar\s+approverArray\s*=\s*JSON\.parse\s*\(/);

Hledaný výraz může být i regulární výraz.

Do AI stačí zadat, že požadujete zápis RegExp pro funkci validation.find().

Volitelný druhý parametr options:

Parametr

Popis

tProcId

ID šablony. Bez něj se prohledává celý systém včetně globálních skriptů.

mode

'text' (výchozí) – libovolný výskyt textu,

'call' – pouze místa, kde se funkce volá,

'definition' – pouze místa, kde je funkce definovaná.

kinds

Omezí hledání na vybrané typy kódu: 'taskCalculation' (výpočty), 'taskCondition' (dynamické podmínky), 'dynamicRow' (dynamické řádky), 'caseOverview' (Case Overview), 'globalScript' (globální skripty).

caseSensitive

true pro rozlišování velkých a malých písmen.

Příklady:
validation.find('getApprovers', { mode: 'definition' }); – kde je funkce getApprovers definovaná,
validation.find('getApprovers', { mode: 'call', kinds: ['taskCalculation'] }); – kde se volá ve výpočtech,
validation.find('test', { kinds: ['taskCondition', 'dynamicRow'] }); – obdoba dřívějšího findInConditions('test').

Automatická oprava – validation.fix()

validation.fix('lodash.find-3arg');
validation.fix('lodash.find-3arg', 1626);

Opraví nálezy daného pravidla, zapíše změny a vypíše rozdíl (diff) každé úpravy. Opravit lze jen pravidla, která mají ve výpisu validation.checkMigration() vyplněný sloupec s opravou. U každého opravitelného pravidla je uvedena spolehlivost opravy:

  • safe – oprava je bezpečná,
  • review – opravu je vhodné zkontrolovat,
  • bestEffort – oprava je nejlepší odhad, výsledek je nutné zkontrolovat.

Automaticky opravitelná pravidla:

Pravidlo

Oprava

lodash.find-3arg

Přepíše _.find(coll, 'prop', value) na _.find(coll, { prop: value }). Spolehlivost review.

mui.grid.deprecated-props

Převede zastaralé MUI Grid v6 vlastnosti na syntaxi v7 v Case Overview a globálních skriptech. Spolehlivost safe.

data.append-scripts-format

Opraví chybně uložený seznam importovaných globálních skriptů ve výpočtech. Spolehlivost safe.

api.proc.iproc-case-status-attribute

Přepíše práci s atributem IPROC_CASE_STATUS na proc.setCaseStatus() / proc.getCaseStatus(). Spolehlivost review.

Funkce zapisuje změny přímo do šablon a skriptů. Před spuštěním na produkčním prostředí si šablony exportujte a výsledek oprav s úrovní review a bestEffort zkontrolujte.

Použití globálních skriptů ve výpočtech – validation.findScriptImports()

validation.findScriptImports();
validation.findScriptImports(1626);

Vypíše, které globální skripty jednotlivé výpočty úkolů importují. Bez parametru ve všech šablonách, s ID šablony pouze v ní.

Co validace kontroluje

  • Nepodporované funkce Lodash – např. _.pluck, _.where, _.findWhere, _.first, _.indexBy, _.pairs, _.padLeft, _.trimLeft, _.sortByOrder a zápis _.find se třemi parametry. Výpis vždy uvádí náhradu.
  • Odstraněné funkce API:
    • lib.storeCsvFromDms(), lib.getAresData(), lib.setList(),
    • lib.getPublicKey(), lib.getSecret(), lib.setSecret() – nahrazuje vault.get(),
    • lib.getCertificatePath() a pevné cesty k adresáři certifikátů – nahrazuje lib.getCertificate(certName),
    • všechny funkce curl.* – pro REST volání použijte AxiosApi, pro FTP/SFTP FtpApi,
    • docx.generate() a docx.docxTemplater() – nahrazuje docxGenerator.generate(),
    • metoda POST pro /dms/download/:id a /dms/archived/download/:id – použijte GET.
  • Zastaralé funkce – lib.dmsPdfFileToText() (nahrazuje lib.pdfToText()), IPROC_CASE_STATUS (nahrazuje proc.setCaseStatus() / proc.getCaseStatus(), pro jiný případ lib.changeCaseStatus()).
  • Veřejné URL souborů pod /assets/, které již nejsou podporovány.
  • Zastaralé vlastnosti MUI Grid v6 v Case Overview a globálních skriptech.
  • Výpočty a globální skripty k retranspilaci – retranspilaci provedete přes sys.retranspileCalculationsByProcessId() nebo sys.retranspileGlobalScripts().
  • Výpočty importující neexistující globální skript.
  • Úkoly typu Pozvánka – tento typ úkolu byl odstraněn, úkoly je potřeba odstranit nebo nahradit.
  • Historické proměnné typu B – tento typ proměnné byl odstraněn.

Převodní tabulka z pluginu 1.x na 2.x

Původní funkce (5.7 sys. / plugin 1.x validation.)

Plugin 2.x (od 5.20.8)

validateTemplate(tProcId)

validation.checkMigration(tProcId)

validateTemplates(), validateGlobalScripts(), validateMuiGrid(), checkAsyncAwaitRetranspilationNeeded()

validation.checkMigration()

findInScripts(term)

validation.find(term, { kinds: ['globalScript'] })

findInCalculations(term, tProcId)

validation.find(term, { tProcId, kinds: ['taskCalculation'] })

findInConditions(term, tProcId)

validation.find(term, { tProcId, kinds: ['taskCondition', 'dynamicRow'] })

findTextInTemplates(text), findTextInTemplate(tProcId, text)

validation.find(text, { tProcId })

findFunctionInTemplates(name), findFunctionInTemplate(tProcId, name), findFunctionInScripts(name)

validation.find(name, { tProcId, mode: 'call' }) nebo mode: 'definition'

replaceDeprecatedLodashUsage(tProcId)

validation.fix('lodash.find-3arg', tProcId)

fixMuiGridProps(tProcId)

validation.fix('mui.grid.deprecated-props', tProcId)

fixTemplateIssues(tProcId)

validation.fix('data.append-scripts-format', tProcId)

findScriptImportstInCalculations(tProcId)

validation.findScriptImports(tProcId)

Nápověda k aktuálním metodám se zobrazuje přímo v editoru Servisní konzole při psaní validation.

Frantisek Brych Updated by Frantisek Brych

Best Practices upgrade z TAS 4 na TAS 5

Contact

Team assistant (opens in a new tab)

Powered by HelpDocs (opens in a new tab)