Cyklovač, terminace a PDK seznamy v akcích

Upravit obsah stránky

1. Úvod

V rámci platformy Flexideo existují dva hlavní mechanismy, které umožňují opakované spouštění akcí:
    bullet

    Cyklovač – automaticky plánuje opakování akce na základě podmínek vyhodnocených v jejím průběhu.

    bullet

    Terminace ( act:termination) – umožňuje naplánovat jednorázové opakování akce po jejím dokončení, s přesnou kontrolou nad opakováním.

Oba přístupy lze kombinovat i s plánovačem úloh (scheduler), který umožňuje pravidelné spouštění akcí podle definovaného intervalu (např. denně, týdně).

2. Cyklovač

2.1 Princip funkce

Cyklovač je krok ( act:injector), který lze umístit do jakékoli fáze serverové akce (tedy akce typu server service).
Není možné jej použít v akcích určených pouze pro intranet. Cyklovač lze ve stejné akci použít pouze jednou.
Umístění cyklovače v rámci akce určuje jeho chování:
    bullet

    Na začátku akce – podmínka se vyhodnocuje ještě před samotným spuštěním.

      bullet

      Pokud je splněna, naplánuje se opakované provádění akce.

      bullet

      Úloha zůstává aktivní, dokud se podmínka nestane neplatnou.

    bullet

    Uprostřed nebo na konci akce – všechny předchozí fáze akce se provedou vždy, bez ohledu na výsledek podmínky.

      bullet

      Typické v případech, kdy má akce nejprve zpracovat data a teprve poté rozhodnout, zda naplánuje další průchod.

2.2 Chování při chybě

Pokud je cyklovač umístěn na začátku akce, úloha se naplánuje ihned po prvním spuštění.
Došlo-li později v průběhu akce k chybě, akce se znovu spustí – což může vést k opakovaným chybným průchodům. Pro zabránění nekonečného cyklu se používá omezovač cyklovače, který umožňuje definovat maximální počet provedených cyklů (např. 100).
Po dosažení limitu se úloha automaticky ukončí a odebere ze serveru.

3. Terminace (uzel act:termination)

3.1 Princip terminace

Terminace se vždy nachází na konci fáze a umožňuje naplánovat jedno jediné další spuštění stejné akce.
Každá fáze akce může mít vlastní terminaci. Pokud dojde k chybě před terminací, nové spuštění se již nenaplánuje – čímž se předejde nekonečnému opakování chybné akce.

3.2 Výhody oproti cyklovači

    bullet

    Terminace zaručuje jednoznačné ukončení cyklu při chybě.

    bullet

    Umožňuje naplánovat další běh akce s odstupem (např. 10 sekund, 1 minuta apod.).

    bullet

    Může při dalším spuštění předat jiný PDK list nebo jiné parametry podle logiky akce.

4. Kombinace s plánovačem (schedulerem)

Plánovač umožňuje spouštět akce v pravidelných intervalech – například jednou denně nebo týdně.
Lze jej kombinovat s cyklovačem i terminací. Typický scénář:
    bullet

    Plánovač spouští akci jednou denně.

    bullet

    Akce obsahuje cyklovač, který průběžně zpracovává větší objem dat, dokud se tabulka nevyprázdní.

    bullet

    Po splnění podmínky cyklovač akci ukončí a čeká se na další spuštění plánovačem.

5. PDK list (vstupní seznam klíčů)

5.1 Povinný PDK list

Povinný PDK list definuje přesně, s jakými záznamy má akce pracovat.
Pokud je PDK list povinný, nelze akci spouštět plánovačem, protože plánovač nedokáže takový seznam dodat. Typicky se používá pro přesné, ručně vybrané záznamy (např. konkrétní kontakty, objednávky, položky).

5.2 Volitelný PDK list

Pokud má akce PDK list volitelný, je možné:
    bullet

    akci spouštět i bez PDK listu (např. plánovačem),

    bullet

    nebo naopak ručně (uživatelem či procesem) se specifickými záznamy.

V takovém případě musí akce obsahovat vlastní logiku výběru dat, aby při běhu bez PDK listu pracovala se správnými položkami.

5.3 PDK list v cyklovači a terminaci

    bullet

    Cyklovač opakovaně spouští akci s původním PDK listem, který byl zadán při jejím prvním běhu.

    bullet

    Terminace může při plánování dalšího běhu změnit PDK list – např. podle aktuálních dat či výsledků předchozí fáze.

6. Automatické spouštění pomocí procesních uzlů

Každá akce má svůj číselný identifikátor, který může být využit v procesních uzlech pro automatické spuštění.
Při uložení dokumentů do procesu se jejich identifikátory předají jako PDK list do akce. Příklad:
    bullet

    Uložením pěti kontaktů s číslem procesu se spustí akce s PDK listem těchto pěti kontaktů.

    bullet

    Akce zpracuje pouze tyto položky a končí.

    bullet

    Následné pravidelné spuštění (např. denní) zkontroluje, zda v systému nejsou nové položky ke zpracování.

7. Doporučení pro návrh akcí

    bullet

    Podmínky v cyklovači či terminaci musí být logicky svázány s hlavním zdrojem dat (např. hlavní tabulkou).

    bullet

    Je třeba zajistit, aby akce odbavovala data postupně, až do vyprázdnění zdroje.

    bullet

    Správné ukončení akce je klíčové pro stabilitu systému – nesmí docházet k nekonečnému opakování.

    bullet

    U cyklovače s omezovačem vždy testujte, že chyba v akci nezpůsobí zahlcení plánovače.

8. Shrnutí

Mechanismus Typ opakování Reakce na chybu Možnost měnit PDK Vhodné pro
Cyklovač Pravidelný průchod, dokud je podmínka splněna Opakuje se i při chybě, nutný omezovač Ne dlouhé dávkové zpracování
Terminace Jednorázové opakování po fázi Při chybě se zastaví Ano řízené následné spuštění
Plánovač Podle intervalu (denní, hodinový) Nezávislý na výsledku akce Pouze s volitelným PDK pravidelné kontroly a dávky