Akcie po... (insert/update/delete záznamu) - automatické vyvolanie reportov/exportov a užívateľské funkcie
Tu nájdete popis, čo sú "Akcie po ...", aký je ich princíp a ako sa používajú:
Funkcie a akcie definované podľa actions.cfg sú zastaralé (deprecated) a neudržujú sa. Naďalej rozvíjané funkcie skriptovania nahradzujú túto oblasť.

Okrem možnosti nastaviť automatické vyvolanie tlače alebo exportu po uložení záznamu podľa nastavení vo funkcii Nastavenie tlače po uložení, je v systéme ABRA Gen ďalšia možnosť, ako nastaviť automatické vykonanie reportov a exportov, a to pomocou definícií zadaných v jednom alebo viacerých súboroch actions.cfg (resp. actions.GUIDagendy.cfg) uložených v adresári, kde je nexus.cfg vašej inštalácie. Táto funkčnosť je akýmsi "prapredchodcom" skriptovania (ktoré bolo do systému pridané až neskôr). Pomocou nej je možné modifikovať alebo doplniť v konkrétnej agende správanie týkajúce sa tlačí a exportov po akciách INSERT, UPDATE, DELETE záznamu a navyše tiež po "užívateľskej" akcii USERACTION (napr. stlačenie tlačidla). Použiť ju je možné napr. na automatický export po uložení záznamu v danej agende za účelom nejakej synchronicácie s vonkajším systémom, alebo v prípade USERACTION na doplnenie tlačidla do Agendy, ktoré sa po stlačení ešte spýta, či si užívateľ skutočne želá email odoslať.
Teda pomocou súborov actions.cfg je možné definovať, čo sa má stať:
- po zmene záznamu (Update)
- pred zmazaním záznamu (Delete)
- po pridaní nového záznamu (Insert). Kópia záznamu sa v tomto prípade správa ako pridanie nového.
Rozsah toho, čo sa môže vykonať, je podobný možnostiam funkcie Nastavenie tlače po uložení. Tzn. uskutočniť tlač resp. export, vrátane určenia tlačovej zostavy resp. definície exportu a aj prípadného formátu súboru, do ktorého sa bude tlač realizovať (podrobnejšie pozri popis danej funkcie). Tu je však ďalej mnoho možností navyše:
- Je možné definovať vykonanie viacerých reportov alebo exportov naraz.
- Je možné zvlášť definovať akcie po zmene (oprave) záznamu a po pridaní nového.
- Je možné definovať aj akcie, ktoré sa majú vykonať pred zmazaním záznamu.
- Je navyše možné definovať podmienku, ktorá sa vyhodnocuje, a len ak je splnená, daný export alebo report sa vykoná.
- Je možné zadefinovať text otázky, ktorá sa užívateľovi zobrazí s voľbami Áno a Nie.
- Je možné si nadefinovať vlastné užívateľské funkcie na ovládanie z užívateľského rozhrania (UserAction)
Túto funkčnosť s výhodou využijete napr. v agende Aktivít, resp. Časového plánu, kde si môžete napr. nadefinovať akciu pre odoslanie SMS o zadanom zázname. Tzn. nadefinujete si napr. funkčné tlačidlo s názvom SMS, ktoré bude vyvolávať export do súboru, definovaný tak, že sa odošle SMS správa užívateľovi priradenému role riešiteľa, ktorý sa má zaoberať danou úlohou - aktivitou. Užívateľ tak bude informovaný, že mu pribudla úloha, aj keď nebude aktuálne na pracovisku.
Nastavené akcie sa vzťahujú vždy len priamo k vizuálnemu vykonaniu priamo v danej agende, pre ktorú sú nastavené, nie ak je operácia so záznamom vykonaná nevizuálne v rámci inej agendy (tzn. napr. automatické vystavenie DL spolu s faktúrou v rámci agendy fakturácie, podrobnosti viď kap. Nastavenie tlače po uložení). Tu platí jediná výnimka pre Časový plán: Akcie v Actions.cfg definované pre agendu Aktivít sa vyvolajú aj po uskutočnení drag-and-drop akcií v časovom pláne.

