Dynamické podmínky: builder
Dynamické podmínky mění formulář úkolu za běhu podle toho, co řešitel vyplňuje: skrývají pole, mění jejich povinnost, kontrolují zadané hodnoty, dopočítávají hodnoty nebo omezují nabídku v seznamech. Nastavují se v okně Podmínky, které otevřete tlačítkem Podmínky v liště editoru úkolu. Okno má dvě záložky: Builder pro sestavení podmínek z bloků bez programování a Skript pro vlastní kód. Tlačítko nemá automatický úkol. U nového úkolu se okno otevře až po uložení úkolu.
Okno Podmínky a záložka Builder

| Č. | Prvek | K čemu slouží |
|---|---|---|
| 1 | Aktivní všechny | Hromadně vypne všechny bloky. Po zapnutí se znovu aktivují jen ty, které byly aktivní předtím. Jen na záložce Builder. |
| 2 | Zavřít | Zavře okno. Při neuložených změnách se zeptá Uložit provedené změny?: Potvrdit uloží, Ne změny zahodí. |
| 3 | Smazat | Po potvrzení smaže všechny bloky, celý skript i načítané skripty. Změna se projeví až po uložení. |
| 4 | Uložit | Uloží podmínky a nechá okno otevřené. |
| 5 | Uložit a zavřít | Uloží podmínky a okno zavře. |
| 6 | Builder | Záložka s bloky. Okno se otevírá na ní. |
| 7 | Skript | Záložka s celým kódem podmínek. |
| 8 | Načítané skripty | Výběr skriptů z administrace, které se pro tento úkol načtou. Číslo ukazuje počet vybraných. |
| 9 | Nápověda | Otevře nápovědu k builderu nebo ke skriptu podle aktivní záložky. |
| 10 | Hledat proměnnou | Ukáže jen bloky, které mění vybranou proměnnou. Při hledání nejde přidávat ani přesouvat bloky. |
| 11 | Funkce | Co blok dělá, viz tabulka funkcí. |
| 12 | Proměnná | Proměnná, na kterou blok působí. |
| 13 | Aktivní | Zapne nebo vypne jeden blok. Vypnutý blok zůstane uložený, ale neprovádí se. |
| 14 | Duplikovat | Vytvoří kopii bloku. |
| 15 | Převést na skript | Převede blok na blok typu Skript s vygenerovaným kódem. |
| 16 | Smazat blok | Odebere blok. |
| 17 | Přesunout | Chycením za ikonu změníte pořadí bloku. |
| 18 | Proměnná podmínky | Proměnná, jejíž hodnota se v podmínce porovnává. |
| 19 | Operátor | Způsob porovnání, viz níže. Aktivní po výběru proměnné. |
| 20 | Hodnota | Hodnota, se kterou se porovnává. Podle typu proměnné je to pole, výběr ze seznamu nebo datum. |
| 21 | Porovnat s proměnnou | Přepne pole Hodnota na výběr jiné proměnné, například datum návratu musí být větší než datum odjezdu. Nabízí jen proměnné vhodného typu. |
| 22 | Přidat podmínku | Uvnitř bloku přidá další skupinu podmínek. Dole pod bloky přidá nový blok s funkcí Skrýt. |
| 23 | Spustit při změně | Když volbu zapnete a vyberete proměnné, blok se vyhodnotí jen při změně těchto proměnných. |
U řádku podmínky jsou dále ikony pro smazání řádku, přesunutí řádku a přidání dalšího řádku za něj. Řádky v jedné skupině spojuje vybraný operátor AND nebo OR, mezi skupinami se volí totéž na úrovni bloku. Povinná pole bloku, která nejsou vyplněná, editor zvýrazní červeně a podmínky neuloží.
Funkce bloků

