Promotic
WikipediaLinkedInYoutubeTwitterFacebook

GetHistoryData - metoda obiektu PmaAlarmGroup

Opis:
Uzyska dane z historii alarmów/eventów , które odpowiadają określonemu tekstu fitra.
Składnia:
Array GetHistoryData(String sColumns, String sFilter)
Wołanie:
a = oAl.GetHistoryData(sColumns, sFilter)
Parametry:
sColumns(String) Lista identyfikatorów żądanych kolumn (właściwości) alarm pozycji, oddzielonych przecinkiem (,), na przykład "Desc,TimeOn,TimeOff,TimeAck".
"TimeOn" - Czas aktywacji
"TimeOff" - Czas deaktywacji
"TimeAck" - Czas pokwitowania
"GlobalId" - Identyfikator alarm pozycji w grupie
"Priority" - Priorytet alarm pozycji
0 - niski
1
2
3
4
5 - średni
6
7
8
9
10 - wysoki
"Area" - Zaznaczenie obszaru alarm pozycji
"Source" - Zaznaczenie źródła alarm pozycji
"Desc" - Opis alarm pozycji
"Comment" - Komentarz alarm pozycji
"UserNote" - Notatka użytkownika alarm pozycji
"AckerId" - Identyfikacja użytkownika potwierdzającego
sFilter(String) Tekst filtra określający, które alarmy mają być zawarte w określonym wyniku.

Różne pola filtra mogą być użyte także równocześnie, w takim przypadku alarm musi odpowiadać wszystkim (np. "desc:FIQ100;priority.ge:5;").

Tekst filtra xx nie może być pusty łańcuch (np. nie można wpisać "desc:;").

Dane są tutaj w formacie KeyVal, na przykład "desc:Test2;records:50;".

 

Istnieją następujące rodzajy tekstów filtrowania ("field" przedstawia niektórą kolumnę alarmów):

"field:xx;" oznacza, że odpowiednie pole alarmu musi być równe wartości xx.
"field:#eq:xx;" oznacza, że odpowiednie pole alarmu musi być równe wartości xx. Jeżeli odpowiednie pole alarmu ma być równe jednemu z kilku tekstów, wtedy można wprowadzić kilka tekstów oddzielonych #or:.
"field:#begin:xx;" oznacza, że odpowiednie pole alarmu musi rozpoczynać się na tekst xx. Jeżeli odpowiednie pole alarmu ma rozpoczynać się na niektóry z kilku tekstów, wtedy można wprowadzić kilka tekstów oddzielonych #or:.
"field:#in:xx;" oznacza, że odpowiednie pole alarmu musi wewnątrz zawierać tekst xx. Jeżeli odpowiednie pole alarmu ma zawierać niektóry z kilku tekstów, wtedy można wprowadzić kilka tekstów oddzielonych #or:.
"field:#le:xx;" oznacza, że odpowiednie pole alarmu musi być mniejsze lub równe liczbie xx.
"field:#ge:xx;" oznacza, że odpowiednie pole alarmu musi być większe lub równe liczbie xx.
 