Musí existovať súbor s menom Actions.cfg s príslušnými definíciami, viď ďalej. Má štruktúru inicializačného súboru a musí ležať v rovnakom adresári ako súbor nexus.cfg.
Z dôvodov obmedzenia maximálnej veľkosti inisúborov je možné pre jednotlivé agendy tvoriť samostatné súbory. Tieto súbory musia byť pomenované "Actions bodka GUID agendy bodka cfg". Napr. Actions.OYC0P3TDDY1ORIJO2SKTP2KZKG.cfg. Pri načítaní definícií sa najskôr zisťuje, či existuje súbor "Actions bodka Guid agendy bodka cfg". Ak existuje, načítajú sa všetky definície z neho. Ak neexistuje, použije sa súbor Actions.cfg.
Pre každú agendu a operáciu sa definuje zvláštna sekcia v súbore Actions.cfg, resp. Actions.GUIDagendy.cfg. Názov sekcie tvorí GUID agendy, bodka a názov operácie. Platí aj pre ini súbor definovaný zvlášť pre konkrétnu agendu (Actions.GUIDagendy.cfg). K dispozícii sú tri typy operácií:
- Delete (vyvoláva sa pred zmazaním záznamu)
- Update (vyvoláva sa po oprave záznamu alebo po jeho skrytí)
- Insert (vyvoláva sa po uložení nového záznamu)
Ďalej je možné definovať sekciu pre operáciu UserAction, popis viď Možnosť užívateľského vyvolania - Užívateľské funkcie.
Pre agendu aktivít a operácii Insert vyzerá sekcia napríklad takto:
[OYC0P3TDDY1ORIJO2SKTP2KZKG.Insert]
Action=PRINT
PrintFileType=PDF
PrintMethod=EMAIL
Definition=RD00000001
Condition=ActQueue_ID='1000000101'
Question=Skutočne chcete poslať EMAIL?
GUID agendy môžete vyhľadať v popise Štruktúr a definícií GenDoc.chm.

Action
Pomocou parametra Action sa oznamuje, čo sa má vykonať. Tento parameter musí byť vždy uvedený (nemá východiskovú hodnotu):
- PRINT (bude sa vykonávať report)
- EXPORT (bude sa vykonávať export)
PrintMethod
Parameter PrintMethod sa použije len v prípade, že je Action=PRINT, a definuje akým spôsobom bude report vykonaný:
- PREVIEW (do náhľadu – východisková voľba)
- PRINTER (priamo na tlačiareň)
- FILE (do súboru)
Pri tlači do súboru je potrebné v tlačovej zostave nadefinovať pomenovaný skript FILENAME, inak sa zostava ukladá pod náhodne generovaným číslom do adresára c:\Users\<dany_uzivatel>\appData\Local\Temp\
- EMAIL (do emailu)
PrintFileType
V prípade, že je nastavené Action=PRINT a parameter PrintMethod na FILE alebo EMAIL, je možné nastaviť, v akom formáte sa report uloží:
- XLS - MS Excel vo formáte Excel 5
- XLSG -MS Excel 95, export z grafickej predlohy
- XLSX - MS Excel vo formáte Excel 2007
- HTM - HTML formát)
- CSV - textový súbor s položkami oddelenými čiarkou
- RTF - RichText formát
- TXT - prostý textový súbor
- PDF - formát pre AcrobatReader bez el. podpisu – východisková voľba
- PDFs - formát pre AcrobatReader s el. podpisom
PrintToFileCommand
V prípade, že je nastavený parameter PrintMethod=FILE, je možné pomocou parametra PrintToFileCommand definovať príkaz, ktorý sa vykoná po uskutočnení tlače do súboru. Zodpovedá položke Príkaz v dialógu Nastavenie tlače po uložení.
Definition
V prípade, že chcete v definícii určiť aj konkrétnu definíciu tlač. zostavy alebo exportu, je potrebné zadať jeho identifikáciu do parametra Definition.
Condition
V prípade, že je nastavené, bude vyvolanie danej akcie viazané na splnenie zadanej podmienky. Parameter Condition by mal obsahovať platný výraz, ktorý je vyhodnotiteľný objektovým evaluátorom a vychádza z objektu, ktorý sa spracováva v danej agende.
Question
Ak chcete, aby sa aj v prípade kladného vyhodnotenia podmienky program užívateľa spýtal, či chce potvrdiť (export alebo report), použite parameter Question.
Caption, Hint
Parametre pre operáciu UserAction, popis viď Možnosť užívateľského vyvolania akcií - Užívateľské funkcie.

