GetStateData

Toto je hlavní technické fórum pro diskusi o problémech při vytváření PROMOTIC aplikací a jejich řešení.

GetStateData

Postby ondra.bi » Fri 02. Aug 2013 11:27:39

Dobrý den,
nedaří se mi zobrazit poslední aktivní alarm. Stále se mi vrací první. Ani parametr scanstart nemá žádný vliv na výsledek.
v události onStateChange objektu PmAlarmEvent volám tento script:
Code: Select all
al = pMe.GetStateData("Source,Desc", "state:2,3;records:1;")
pm.Debug al(0,0) & " - " & al(1,0)

Použitá verze: Promotic8.2.9
ondra.bi
 
Posts: 14
Joined: Thu 14. Mar 2013 11:05:16

Re: GetStateData

Postby Tomáš Bräuer » Fri 02. Aug 2013 13:01:34

Dobrý den!
Máte asi pravdu. Alarmy jsou v paměti nesetříděné podle žádného kritéria, tak jak postupně vznikly objekty PmAlarmEventItem. Alarmy (server) si sice udržují třídění dle různých kritérií (indexy). Bohužel není možno nikde ve filtračním řetězci zadat, podel kterého sloupce třídit. Anebo zapnout pro metody vyčítající obsah alarmů (např GetStateData) vždycky třídění dle TimeOn, pokud se neuvede jinak.

V současné verzi metodou GetStateData tedy nejde vzít poslední vzniklý alarm.

Chápu, že jde o omezení. Zkusím to naimplementovat (opravit) nejprve ve vývojové verzi a pokud to bude bez komplikací, tak se budu snažit to opravit ve stabilní verzi 8.2.11.
Tomáš Bräuer
Administrátor
 
Posts: 153
Joined: Thu 13. Dec 2012 9:13:13

Re: GetStateData

Postby Tomáš Bräuer » Wed 14. Aug 2013 12:54:16

Dobrý den!
Tak jsem to do verze 8.2.11 opravil. Nyní se vyčítání vět stavových alarmů řídí přesně tak, jak bylo celou dobu uvedeno v dokumentaci viz http://www.promotic.eu/cz/pmdoc/Objects/Promotic/PmAlarmEvent/Meth/GetStateData.htm . Tzn že když není ve filtračním řetězci uvedeno ani from ani to, potom se věty prohledávají od nejnovějších po nejstarší (doteď to bylo chybně naopak). Navíc se směr prohledávání dá ovlivnit pomocí scanstart:from|to (implicitně scanstart:to), tzn původní chování se dá dosáhnout přidáním scanstart:to.
V prohlížečky alarmů (lokální i webová) mají své vlastní třídění, takže k v prohlížečkách k žádné změně pořadí nedojde.
Ke změně ale dojde v metodě PmAlarmEvent.GetStateData (např pro export do CSV nebo do reportů) bude pořadí obrácené a bude je nutno případně obrátit zmíněnou volbou ve filtračním řetězci.
V každém případě nyní když se věty omezí pomocí požadovaného počtu vět, tak to bude bráno z nastavené strany. Takže je možno zjistit poslední jeden nebo několik aktivních alarmů, což chybně nešlo.
Tomáš Bräuer
Administrátor
 
Posts: 153
Joined: Thu 13. Dec 2012 9:13:13


Return to Nevím jak...

Who is online

Users browsing this forum: No registered users and 5 guests