///

Projekt: KZIS ///

Author : M. Brousek ///

Created: 21.4.2010 ///

Description: Základní třída definující událost MW. ///

Vešekré procesy systému jsou spouštěny prostřednictvím událostí, volaných prostřednictvím /// uživatelského rozhraní systému. /// Událost může být vyvolána jedním ze způsobů, definovaných v rámci rozhraní systému. /// Viz seznam níže a třída druhů událostí KZIS.Data.TS.EventKind ///

Jednotlivé nastalé události zachytává a zpracovává příslušná služba systému. /// V principu platí, že každá třída BS (následník Ens.BusinessService) zachycuje jedinečný /// druh události. Služba danou událost zaznamená a její instanci pak předá v rámci požadavku (Request) /// příslušnému procesu. /// Vzhledem k tomu, že druh události je jednoznačně určen příslušným kódem a popisem, je pro /// každý podporovaný druh události vytvořen následeník této třídy, který daný kód a popis definuje /// v parametrech EventCode a DefaultDescription ///

V součansosti jsou definovány následné druhy událostí: /// /// /// /// /// /// /// ///
1Plánovač systému KZISKZIS.Data.TS.Events.ekScheduler
2Uživatel prostřednictvím GUIKZIS.Data.TS.Events.ekUserGUI
3Zpracování dávkového souboruKZIS.Data.TS.Events.ekBatchFile
4Zpracování datového CSV souboruKZIS.Data.TS.Events.ekCSVFile
5Plánovač systému EnsembleKZIS.Data.TS.Events.ekEnsTask
99Neznámá událostKZIS.Data.TS.Events.ekUnknown
///

///

Ne všechny popsané druhy událostí jsou v současné době využity! ///

V případě doplnění nové události je třeba doplnit tento seznam z důvodu evidence a zachování jednoznačnosti použitých kódů /// (špatně se to pak dohledává po jednotlivých definovaných třídách) ///

Class KZIS.Data.TS.MWEvent Extends %Persistent { /// Jednoznačný kód druhu události Parameter EventCode = 0; /// Popis daného druhu události Parameter DefaultDescription = "Abstract event"; /// Instance třídy druhu události, odpovídající definovanému kódu a popisu Property Kind As KZIS.Data.TS.EventKind; /// Čas zaznamenání události Property ExecutionTime As %TimeStamp; /// Zaznamená událost této třídy (daného druhu) a vrátí její instanci. ClassMethod MarkEvent() As KZIS.Data.TS.MWEvent { set tNewEvent = ##class(KZIS.Data.TS.MWEvent).%New() set tNewEvent.Kind = ##class(KZIS.Data.TS.EventKind).OpenCode(..#EventCode, ..#DefaultDescription) set tNewEvent.ExecutionTime = ##class(KZLibrary.DateTimeUtils).JustNow() set tSC = tNewEvent.%Save() quit tNewEvent } }