| Funkce | Co dělá ve formuláři | Spojka za proměnnou |
|---|---|---|
| Skrýt | Skryje proměnnou, když je podmínka splněná. | když |
| Změnit | Nastaví proměnné novou hodnotu, když je podmínka splněná. Typy hodnot viz níže. | na |
| Validovat | Zkontroluje hodnotu proměnné a při chybě zobrazí hlášku. Nemá část s podmínkou. | že |
| Filtrovat | Omezí hodnoty nabízené v seznamu, když je podmínka splněná. Jen pro dynamický seznam, dynamickou tabulku a seznamy textů, čísel a dat. | tak, aby |
| Proměnná pro čtení | Přepne proměnnou do režimu jen pro čtení, když je podmínka splněná. | když |
| Proměnná pro zápis | Přepne proměnnou do režimu pro zápis. | když |
| Povinná proměnná | Udělá proměnnou povinnou. | když |
| Povolit splnění při změně | Když je podmínka splněná, tlačítka pro splnění úkolu jsou aktivní, jinak jsou neaktivní. | když |
| Skript | Volný kód. Místo polí má editor kódu a ikony Přidat proměnnou a Demo kód. | – |
Operátory podmínky
| Operátor | Pro které proměnné |
|---|---|
| rovná se, nerovná se | Všechny kromě seznamu dokumentů, zaškrtávacího pole a dynamických řádků. |
| větší než, větší nebo rovno, menší než, menší nebo rovno | Čísla, datum, seznamy čísel a dat. |
| obsahuje, neobsahuje | Text a proměnné s více hodnotami. |
| je prázdný, není prázdný | Všechny. U zaškrtávacího pole jsou to jediné nabízené operátory a znamenají nezaškrtnuto a zaškrtnuto. |
U data nabízí pole Hodnota Dnes, Včera, Zítra, Předchozí pracovní den, Začátek měsíce, Konec měsíce, Začátek roku, Konec roku a Datum s výběrem konkrétního dne. Relativní data se počítají ve chvíli vyhodnocení.
Validovat

| Č. | Pole | K čemu slouží |
|---|---|---|
| 1 | Validace | Druh kontroly. Nabídka závisí na typu proměnné, viz níže. |
| 2 | Hodnota | Mez nebo délka, se kterou se porovnává. |
| 3 | Hláška při chybě validace | Text, který řešitel uvidí u pole, když hodnota kontrolou neprojde. Pole je pro první jazyk systému. Hláška je nepovinná. |
| 4 | Další varianty jazyků | Otevře hlášky pro další jazyky. Tlačítko AI překlad je vyplní, pokud je zapnutá AI. |
| Typ proměnné | Nabízené validace |
|---|---|
| Všechny | Rovnost jiné proměnné |
| Text, seznam textů s jednou hodnotou | E-mail, Telefonní číslo, Adresa URL, přesná, minimální a maximální délka textu, Pouze písmena, Písmena a čísla, Datum |
| Číslo, seznam čísel s jednou hodnotou | Minimální hodnota, Maximální hodnota |
| Číslo, datum, seznamy čísel a dat | Menší než, Větší než, Menší nebo rovno, Větší nebo rovno. U data jako mez zvolíte rychlé datum nebo konkrétní den. |
Hláška se do kódu podmínek ukládá v jednoduchých uvozovkách. Nepoužívejte v ní apostrof, mohl by kód podmínek poškodit.
Změnit
Funkce Změnit nastaví proměnné hodnotu z jednoho z těchto zdrojů. Nabídka závisí na typu cílové proměnné:
| Zdroj | Výsledek |
|---|---|
| Konstanta | Pevná hodnota. |
| Dynamický odkaz | Odkaz na případ, úkol nebo přehled podle čísla z vybrané číselné proměnné. Jen pro textové proměnné. |
| Operace s čísly | Výpočet ze dvou proměnných: kolik % tvoří z, o kolik % se liší od, kolik % zbývá, sčítat, odčítat, násobit, dělit. |
| Dynamické datum | Rychlé datum, nebo datum z jiné proměnné plus či minus zadaný počet dnů. |
| Parametr uživatele, organizační jednotky nebo role | Údaj o uživateli, jednotce nebo roli podle ID v jiné proměnné, například e-mail, zobrazované jméno nebo manažer jednotky. |
| Hodnota z dynamické tabulky | Hodnota ze zvoleného sloupce prvního řádku tabulky, který splňuje filtr. Tabulku lze vybrat i dynamicky výrazem s proměnnými. |
| Hodnota proměnné | Kopie hodnoty jiné proměnné. |
Filtrovat
Filtr se skládá z řádků Parametr nebo Sloupec, Operátor a Hodnota. U dynamického seznamu uživatelů, jednotek nebo rolí filtrujete podle jejich vlastností, u dynamické tabulky podle sloupců, u seznamů textů, čísel a dat podle hodnoty. Hodnotu lze porovnat i s jinou proměnnou. Tlačítkem Nový filtr přidáte další skupinu. Když cílovou proměnnou změníte na jiný druh seznamu, filtr se vymaže.
Builder nemá samostatné bloky pro sekce, tlačítka, sloupce dynamických řádků ani pro volání URL. Takové chování napíšete do bloku Skript nebo na záložku Skript. Načítání dat z dynamické tabulky a z parametrů uživatelů dělá builder sám v rámci funkcí Změnit a Filtrovat.
Záložka Skript