Keď chcete automaticky vykonať viac reportov alebo exportov po jednej operácii Insert/Update/Delete, je potrebné do ini súboru pridať ďalšie sekcie pre danú operáciu a odlíšiť ich nejakým reťazcom (napr. poradovým číslom) zadaným v názve sekcie za bodkou.
Príklad vyvolania viacerých akcií pre agendu aktivít a operáciu Update:
[OYC0P3TDDY1ORIJO2SKTP2KZKG.Update.1]
Action=PRINT
PrintMethod=PREVIEW
Definition=RD00000001
Question=Skutočne chcete vykonať tlač?
[OYC0P3TDDY1ORIJO2SKTP2KZKG.Update.2]
Action=PRINT
PrintMethod=EMAIL
Definition=1200000101
Question=Skutočne chcete poslať e-mail?
Pri zisťovaní, aké exporty/reporty sa majú vykonať po/pred určitou operáciou, sa najskôr načíta sekcia "Guid agendy bodka názov operácie".
Potom všetky sekcie, ktoré začínajú na "Guid agendy bodka názov operácie bodka", zoradené podľa abecedy. Pri vykonaní prislúchajúcej operácie sa exporty/reporty vykonávajú postupne za sebou.
Volané reporty/exporty sa vykonávajú v modálnom/synchrónnom režime (aby bolo možné zaistiť ich postupné vyvolanie).
Ďalším dôvodom modálneho synchrónneho vyvolania je operácia Delete. Ak by sa pri vykonaní reportu do náhľadu náhľad vyvolával asynchrónne, a program by pokračoval ďalej a vykonal vymazanie záznamu, tak kým by sa obsah zobrazil v náhľade, bol by už daný záznam vymazaný.
V prípade operácie Delete je potrebné uvedomiť si nasledujúce: Pretože exporty a reporty je nutné vykonávať nad ešte existujúcimi dátami, je potrebné, aby sa toto vykonalo ešte pred zmazaním záznamu. Zmazanie záznamu sa ale z rôznych príčin nemusí podariť.

Okrem vyššie uvedených operácií insert, update a delete, je ďalej možné do Actions.cfg súboru definovať operáciu useraction, ktorá identifikuje akcie, ktoré je možno spustiť z užívateľského rozhrania pomocou tlačidla, hlavného menu alebo Popup menu (pre prípad Časového plánu).
Zápis do Action.cfg sa vykonáva podobným spôsobom ako pri akciách po Insert/Update/Delete, viď Spôsob definície. Použiteľné parametre viď Parametre pre actions.cfg. V tejto súvislosti sú k dispozícii navyše parametre:
Caption
Nadpis akcie, bude zobrazovaný v ovládacom prvku. Ak nie je vyplnený, zobrazí sa identifikátor akcie agendy zadaný za bodkou v názve sekcie s UserAction. Ak nie je zadaný ani ten, tak sa zobrazí všeobecný názov pre užívateľské funkcie:
Ak v rámci sekcie pre užívateľskú akciu:
a) je definovaný parameter Caption=SMS, potom sa v agende zobrazí tlačidlo s názvom SMS.
b) nie je definovaný Caption a sekcia je zadaná napr.: [OYC0P3TDDY1ORIJO2SKTP2KZKG.UserAction.Mánička], potom sa v agende zobrazí tlačidlo:Mánička.
c) nie je definovaný Caption a sekcia je zadaná len takto: [OYC0P3TDDY1ORIJO2SKTP2KZKG.UserAction], potom sa v agende zobrazí tlačidlo:Užív. funkcie.
Hint
Popiska ovládacieho prvku.
Príklad definície pre možnosť vyvolania odoslania tlače mailom pomocou vybranej tlačovej zostavy funkčným tlačidlom, ktoré pribudne v danej agende:
[OYC0P3TDDY1ORIJO2SKTP2KZKG.UserAction]
Action=PRINT
PrintMethod=EMAIL
Definition=1200000101
Question=Skutočne chcete poslať e-mailom?
Caption=E-mail
Hint=Odoslanie reportu e-mailom
Ak je takáto akcia pre danú agendu aspoň jedna, vytvorí sa v nej príslušný ovládací prvok (menu alebo funkčné tlačidlo). Podľa počtu užívateľských definícií na agendu môže byť viacpoložkový.
Príklad definície viacerých akcií, kedy sa vytvorí multifunkčné tlačidlo, ktoré pribudne v danej agende:
[OYC0P3TDDY1ORIJO2SKTP2KZKG.UserAction.1]
Action=PRINT
PrintMethod=PREVIEW
Definition=1200000101
Question=Skutočne chcete vykonať náhľad?
Caption=Náhľad pred e-mailom
Hint=Odoslanie reportu e-mailom
[OYC0P3TDDY1ORIJO2SKTP2KZKG.UserAction.2]
Action=PRINT
PrintMethod=EMAIL
Definition=1200000101
Question=Skutočne chcete poslať e-mailom?
Caption=E-mail
Veľkosť funkčných tlačidiel (ich šírka) v agende v paneli funkčných tlačidiel sa automaticky prispôsobuje podľa dĺžky názvov funkčných tlačidiel. Preto v parametri Caption nevoľte názvy príliš dlhé!
V prípade multifunkčného tlačidla sa uplatní len prvá definícia hintu.
Užívateľskú akciu je možné vyvolať pomocou nasledujúcich klávesových skratiek.
Kláves. skratka | Popis |
---|---|
Alt+Q alebo Shift +Alt +Q |
Štandardná klávesová skratka na vyvolanie užívateľských akcií. Klávesová skratka nie je užívateľsky definovateľná. |