Upgrade TAS 5.19 na 5.21 – průvodce pro konzultanty

Co konzultant dělá při upgradu zákaznické instance z 5.19 na 5.21: kontrola kódu šablon v servisní konzoli a přehled změn, které se zákazníka mohou týkat.

Instalaci, migraci databáze a nové procesy řeší DevOps podle článku Upgrade TAS 5.19 na 5.21 – průvodce pro DevOps. Konzultant přichází na řadu ve chvíli, kdy instance na 5.21 běží.

Shrnutí

Po upgradu na 5.21 musí konzultant u každého zákazníka udělat jedinou věc: spustit v servisní konzoli validation.checkMigration() a opravit, co vypíše. Všechno ostatní v tomto článku se vás týká, jen když zákazník danou věc používá. U každé změny proto najdete řádek Zajímá mě, pokud… a když na vás nesedí, klidně ji přeskočte.

Kontrola nejde spustit předem na 5.19. Plugin Template validation ve verzi pro 5.19 nová pravidla neobsahuje, ta jsou až ve verzi 2.5.0, která je součástí 5.21. Proto doporučujeme nejdřív generálku na kopii produkční databáze.

Krok za krokem: validation.checkMigration()

Kontrola projde kód všech šablon a globálních skriptů za několik sekund a nic nemění. Spouští ji administrátor.

1. Otevřete servisní konzoli

V levém menu klikněte na Administrace (1) a v okně vyberte Servisní konzole (2).

2. Spusťte kontrolu celého systému

Do editoru napište validation.checkMigration(), zaškrtnuté pole return: nechte a klikněte na Odeslat.

Nahoru se vypíše, kolik kódu se prošlo a kolik problémů našlo, a pod tím tabulka podle pravidel:

Sloupec

Co znamená

rule

ID pravidla. To pak předáváte do checkRule() a fix().

severity

error = nefunguje, opravit před spuštěním pro uživatele. warning = běží, ale chová se špatně. deprecated = zatím funguje, v budoucí verzi zmizí.

count

Kolikrát se problém našel

fix

auto (safe) = automatická oprava je bezpečná. auto (review) = automatická oprava existuje, ale výsledek zkontrolujte. - = opravit ručně.

what

Co se změnilo a čím zápis nahradit

Na konci výpisu konzole sama nabídne další krok (next:).

3. Najděte konkrétní místa

validation.checkRule('api.proc.iproc-case-status-attribute') vypíše každý výskyt: šablonu, typ místa (výpočet úkolu, strom podmínek…), konkrétní úkol nebo podmínku a detail. Název šablony a úkolu jsou odkazy, které otevřou přímo výpočet úkolu. Odkazy se otevírají ve stejné záložce, takže je otevírejte přes prostřední tlačítko myši.

Výpis ukazuje nejvýš 200 řádků. U většího počtu pracujte po šablonách: číslo šablony (TPROC_ID z adresy šablony) přidejte jako další parametr, např. validation.checkMigration(61) nebo validation.checkRule('api.proc.iproc-case-status-attribute', 61).

U podmínek na stav případu detail přímo řekne, co opravit, např. „-9 EQUALS 'Hotovo' is the name of case status 493 - compare with 493“.

4. Opravte

Pravidla s automatickou opravou opraví validation.fix('<id pravidla>'). Příkaz kód přepíše a vypíše každou změnu.

  • Nejdřív to zkuste na jedné šabloně: validation.fix('api.proc.iproc-case-status-attribute', 61), projděte vypsané změny a šablonu proklikejte. Teprve potom spusťte opravu pro celý systém.
  • Oprava omezená na šablonu nikdy nesahá na globální skripty. Ty opraví jen volání bez čísla šablony.
  • Opravu dělejte nejdřív na generálce. Před opravou na produkci mějte exporty šablon.
  • Pravidla bez automatické opravy opravte ručně podle sloupce what.

5. Zopakujte kontrolu

Spusťte validation.checkMigration() znovu. Hotovo je, když ve výpisu nezůstane žádná chyba (error).

Pravidla, která přináší 5.21

Pravidlo

Oprava

Popis změny v sekci

api.proc.iproc-case-status-attribute

automatická (review)

Stav případu se ve výpočtech nastavuje jinak

condition.case-status-value

ruční

Podmínka na stav případu porovnává ID

api.case-status.cs-name

ruční

cs_name se přejmenoval na case_status_name, v přehledu případu používejte getVar('CaseStatus')

code.compile-error

ruční

React a JSX skripty kompiluje TypeScript

api.proc.template-tasks-info

ruční

proc.getTemplateTasksInfo() je zastaralé

mui.grid.deprecated-props

automatická (safe)

Starý zápis MUI Grid v React skriptech