Notatka! Jeżeli pole rozpoczyna się tekstem s., wtedy chodzi o wybór ukryty końcowemu użytkownikowi w alarm przeglądarce oraz służy do ustawienia stałego filtra skryptem bez względu na ustawienia części filtra użytkownika. Dla jednej kolumny można zastosować oba typy pól filtra jednocześnie. żeby alarm był odpowiedni, musi odpowiadać obu polom filtra. To można wykorzystać do ustawienia stałego filtra skryptem (bez możliwości ingerencji końcowym użytkownikiem) a równocześnie ustawić również stan początkowy filtra użytkownika (z możliwością ingerencji końcowym użytkownikiem). Na przykład s.source:#begin:Kociol;source:Kociol1;.

 
"area:#oper:xx;" (opcjonalne) - Wyświetlać alarmy, których obszar (area) spełnia daną operację #oper:xx. Część filtra bez możliwości ingerencji użytkownika końcowego w alarm przeglądarce. Na przykład "area:Kotlownia1;" lub "area:#eq:Kotlownia1;" lub "area:#eq:Kotlownia1#or:Kotlownia2;" lub "area:#begin:Kotlownia;".
"s.area:#oper:xx;" (opcjonalne) - Wyświetlać alarmy, których obszar (area) spełnia daną operację #oper:xx. Część filtra ukryta użytkownikowi końcowemu w alarm przeglądarce. Na przykład "s.area:Kotlownia1;" lub "s.area:#eq:Kotlownia1;" lub "s.area:#eq:Kotlownia1#or:Kotlownia2;" lub "s.area:#begin:Kotlownia;".
"source:#oper:xx;" (opcjonalne) - Wyświetlać alarmy, których źródło (source) spełnia daną operację #oper:xx. Część filtra bez możliwości ingerencji użytkownika końcowego w alarm przeglądarce. Na przykład "source:Kociol;" lub "source:#eq:Kociol;" lub "source:#eq:Kociol1#or:Kociol2;" lub "source:#begin:Kociol;".
"s.source:#oper:xx;" (opcjonalne) - Wyświetlać alarmy, których źródło (source) spełnia daną operację #oper:xx. Część filtra ukryta użytkownikowi końcowemu w alarm przeglądarce. Na przykład "s.source:Kociol;" lub "s.source:#eq:Kociol;" lub "s.source:#eq:Kociol1#or:Kociol2;" lub "s.source:#begin:Kociol;".
"desc:#oper:xx;" (opcjonalne) - Wyświetlać alarmy, których opis (desc) spełnia daną operację #oper:xx. Część filtra bez możliwości ingerencji użytkownika końcowego w alarm przeglądarce. Na przykład "desc:FIQ101;" lub "desc:#eq:FIQ101;" lub "desc:#eq:FIQ101#or:FIQ102;" lub "desc:#begin:FIQ;".
"s.desc:#oper:xx;" (opcjonalne) - Wyświetlać alarmy, których opis (desc) spełnia daną operację #oper:xx. Część filtra ukryta użytkownikowi końcowemu w alarm przeglądarce. Na przykład "s.desc:FIQ101;" lub "s.desc:#eq:FIQ101;" lub "s.desc:#eq:FIQ101#or:FIQ102;" lub "s.desc:#begin:FIQ;".
"comment:#oper:xx;" (opcjonalne) - Wyświetlać alarmy, których komentarz (comment) spełnia daną operację #oper:xx. Część filtra bez możliwości ingerencji użytkownika końcowego w alarm przeglądarce. Na przykład "comment:korekta;" lub "comment:#eq:korekta;" lub "comment:#eq:korekta#or:próba;" lub "comment:#begin:korekta;".
"s.comment:#oper:xx;" (opcjonalne) - Wyświetlać alarmy, których komentarz (comment) spełnia daną operację #oper:xx. Część filtra ukryta użytkownikowi końcowemu w alarm przeglądarce. Na przykład "s.comment:korekta;" lub "s.comment:#eq:korekta;" lub "s.comment:#eq:korekta#or:próba;" lub "s.comment:#begin:korekta;".
"priority:#oper:xx;" (opcjonalne) - Wyświetlać alarmy, których priorytet (priority) spełnia daną operację #oper:xx. Część filtra bez możliwości ingerencji użytkownika końcowego w alarm przeglądarce. Na przykład "priority:5;" lub "priority:#eq:5;" lub "priority:#le:5;" lub "priority:#ge:5;".
"from:xx;" (opcjonalne) - (tylko historia) Wyświetlać alarmy, których czas powstania (timeon) jest większe lub równe czasu "xx". Czas określa się w formacie time(YYYY.MM.DD-hh:mm:ss.mmm), np. "from:time(2018.07.28-14:30:00.000);". Zakres czasu umożliwia ograniczyć przeszukiwaną część alarmów (alarmy poza zakres czasu nie są testowane).
"to:xx;" (opcjonalne) - (tylko historia) Wyświetlać alarmy, których czas powstania (timeon) jest mniejsze lub równe czasu "xx". Czas określa się w formie time(YYYY.MM.DD-hh:mm:ss.mmm), np. "to:time(2018.07.28-15:00:00.000);". Czas to można wprowadzić również przy pomocy słowa kluczowego now, które zaznacza do aktualnego czasu (w momencie wołania), np. to:now. Zakres czasu umożliwia ograniczyć przeszukiwaną część alarmów (alarmy poza zakres czasu nie są testowane).
"timerange:xx;" (opcjonalne) - (tylko historia) Wyświetlać alarmy, których czas powstania (timeon) znajduje się w przedziale czasu. Dla określenia przedziału czasu przy pomocy timerange, musi być określone from lub to, gdzie timerange umożliwia wyliczenie drugiej brakującej granicy przedziału czasu. Przedział czasu można więc wprowadzić przy pomocy nastąpującego: from - to, from - timerange lub to - timerange. Na przykład to:now;timerange:30m;. Zakres czasu umożliwia ograniczyć przeszukiwaną część alarmów (alarmy poza zakres czasu nie są testowane).

Zakres czasu można wprowadzić w formie liczby całkowitej następowanej znakiem jednostki czasu (bez spacji). Jednostkami czasu są: w = tydzień, d = dzień, h = godzina, m = minuta, s = sekunda. Na przykład timerange:12h; lub timerange:90m;.

"records:xx;" (opcjonalne) - (tylko historia) Umożliwia wprowadzić (ograniczyć) ilość żądanych alarmów, spełniających kryteria filtra. Po uzyskaniu wskazanej ilości znalezionych alarmów przeglądanie alarmów zakończy się.

Wraz z określeniem przedziału czasu umożliwia ograniczać przeszukiwanie alarmów na ograniczoną część alarmów. Zwykły filtr by bowiem przeszukiwał wszystkie alarmy we wszystkich kopiach zapasowych. Z powodów praktycznych jest wskazane ograniczyć filtrowanie tylko na niezbędną oraz użyteczną część historii alarmów.