| Č. | Prvek | K čemu slouží |
|---|---|---|
| 1 | Přidat proměnnou | Vloží do kódu název vybrané proměnné. |
| 2 | Demo kód | Vloží ukázku volání funkcí podmínek. |
Záložka ukazuje celý kód podmínek. Editor kódu napovídá názvy proměnných a funkcí.
Jak spolu builder a skript fungují
Builder i skript ukládají jeden společný kód. Každý blok builderu se do kódu zapíše jako jedno volání funkce označené komentářem @BuilderBlock. Vypnutý blok se zapíše jako zakomentovaný kód označený @BuilderInactive.
- Při přepnutí na záložku Skript se bloky převedou na kód.
- Při přepnutí zpět na Builder se označená volání převedou zpět na bloky. Kód mezi nimi, který builder nezná, se zobrazí jako bloky typu Skript.
- Když označený kód upravíte tak, že mu builder nerozumí, zobrazí se hláška Konverze skriptu do builderu se nezdařila a zůstanete na záložce Skript. Totéž se stane při otevření okna.
- Jeden blok převedete na skript ikonou Převést na skript. Blok typu Skript převedete zpět ikonou Převést na strukturovaný blok, pokud obsahuje právě jedno označené volání.
Na záložce Builder se před uložením kontrolují povinná pole bloků. Na záložce Skript se kód uloží přesně tak, jak je napsaný.
Okno pro jednu proměnnou
V záložce Přiřazení má proměnná, které se týkají podmínky, u názvu číslo. Klepnutím na něj otevřete okno Podmínky s vyplněným polem Hledat proměnnou: uvidíte bloky, které tuto proměnnou mění, i bloky Skript, jejichž hlavní volání ji uvádí jako první. Bloky, ve kterých je proměnná jen v části podmínky, se nezobrazí. Číslo na tlačítku Podmínky v liště editoru počítá všechna volání funkcí podmínek v kódu, vypnuté bloky se nepočítají.
Ukázka: převedené formuláře šablony objednávek
Formuláře ukázkové šablony „TAS | Purchase Order 5.19“ jsou převedené do builderu. Úkol Create new PO kombinuje blok Skript s vlastním kódem a strukturované bloky Skrýt se spuštěním při změně proměnné.

Nápověda

Nápověda builderu má vyhledávání a kapitolu pro každou funkci s ukázkovým blokem. Tlačítko Použít v builderu u ukázky přidá blok s touto funkcí na konec builderu. Odkazy Funkce a Služby otevřou podrobný přehled funkcí pro skript.
Jak přidat podmínky v builderu
V ukázkové šabloně „Travel request“ má úkol Fill in the travel request dva bloky: skryje pole Visa required, když je dopravním prostředkem služební auto, a nepustí odhad nákladů nad 200 000 Kč.
- Otevřete úkol a klepněte na Podmínky.
- Klepněte na Přidat podmínku pod bloky. Přibude blok s funkcí Skrýt.
- Vyberte proměnnou Visa required. V řádku podmínky vyberte Means of transport, operátor rovná se a hodnotu Company car.
- Klepněte znovu na Přidat podmínku, změňte funkci na Validovat a vyberte Estimated cost.
- Jako validaci vyberte Maximální hodnota, zadejte 200000 a napište hlášku. Odkazem Další varianty jazyků doplňte hlášku v dalších jazycích.
- Klepněte na Uložit a zavřít.

Okno Načítané skripty vybírá, které aktivní skripty pro dynamické podmínky z administrace se v úkolu načtou. Když nevyberete žádný, načtou se všechny.
Související: Přiřazení proměnných a sekce, Výpočty na úkolu, sekce Výpočty a skripty.