Kontrola hlásí i starší pravidla, např. api.curl.*, api.docx.*, lodash.* nebo lib.getPublicKey(). Ty nejsou důsledkem přechodu na 5.21: takový kód nefungoval už v 5.19, takže ho opravte, až na něj přijde řada. Další funkce validačního pluginu popisuje článek Použití validačních funkcí.

Co se v 5.21 mění

Změny jsou seřazené podle oblasti. Body označené (najde checkMigration) vám konzole vypíše sama, takže je nemusíte hledat ručně.

Stav případu

Stav případu se ve výpočtech nastavuje jinak (najde checkMigration)

Zápis proc.IPROC_CASE_STATUS = "Schváleno" v 5.21 nic neudělá a čtení vrátí undefined. Nově se používá await proc.setCaseStatus("Schváleno") a await proc.getCaseStatus(), pro jiný případ await lib.changeCaseStatus(iprocId, "Schváleno").

Zajímá mě, pokud výpočty šablon nastavují nebo čtou stav případu. Je to časté.

Co udělat: validation.fix("api.proc.iproc-case-status-attribute") přepíše zápisy na proc automaticky. Zbytek (jiný objekt než proc, +=) přepište ručně.

Výpočty a skripty

Nic už za vás nedoplňuje await

Kód nově kompiluje TypeScript. Stávající výpočty běží dál beze změny. Každý nový nebo upravený výpočet ale musí mít await u všech asynchronních volání (lib.*, proc.getCaseStatus() a další), jinak dostane Promise místo hodnoty.

Zajímá mě, pokud budete po upgradu psát nebo upravovat výpočty. To je prakticky vždy.

Co udělat: při úpravě výpočtu dopište await. Editor výpočtu na chybějící await upozorní.

React a JSX skripty kompiluje TypeScript (najde checkMigration)

TypeScript odmítne některé zápisy, které Babel pustil, nejčastěji < /div> s mezerou nebo neescapované > a } v textu JSX. Už zkompilovaný kód běží dál, chyba se ukáže až při dalším uložení. Pravidlo code.compile-error.

Zajímá mě, pokud máte React tisky, FE skripty nebo přehled případu se skripty.

Co udělat: opravit zápis podle hlášky, např. {'>'} místo >.

Globální FE skripty mají rezervované názvy

Globální funkce se nesmí jmenovat jako vestavěné názvy (name, status, print, find, getVar…) a stejná globální funkce nesmí být ve dvou aktivních skriptech.

Zajímá mě, pokud zákazník má vlastní globální FE nebo React skripty.

Co udělat: funkci přejmenovat. Jinak skript nepůjde uložit.

Prázdná buňka dynamické tabulky vrací null

lib.dynamicTableGetCell vrací u chybějící buňky null místo "".

Zajímá mě, pokud výpočet porovnává výsledek s === "".

Co udělat: porovnávat !value.

Číselná proměnná bez výchozí hodnoty zůstává prázdná

Nově uložená číselná proměnná bez výchozí hodnoty už nedostane automaticky 0. Existující proměnné si nulu ponechají.

Zajímá mě, pokud výpočty počítají s tím, že prázdné číslo je 0.

proc.getTemplateTasksInfo() je zastaralé a asynchronní (najde checkMigration)

Zajímá mě, pokud ho výpočty volají.

Co udělat: přidejte await, nebo přejděte na await proc.getTemplateTasks(...).

Vlastní SQL nad tabulkami šablon

Některé tabulky a sloupce šablon se přejmenovaly nebo zmizely (např. IPROC_CASE_STATUS, CASE_STATUSES, DLIST_NAME, TTJSCALC_JS_ES6).

Zajímá mě, pokud výpočet, report nebo BI zákazníka čte databázi přímo (readQuery, pohledy, ETL).

Co udělat: dotazy ve výpočtech vám částečně vypíše checkMigration. Externí reporty projděte se zákazníkem.

Šablony a případy

Stavy šablony jsou jen Aktivní, Neaktivní a Vyřazená

Stavy „ve vývoji“ a „testovaná“ splynuly. Případ se zakládá přes aktivní hlavičku a dostane název podle šablony.

Zajímá mě, pokud zákazník rozlišuje šablony ve vývoji a v provozu podle stavu.

Zmizelo omezení hlavičky „jen interní uživatelé“

Zmizel také vlastník procesu, zámek editace a výchozí název případu. Hlavičky, které omezení dřív skrývalo, budou vidět. U zákazníků, kde je omezení nutné, se náhrada řeší individuálně.

Zajímá mě, pokud zákazník má externí uživatele a hlavičky omezené jen na interní.

Plány zakládají vždy jeden případ

Vlastníkem případu je sponzor plánu. Rozesílání na více iniciátorů zmizelo.

Zajímá mě, pokud plán zakládal případ pro každého uživatele z hierarchie nebo seznamu.

Co udělat: domluvit se se zákazníkem na jiném řešení (např. podproces z jednoho případu).

Uložení šablony je přísnější

