2.13. Alerte
SocrateCloud, prin intermediul Alertelor, pune la dispoziția clienților un mecanism flexibil de notificare pe e-mail în cazul producerii unui anumit eveniment. Alertele ar trebui create de un utilizator care deține cunoştinţe de programare SQL, deoarece "evenimentul generator" poate fi orice informație existentă în baza de date.
Pentru exemplificare vom descrie o alertă ce trimite notificări pe e-mail cu facturile în sold şi a căror scadenţă a fost depăşită cu 10 zile.
Alerte
Definirea alertelor se realizează în fereastra Alerte, localizată în meniul Analiza performanţei. Sunt disponibile următoarele câmpuri:
Denumire, Descriere, Comentariu - se completează cu alte date utile pentru a descrie cât mai complet alerta;
Activă - doar alertele active sunt luate în considerare de sistem şi sunt procesate, respectiv livrează e-mail-uri;
Valid - doar pentru alertele valide se livrează e-mail-uri; iniţial orice alertă este validă;
la prima procesare sistemul verifică corectitudinea definirii acesteia, iar în cazul unei greşeli aceasta va fi invalidată şi nu va mai fi rulată în viitor până când un operator intervine manual şi remediază greşeala;
Procesor alerte - este acel "mecanism automat" care ruleză alertele cu frecvenţa stabilită şi trimite e-mail-urile aferente; tot acesta este responsabil şi de validarea/invalidarea alertelor;
Salvează Fișier Atașat - opțiune prin care se indică salvarea fișierului (.xls), generat în urma rulării alertei, pe înregistrarea aferentă auditului de mesaje expediate (fereastra ”Mesaje E-mail” -> atașamente).
v.20.05 - mesajul email trimis in urma rulării alertei conține un fișier .xls atașat mesajului. Fișierul are, în formă tabelară, conținutul alertei.
Forţează securitate rol - bifa indică aplicarea securităţii accesului la date în funcţie de rolul indicat în câmpul următor;
Rol - stabileşte accesul la date; dacă rolul respectiv este limitat la anumite date, doar acestea vor fi transmise prin intermediul alertei;
Subiect - se completează cu textul dorit în formarea e-mail-ului pe câmpul "Subiect";
Mesaj - se completează cu textul dorit în formarea e-mail-ului pentru corpul e-mail-ului; acest mesaj se va completa automat cu datele din alerta efectivă.
Reguli Alerte
O alertă poate avea în conținut una sau mai multe reguli. Se recomandă a se lucra cu o singură regula pentru fiecare alertă pentru a nu amesteca într-un singur e-mail mai multe rezultate. Regulile se gestionează în tab-ul Reguli Alerte. Sunt disponibile următoarele câmpuri:
Denumire, Descriere
Activă - doar regulile active sunt luate în considerare de sistem şi sunt procesate, respectiv livrează e-mail-uril;
Valid - doar pentru regulile valide se livrează e-mail-uri; iniţial orice regulă este validă; la prima procesare sistemul verifică corectitudinea definirii acesteia, iar în cazul unei greşeli aceasta va fi invalidată şi nu va mai fi rulată în viitor până când un operator intervine manual şi remediază greşeala; invalidarea unei reguli duce automat şi la invalidarea Alertei !!!
Mesaj eroare - câmpul apare numai dacă această regulă a fost procesată şi s-a finalizat cu o eroare; această eroare este salvată în acest câmp, iar regula devine invalidă;
PreProcesare (câmp nefolosit) - inactiv în beneficiul securităţii accesului la date;
Sql SELECT - aici se indică denumirile şi valorile care se vor prezentate în cadrul alertei:
în exemplul nostru se prezintă numărul de zile întârziere faţă de scadenţă, terţul, moneda şi soldul aferent;
Tabelă - se indică tabela principală sau view-ul care stă la baza interogării sql; tot asupra acesteia se aplică şi securitatea bazată pe rol;
Sql FROM - aici se indică sursa de date peste care se face interogarea sql;
Sql WHERE - aici se indică condiţiile care se verifică pentru rularea alertei:
în exemplul nostru se verifică depăşirea cu peste 10 zile faţă de data scadenţei;
Altă clauză - se poate indica o ordonare a datelor prezentate:
în exemplul nostru se prezintă datele ordonate descrescător după numărul de zile întîrziere;
PostProcesare - câmp nefolosit - inactiv în beneficiul securităţii accesului la date.
Cateva exemple de restrictii suplimentare impuse sintaxei SQL de catre interpretorul SocrateCloud sunt:
cuvintele cheie se scriu cu MAJUSCULE;
este obligatorie folosirea "prefixului" pt JOIN: LEFT OUTER, RIGHT OUTER, FULL, INNER
SELECT …
FROM ... INNER JOIN ... ON (...)
WHERE
ORDER BY
numele tabelelor/coloanelor se scriu cu SmallTalk (aşa cum sunt definite in dicţionarul aplicaţiei)
parserul de securitate se bazează pe majuscule
nu se utilizează sintaxa *= =* pentru join
Destinatari Alerte
O alertă poate trimite informația din conținut către unul sau mai mulți destinatari. Aceștia se stabilesc în tab-ul Destinatari Alerte. Sunt disponibile următoarele câmpuri:
Rol - stabilește accesul la date. Dacă rolul respectiv este limitat la anumite date, doar acestea vor fi transmise prin intermediul alertei către destinatari. Pentru un rol sunt disponibili urmatoarele opțiuni:
Utilizator/Contact - se selectează în cazul în care e-mail-ul i se trimite unui anumit user,
pentru mai multi useri destinatari se vor adăuga mai multe înregistrări;
Obs: pentru a primi e-mailuri un user trebui să aibă în definiția lui setat câmpul "Tip Notificare" cu valoarea "Email";
Send mail to role users - e-mail-ul se trimite tuturor utilizatorilor care fac parte din rolul respectiv;
Procesor de Alerte
Pentru ca o alertă să îşi îndeplinească rolul, aceasta trebuie să fie procesată (rulată) de către un procesor de alerte. Procesoarele de alerte se definesc în fereastra cu același nume, din meniul SysAdmin -> Reguli Generale -> Server. Sunt disponibile următoarele câmpuri:
Denumire, Descriere , Activă
Schedule - se alege orarul de execuţie - acesta indică frecvenţa cu care se execută procesarea;
Supervizor - userul pentru escaladarea notificărilor - neimplementat deocamdată;
Zile jurnalizare - se indică pentru câte zile se ţine logul procesului.
Un proces nou va fi rulat doar după resetarea serverului de aplicație. Monitorizarea proceselor se poate realiza din fereastra Monitorizare servicii, secțiunea Procesor alerte.
Exemplu
Pentru exemplul prezentat prin imaginile de mai sus, mesajul transmis pe e-mail va fi de forma:
Următoarele facturi sunt în sold şi au o întârziere de peste 10 zile:
#63: ------------------
DAYSDUE = 202
BUSINESSPARTNER = TOTAL SRL
CURRENCY = RON
OPENAMT = 18927.36
------------------
DAYSDUE = 195
BUSINESSPARTNER = ABC SRL
CURRENCY = RON
OPENAMT = 1530.85
------------------
DAYSDUE = 165
BUSINESSPARTNER = EUROSPORT LTD
CURRENCY = EUR
OPENAMT = 900
------------------
...