1. Pravidla

    Article: AN0001642Updated:

    Na třídě a dotazech je možné definovat pravidla. Pravidla umožňují formátovat zobrazení dat, provést kontroly před zobrazením nebo uložením dat, odeslat upozornění atd.

    Každé pravidlo má Typ události, který říká, kdy se má něco stát a Typ akce, který říká, co se má stát.

    Pravidel můžete definovat kolik chcete a jsou vyhodnocovány v pořadí dle rostoucí hodnoty ve vlastnosti Pořadí. Hodnota Pořadí nemusí být jedinečná. V takovém případě však pravidla se stejným pořadím budou vyhodnocovány v náhodném pořadí.

    Pomocí vlastnosti Povoleno můžete pravidlo dočasně zakázat.

    Do vlastnosti Funkční popis vkládejte popis pravidla. Vložením popisu do tohoto pole místo do vlastního skriptu se zmenší velikost skriptu a zvýší rychlost zpracování.

    Typ události

    Následující tabulka zobrazuje seznam všech typů událostí, na které můžete v modelu reagovat.

    Název
    Před zobrazením nového záznamu v detailu
    Před zobrazením existujícího záznamu v seznamu
    Před uložením nového záznamu
    Po uložení nového záznamu
    Před uložením existujícího záznamu
    Po uložení existujícího záznamu
    Před smazanim záznamu
    Před uložením nové šablony
    Před uložením existující šablony

    Typ akce

    Název Popis
    Odeslat upozornění Odeslat upozornění v závislosti na datech v konkrétním záznamu. V podmínce a výpočtu kódu můžete používat funkce.
    Spustit workflow Pro nový nebo aktualizovaný záznam lze spustit workflow.
    Nastavit formátování Pro jednotlivé sloupce můžete nastavit barvy textu a pozadí, pro písmo bold a kurzívu. Dále můžete celý řádek podbarvit zadanou barvou. V podmínce můžete používat funkce.
    Nastavit nebo vypočítat hodnotu Pro každý sloupec lze zadat vzorec pro výpočet hodnoty. V podmínce a výpočtu můžete používat funkce.
    Podmínka

    Používá se před uložení nebo smazáním záznamu, kdy se vyhodnocuje zadaná podmínka. Při jejím nesplnění se záznam neuloží/nesmaže a je vypsáno chybové hlášení.

    Pomocí tohoto pravidla lehce přidáte do třídy kontroly dat vyplněných uživatelem.

    V podmínce a výpočtu můžete používat funkce.

    Spustit skript V tomto pravidle můžete přidat libovolné rozšíření pomocí skriptů. Lze tak spustit proceduru, import, export, workflow atd.

    Ve skriptu podmínky můžete použít následující objekty:

    Objekt Popis Kdy
    OG Společný objekt pro skripty.  
    OGActualDataRow Aktuální datový záznam (typu DataRow).  
    OGOldDataRow Předchozí datový záznam (typu DataRow).

    Před uložením existujícího záznamu

    Po uložení existujícího záznamu

    OGDataParent Objekt třídy.  
    OGSaveOption Objekt pro řízení způsobu uložení záznamu.  

    Pravidlo Spustit skript

    V pravidle je možné měnit všechny sloupce záznamu třídy, kromě systémových sloupců (ty nastavuje systém sám). Skript je brán jako bezpečná součást systému a neplatí pro něj omezení na aktualizaci sloupců.

    Ve skriptu je možné řešit i initializaci dat při založení nového záznamu.

    Ve skriptu můžete použít následující objekty:

    Název Popis Kdy
    OG Společný objekt pro skripty.  
    OGActualDataRow Aktuální DataRow.  
    OGOldDataRow Původní nezměněné DataRow. Před a po uložení existujícího záznamu
    OGActualMessage Objekt pro nastavení hlášení z pravidla.  
    OGModel Objekt modelu.  
    OGDataParent Objekt třídy.  
    OGSaveOption Objekt pro nastavení parametrů ukládání.  
    OGForm Objekt pro práci s formulářem. Před zobrazením detailu nového záznamu

    Pomocí objektu OGActualMessage můžete ze skriptu vypsat hlášení, které se zobrazí uživateli po ukončení pravidla. Pro hlášení můžete použít metody SetError, SetInfo a SetSuccess. Použití metody SetSuccess v pravidle Po uložení nového/existujícího záznamu potlačíte zobrazení standartní hlášení o uložení záznamu.

     

    Pokud má pravidlo nastavený Typ události na Před uložením nového/existujícího záznamu, pak je k dispozici nastavení Nejprve zkontrolovat povinné sloupce.

    Tímto nastavením můžete vytvořit pravidlo, které běží před nebo po kontrole vyplnění povinných sloupců. V případě pravidel před kontrolou, můžete skriptem doplnit nezadané povinné sloupce. A v pravidle po kontrole vyplnění se můžete bez nebezpečí odkazovat na hodnoty povinných sloupců.

    Před zobrazením nového záznamu v detailu

    V pravidle lze zadat pro jednotlivé sloupce výchozí hodnotu. 

    U sloupce typu Odkaz do číselníku můžete výchozí hodnotu definovat jako ID odkazovaného záznamu (toto však není doporučováno kvůli přenostitelnosti na jiné instance) nebo jako textový kód uzavřený v apostrofech. Tento kód musí být v odkazované třídě v textovém sloupci s kódem code. V hodnotě kódu se rozlišují velká a malá písmena. Pokud ID nebo kód v odkazované třídě neexistuje, je nastavení ignorováno.

    U násobných odkazů hodnoty oddělte čárkou. V případě použití více hodnot u jednoduchého odkaz se použije jen první hodnota a ostatní se ignorují.

    Příklad:     'assigned'   'assigned,new,closed'

     

    U sloupce typu Odkaz do číselníku (na různé třídy) můžete výchozí hodnotu definovat jako textový kód s kódem třídy uzavřeným v apostrofech. Tento kód musí být v odkazované třídě v textovém sloupci s kódem code. V hodnotě kódu se rozlišují velká a malá písmena. Pro jednoduchý odkaz se použije jen první hodnota a ostatní se ignorují. Pokud ID nebo kód v odkazované třídě neexistuje, je nastavení ignorováno.

    Pro násobné odkazy hodnoty oddělte čárkou.

    Formát:     'kod_tridy:kod_zaznamu'

    Příklad:     'status:assigned'   'status:assigned,type:all'

    Pořadí inicializace záznamu při zobrazení nového záznamu na DataDetail.aspx

    Zobrazení nového záznamu a jeho inicializaci můžete ovlivnit z několika míst. Následující přehled zobrazuje pořadí volání:

    1. výchozí hodnoty definované u sloupců
    2. hodnoty ze šablony - pokud je použita
    3. sekvence od sloupců
    4. pravidla Nastavení hodnoty a Skript - zpracovávají se dle pořadí definovaného na pravidle
    5. skript od třídy
    6. inicializace přes URL

    Nedoporučuje se používat všechny možnosti pro inicializaci najednou - řešení by bylo nepřehledné. Pro různé scénáře se hodí různé varianty. Proto je vhodné jejich použití promyslet.

    Pravidla pro šablony

    Pravidla pro šablony jsou určena k úpravě ukládaného záznamu do šablony. V okamžiku aplikování pravidla můžete z předaného DataRow (OGActualDataRow) vymazat sloupce, které nechcete v šabloně mít. K tomu použijte funkce z DataRow ClearColumn, RemoveColumn, RemoveColumnsExceptThose.

×