Uložit nejde šablona bez startovního úkolu, vazba úkolu sama na sebe, duplicitní vazby a duplicitní názvy úkolů.

Zajímá mě, pokud budete upravovat starší šablony. Chyba se ukáže až při uložení.

Dynamické tabulky

Vlastní dynamické seznamy a pohledy DT_<id> skončily

Zajímá mě, pokud šablona používá seznamovou proměnnou nad vlastním seznamem, nebo report čte pohled DT_<id>. Pohledy zůstanou v databázi, ale přestanou se aktualizovat.

Tisky a dokumenty

Vlastní fonty si nahrajete sami

Fonty pro tisky, DOCX šablony a PDF nově nahrává konzultant přímo v Správa → Sdílené soubory → Fonty (.ttf, .otf, .ttc). V CSS tisku uvádějte i obecnou rodinu, např. Verdana, sans-serif.

Zajímá mě, pokud zákazník tiskne dokumenty s vlastním fontem nebo má přísné požadavky na vzhled dokumentů.

Tisk čeká jen na printLoaded()

Nastavení Timeout a „Tisk je připraven“ zmizelo. Tisk, který načítá data, musí na konci zavolat printLoaded(), jinak se vygeneruje dřív, než data dorazí.

Zajímá mě, pokud máte React nebo HTML tisky, které načítají data a spoléhaly na pevné zpoždění.

HTML tisky přicházejí o vlastní CSS

Zajímá mě, pokud máte HTML (ne React) tisky s vyplněným polem CSS. Styl přesuňte do šablony tisku. React tisků se to netýká.

Pošta a integrace

Pošta přes MS Graph běží přes Email processing

Staré crony MS Graph v 5.21 nejsou. Převod spouští DevOps nebo konzultant v konzoli a potom se zkontroluje v Správa → Email ledger.

Zajímá mě, pokud zákazník zakládá případy z e-mailů nebo zpracovává příchozí poštu.

REST API: část endpointů zmizela nebo se přejmenovala

Zajímá mě, pokud do TAS volá externí systém (ERP, BI, vlastní skripty, Power Automate). Integraci otestujte na generálce.

Cron iDoklad byl odstraněn

Zajímá mě, pokud zákazník měl integraci s iDokladem.

Uživatelé a správa

Nastavení organizace zmizelo

Název, IČ, DIČ a adresa organizace ve Správě už nejsou.

Zajímá mě, pokud je šablony nebo tisky četly. Před upgradem si hodnoty opište.

Zamykání účtu po šesti neúspěšných přihlášeních

Zajímá mě, pokud se zákazníkovi uživatelé často přihlašují špatným heslem nebo má technické účty s heslem ve skriptu. Upozorněte je.

Azure AD se jmenuje Microsoft Entra ID

Přihlášení funguje dál, mění se jen název v administraci.

Zajímá mě, pokud zákazníkovi píšete návod nebo dokumentaci k přihlášení.

Servisní operace běží na pozadí

Výsledek se neobjeví hned, operace jde do fronty.

Zajímá mě, pokud používáte servisní operace nebo archivaci. Pokud nedoběhnou, řekněte DevOps, ať zkontroluje proces queue.

Co je nového k nabídnutí

Dynamické položky, AI builder šablon, import BPMN a Mermaid, záložky a grafy v přehledu případu, proměnné s ikonami, hromadné převzetí úkolů, nahrávání fontů, plugin Exchange Rates, SCIM 2.0 a white labeling. Nic z toho se nezapne samo, takže to upgrade neovlivní.

Kontrola po upgradu

Kontrolu dělejte nejdřív na generálce a pak znovu na produkci. Na hlavních šablonách ji projděte s klíčovým uživatelem zákazníka.

  • validation.checkMigration() nehlásí žádnou chybu (error). Varování a zastaralé zápisy můžete řešit postupně.
  • Založení případu přes hlavičku: název případu, stav případu v přehledu.
  • Úkoly s výpočty: stav případu se mění, přechody podle stavu jdou správnou větví.
  • Formuláře úkolů: rozložení polí, povinná pole a pole jen pro čtení.
  • Řešitelé z proměnné a z role.
  • Tisky: jeden React tisk, jeden HTML tisk a jeden DOCX nebo PDF, pokud je zákazník má.
  • Přehledy: načtení, uložené filtry, řazení podle stavu případu.
  • Dynamické tabulky: proměnné ukazují na správnou tabulku, výpočty z ní čtou.
  • Plány: plán založí jeden případ.
  • Pošta: příchozí e-mail se objeví v Správa → Email ledger, odchozí notifikace dorazí.
  • Servisní operace a archivace doběhnou.
  • Integrace zákazníka (REST API, exposeDb) odpovídají.
Když něco nefunguje a není to v tomto článku, napište nám.

Upgrade TAS 5.19 na 5.21 – průvodce pro DevOps

Team assistant (opens in a new tab)

Powered by HelpDocs (opens in a new tab)