"scanrecords:xx;" (opcjonalne) - (tylko historia) Umożliwia wprowadzić (ograniczyć) ilość wszystkich testowanych (przeglądanych) alarmów, bez względu na to, czy alarmy spełniają czy nie spełniają kryterium filtra. Po uzyskaniu wskazanej ilości testowanych alarmów przeglądanie zakończy się. Ta opcja zapobiega temu, by po nieznalezieniu żądanej ilości alarmów spełniających kryterium fitra, nieprzeszukiwano zbędnie dużo alarmów w historii.
"scanstart:xx;" (opcjonalne) - (tylko historia) Umożliwia zmienić domyślny kierunek przeszukiwania (skąd rozpocznie się przeszukiwanie). Wprowadza się w postaci scanstart:from; lub scanstart:to;.

Jeżeli zakres czasu nie jest w ogóle określony lub jeżeli jest wprowadzony to (może być także wspólnie z from lub z timerange), wtedy jest domyślny kierunek przeszukiwania od nowszych do starszych.

Jeżeli jest wprowadzony tylko from (może być i wspólnie z timerange), wtedy jest domyślny kierunek przeszukiwania od starszych do nowszych.

Używać scanstart ma sens zwłaszcza jeżeli zakres czasu jest wprowadzony przy pomocy from oraz to oraz jeżeli jest konieczne zmienić kierunek przeszukiwania na od starszych do nowszych (scanstart:start;).

"lang:xx;" (opcjonalne) - (tylko skryptowe metody) Określa język, dla którego zostaną obliczone lokalizowane teksty. Język jest określony przez identyfikator tekstowy, np. "pl", "en", "cs" itd. - patrz Języki z pełnym wsparciem w systemie PROMOTIC. Jeżeli nie jest ustawione, wtedy zastosuje się właśnie używany jęzak aplikacji - standardowo nie jest konieczne określenie tej opcji. Patrz konfigurator "Główny język runtime".
"headers:xx;" (opcjonalne) - (tylko skryptowe metody) Określa, czy lista wyjściowa będzie zawierać (pierwszy oraz/lub drugi wiersz) także lokalizowane nazwy kolumn dla dalszego wyświetlenia.
title - Pierwszy/drugi wiersz listy wyjściowej będzie zawierać lokalizowane nazwy kolumn dla dalszego wyświetlenia.
id - Pierwszy/drugi wiersz listy wyjściowej będzie zawierać systemowe nazwy kolumn (identyfikatory) dla dalszego wyświetlenia.
Notatka:
Implementacja filtrowania alarm pozycji ma tendencję przeszukiwać oraz testować wszystkie dostępne alarmy w historii. Żeby poprzez każde zapytanie nie były przeszukiwane wszystkie pozycje, jest konieczne zapytanie (kryterium fitra) ograniczyć do mniejszej części alarmów/eventów. Ograniczenie można uzyskać poprzez określenie przedziału czasu, kiedy to są przeszukiwane i testowane tylko elementy określonego przedziału czasu. Następne ograniczenie można uzyskać przy pomocy określenia żądanej ilości znalezionych alarm pozycji jak również maksymalnej ilości przeszukiwanych alarm pozycji. Przy ograniczonej części alarmów/eventów, które będą przeszukiwane, można określić kierunek przeszukiwania (scanstart), lecz wynik przeszukiwania jest zawsze uszeregowany tak samo. Zmiana kierunku przeszukiwania ma sens tylko jeżeli jest dodatkowo uzupełniona o ograniczenie żądanej ilości przeszukiwanych (scanrecords) lub znalezionych pozycji (records). Wtedy kierunek ma sens, ponieważ określa, po której stronie przedziału czasu mogą ewentualnie brakować alarmy, dzięki ograniczenia pozycji aplikacji.
Przykład1:
Uzyska ostatnich (najnowszych) 50 alarmów records:50;scanrecords:500; (wartości żądanych kolumn), spełniających kryterium filtra (desc:Test2;).
JavaScriptVBScriptWybierz oraz skopiuj do schowka

a = oAl.GetHistoryData("Desc,TimeOn,TimeOff,TimeAck", "desc:Test2;records:50;scanrecords:500;");
Przykład2:
Uzyska wszystkie alarmy (wartości żądanych kolumn), spełniające kryterium filtra (desc:Test2;) w przeciągu ostatnich 8 godzin (timerange:8h;) względem określonego czasu (to:time(2018.07.20-06:00:00.000);) oraz z ograniczeniem do maksymalnej ilości przeszukiwanych i zwróconych zapisów records:50;scanrecords:500;.

Uzyska również nazwy kolumn w pierwszym wierszu.

JavaScriptVBScriptWybierz oraz skopiuj do schowka

a = oAl.GetHistoryData("Desc,TimeOn,TimeOff,TimeAck", "desc:Test2;to:time(2018.07.20-06:00:00.000);timerange:8h;records:50;scanrecords:500;lang:en;headers:title;");

Historia:
Pm7.03.08: Wytworzono
Pm9.00.01: Usunięty błąd: Niepotrafiła przeszukać więcej kopii zapasowych (jeżeli nie była określona ilość rekordów "records:xx;").
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice