Funkcia %HI_OpenLogDBByMask


Funkcia
Funkcia %HI_OpenLogDBByMask otvorí dialóg pre prezeranie monitorovacej databázy (riadiaca funkcia).
Deklarácia
%HI_OpenLogDBByMask(
   TEXT in mask,
   TEXT in skupinaMask,
   INT in priorityMask,
   BOOL in bASC,
   INT in pageLen,
   INT in intervalType
   [, HBJ in refToLG1, ...]
 )

 
alebo
 
%HI_OpenLogDBByMask(
   TEXT in mask,
   TEXT in skupinaMask,
   INT in priorityMask,
   BOOL in bASC,
   INT in pageLen,
   TIME in bt,
   TIME in et
   [, HBJ in refToLG1, ....]
 )

Parametre
mask Maska (v okne pre nastavenie parametrov monitorovania).
skupinaMask Filter pre zdroj udalostí, musí byť rôzny od 0 a musí vzniknúť súčtom hodnôt preddefinovaných premenných _LOGF_*.
priorityMask Filter pre Typ udalosti.
bASC Usporiadanie:
  • @TRUE - vzostupne
  • @FALSE - zostupne
pageLen Veľkosť stránky v rozsahu 5 ... 200.
intervalType Časový interval prezeraných udalostí. Možné hodnoty:
  • 1 - posledná hodina
  • 8 - posledných osem hodín
  • 12 - posledných 12 hodín
  • 24 - posledných 24 hodín
bt Počiatočný čas (pri definovaní iného čas. intervalu než umožňuje definovať parameter intervalType).
et Koncový čas (pri definovaní iného čas. intervalu než umožňuje definovať parameter intervalType).
refToLG1, ... Odkazy na logické skupiny.

Popis
Funkcia otvorí dialóg pre dialóg pre prezeranie monitorovacej databázy podľa parametrov zadaných funkciou. Parametre funkcie kopírujú chovanie príslušného dialógu pre otvorenie monitorovacej databázy pri prezeraní udalostí pre objekty vyhovujúce danej maske.

Parameter skupinaMask predstavuje filter pre zdroj udalosti. Musí byť rôzny od 0 a musí vzniknúť súčtom hodnôt preddefinovaných premenných _LOGF_PRTY_*.

Parameter priorityMask predstavuje filter pre Typ udalosti. Musí byť rôzny od 0 a musí vzniknúť súčtom hodnôt preddefinovaných premenných _LOG_PRTY_*.

Celočíselným parametrom intervalType je možné riadiť časový rozsah prezeraných udalostí v zmysle dialógu pre otvorenie monitorovacej databázy. Iný časový interval je možné zadať použitím parametrov bt a et.

Objekty vyhovujúce výberovej podmienke mask je možné ďalej filtrovať na základe ich príslušnosti k logickej skupine pomocou nepovinných parametrov refLG1, refLG2, .... Tieto parametre sú odkazy na príslušné logické skupiny.
Príklad
 %HI_OpenLogDBByMask("*s*", _LOGF_LOGONLOGOFF, _LOG_PRTY_INFO, @TRUE, 20, 8, AI_1_KB03\HBJ) 

Poznámka
Parameter mask môže byť nahradený obsahom XML súboru, ktorý reprezentuje rozšírený filter. Ten umožňuje filtrovať cez všetky textové stĺpce v monitorovacej DB.
V ROOT elemente sú obalené názvy stĺpcov spolu s filtračnými podmienkami. Každý element, reprezentujúci filtračnú podmienku, môže ešte obsahovať atribút strict. Tento atribút určuje, či je filtrovanie cez daný stĺpec striktne požadované.

Pre elementy, reprezentujúce filtračné podmienky, platia tieto pravidlá:

  • rezervované elementy sú: name, descript, person, oldvalue, newvalue alebo comment,
  • iné ako rezervované elementy sa nesmú vyskytovať v ROOT elemente,
  • každý rezervovaný element sa môže vyskytovať najviac raz,
  • ak sa daný rezervovaný element v XML súbore nevyskytuje, nie je súčasťou filtra,
  • ak pre element nie je definovaný atribút strict, alebo má inú hodnotu ako "off", potom je vždy nastavený na "on",
  • záznamy musia vyhovovať všetkým elementom s nastaveným atribútom strict na "on" a súčasne aspoň jednému elementu s nastaveným atribútom strict na "off" (ak existuje),
  • filtračná podmienka zadaná v elemente povoľuje tú istú syntax ako maska.
Napríklad XML súbor v tvare:

<?xml version="1.0" encoding="utf-8" ?>
  <ROOT>
    <name strict="on">!TF2\.<\name>
    <descript strict="off">SystemD2000*<\descript>
    <oldvalue strict="off">Run<\oldvalue>
  <\ROOT>

je možné vyskladať pomocou nasledujúceho príkladu:



 PROCEDURE AddElement(IN INT _parent, IN TEXT _name, IN TEXT _value, IN TEXT _attribute)
 
 INT _eName
  INT _eValue
  BOOL _bAttribute
 
 _eName := %XML_AddElement(_parent, _name)
 _eValue := %XML_AddTextNode(_eName, _value)
 _bAttribute := %XML_SetAttribute(_eName, "strict", _attribute) 
 
 END AddElement
 
 ENTRY btnOpenLogDB_OnClick
 
 INT _eDoc
 INT _eRoot
 
 TEXT _filterAsXML
  BOOL _ok
 
 _eDoc := %XML_CreateDocument()
 _eRoot := %XML_AddElement(_eDoc, "ROOT")
 
 CALL AddElement(_eRoot, "name", "!TF2\.", "on")
  CALL AddElement(_eRoot, "descript", "SystemD2000*", "off")
 ;CALL AddElement(_eRoot,"person", "*", "on")
  CALL AddElement(_eRoot, "oldvalue", "Run", "off")
 ;CALL AddElement(_eRoot, "newvalue", "*", "on")
  ;CALL AddElement(_eRoot, "comment", "*", "on")
 
 _filterAsXML := %XML_ToString(_eDoc)
 %HI_OpenLogDBByMask(_filterAsXML, _LOGF_LOGONLOGOFF, _LOG_PRTY_INFO, @TRUE)
 _ok := %XML_FreeDocument(_eDoc)
 
 END btnOpenLogDB_OnClick