Uživatelská upozornění (notifikace)
19.08.2015
Upozornění (notifikace) jsou zprávy zasílané uživatelům na základě akcí nebo událostí, ke kterým dojde v systému. V tomto textu bychom se chtěli soustředit na obecné řešení, tedy systém, který pouhou konfigurací umožní vytvářet nové notifikace a dále je upravovat. (Nejde nám tedy o situaci, kdy vývojář „natvrdo“ naprogramuje odeslání emailu daného textu daným příjemcům, pokud v jím vytvářené aplikaci k něčemu dojde.)
Jak by měl takový obecný systém vypadat? Podívejme se na něj na následujícím obrázku.
Vlevo vidíme příklady různých objektů, z nichž může být notifikace volána:
- Pravidlo třídy – např. po uložení nového nebo změně stávajícího záznamu
- Workflow – např. po schválení nebo zamítnutí požadavku uživatele
- Job – např. po vykonání určitých kroků jobu
- Export – např. informace o pravidelném integračním publikování dat
- Import – např. informace administrátorovi o úspěšném či neúspěšném integračním importu dat z jiného systému
- Skript – možnost využít systém notifikací i ze skriptu
- …a další
Na každou událost lze reagovat více notifikacemi. Konkrétní upozornění pak lze podmínit např. hodnotou v určitém sloupci, takže se určité upozornění odešle např. při změně záznamu Požadavku pouze, pokud sloupec Status má hodnotu „Vráceno žadateli“.
Příjemce notifikace lze specifikovat distribuční skupinou, jejímž členy mohou být interní uživatelé systému nebo i externí adresy.Příjemce notifikace lze také definovat jako uživatele uvedené v určitém sloupci. To umožňuje dynamickou volbu příjemců oproti statické distribuční skupině, která má pevně stanoveny své členy.
Dále je třeba zajistit správnou lokalizaci textu upozornění. Preferovaný jazyk notifikací má uživatel nastaven ve svém profilu.
Notifikace mohou používat různé kanály (emaily, SMS…). Pro emaily lze zvolit prostý text nebo html a použít emailové šablony. Šablony pomáhají zajistit jednotný vzhled určitých upozornění.
Odeslané emaily je třeba zalogovat. Představují doklad o odeslání upozornění.
Zároveň je nutné zabránit enormnímu růstu databáze. Proto systém umožňuje nastavit automatické čištění tohoto logu v rámci standardního rozhraní pro Údržbu logů.
V notifikacích lze používat vlastnosti záznamu, z něhož byla notifikace volána. Lze ji tedy dynamicky upravovat podle aktuálních dat.
Všechno výše uvedené je v ObjectGears k dispozici na kliknutí a dostupné uživateli pro používání bez jakékoli znalosti programování. Pokud si tedy uživatel vytvoří datové struktury dle svých potřeb a přidělí na ně potřebná přístupová oprávnění, není ani v případě notifikací závislý na vývojářských zdrojích. To představuje velký potenciál při potřebě budoucích úprav aplikace, jak z pohledu flexibility, snadnosti a rychlosti úpravy, tak z pohledu nespotřebování vývojářských zdrojů (schvalování, budget…).
Ať už používáte nebo chcete používat ObjectGears nebo jiný systém, výše uvedené byste po daném systému měli v oblasti notifikací vždy požadovat.
V ObjectGears se i v případě notifikací snažíme nabídnout něco navíc a systém stále rozvíjet. Jedním z příkladů jsou skupiny upozornění.
Představte si situaci, kdy na jednu událost chcete poslat odlišná upozornění různým lidem – např. text s jedním linkem jedné skupině lidí, text s dalším linkem. Samozřejmě si můžete připravit několik různých notifikací pro různé distribuční skupiny. Potíž je ale v tom, pokud je někdo členem více distribučních skupin. V takovém případě daný pracovník dostane několik upozornění. Takovéto řešení se skutečně často volí, protože alternativou by bylo programování složitější logiky, které je ale zbytečně drahé a neflexibilní. Pokud pracovník dostane několik duplicitních upozornění jednou týdně, asi to přejde. Pokud však duplicitní zprávy dostává častěji, bude nespokojen a dá to najevo.
V ObjectGears jsme tuto známou situaci chtěli vyřešit a odpovědí jsou právě skupiny upozornění. Jak je použít? Všem upozorněním reagujícím na jednu událost, u nichž chceme zabránit duplicitě, nastavíme shodnou Skupinu upozornění. Pořadí upozornění pak nastavíme od nejspecifičtější (posílá se první) po nejobecnější (posílá se poslední). Pokud je určitému uživateli poslána určitá notifikace v rámci upozornění patřící do stejné skupiny, další upozornění z dané skupiny mu již zaslána nejsou.