Akcie v skriptoch
Skript je tvorený postupnosťou akcií, ktoré sa po aktivácii vykonajú. Akcie sa zapisujú v prostredí
editora akcií.
Časti zápisu uvedené v hranatých zátvorkách [ ] sú nepovinné. Znak | (t.j. ALEBO) vyjadruje
možnosť alternatívneho zápisu.
Typy akcií
Zoznam jednotlivých typov akcií. Nasledujúci zoznam popisuje základnú množinu akcií, ktoré sú prístupné
v obidvoch aplikáciách skriptu (objekt typu Event,
Aktívna schéma).
Akcie možno rozdeliť do týchto základných kategórií (typov):
- priraďovacie akcie
- akcie pre prístup k databáze
- akcie pre obsluhu chybových stavov
- riadiace akcie
- akcie pre komunikáciu s operátorom
- akcie pre prácu s archívom
- akcie pre synchronizovanie vykonávania akcií skriptov
- riadenie alarmov
- akcie pre prácu so štruktúrami
- akcie pre prácu s dátovými kontajnermi
- akcie pre riadenie prístupových práv
- akcie pre prácu so zoznamami objektov
- ostatné akcie
Poznámka: V systéme D2000 je možné implementovať aplikačnú funkcionalitu použitím jazyka JAVA. Ekvivalenty k ESL akciám sú uvedené v samostatnej on-line dokumentácii, ktorá sa nachádza v podadresári Help programového adresára systému D2000.
Priraďovacie akcie
Priraďovacie akcie umožňujú meniť hodnoty a odkazy na objekty:
- objektov v systéme
- lokálnych premenných
Akcie pre prístup k databáze
Pre prácu s tabuľkou databázy sú určené skupiny akcií, ktoré používajú rôzne spôsoby prístupu k dátam.
Ak pri práci s databázou nastane chyba, číselný kód ktorý ju bližšie popisuje je možné získať volaním funkcie
%GetLastExtErrorCode.
Podrobnejšie informácie o chybe je možné získať funkciou %GetLastExtErrorMsg.
Prvý spôsob využíva existenciu kľúča alebo podmienku WHERE. Podľa spôsobu
zápisu akcie umožňuje zápis/čítanie jedného alebo viacerých riadkov.
- DB_DELETE
- DB_CONNECT
- DB_DISCONNECT
- DB_INSERT
- DB_INSUPD
- DB_READ
- DB_READ_BLOB
- DB_SET_PROCESS_PARAMS
- DB_UPDATE
- DB_UPDATE_BLOB
Príklad práce s tabuľkou (akcie DB_...)
Druhý spôsob pracuje pomocou stránkovania, pričom veľkosť stránky (počet riadkov v tabuľke) je voliteľný.
Príklad práce s tabuľkou (akcie PG_ ...)
Tretí spôsob je modifikácia prvého. Modifikácia spočíva v tom, že práca s tabuľkou nevyžaduje akcie typu CONNECT a DISCONNECT.
Posledný spôsob umožňuje využiť celú škálu SQL príkazov pri práci s databázou.
Čítanie databázy prostredníctvom príkazu SELECT.
Príklad práce s databázou (akcie SQL_ ...)
Pre riadenie transakčného spracovania príkazov (v zmysle databázovej transakčnosti) je možné použiť nasledovné akcie:
Príklad transakčnej práce s databázou
Vynútenie obnovy (refresh) zobrazených dát v pohľadoch užívateľa v procese D2000 HI (napríklad zobrazovač typu Browser) je možné vyvolať akciou:
Zaregistrovanie procedúry, ktorá sa zavolá po
- zmene dát v tabuľke,
- zrušení tabuľky,
- pri prepínaní aktívnej a pasívnej inštancie procesu DbManager,
- obnove dát akciou DB_REFRESH_TABLE,
je možné akciou:
Prenos handle na databázové spojenie medzi bežiacimi ESL skriptami
Konverzia a reprezentácia hodnôt v databáze
Zápis
Hodnota premennej (vo väčšine prípadov) políčka lokálnej štruktúrovanej premennej je pri zápise do databázy konvertovaná tak, že ak je platná, je zapísaná normálnym spôsobom. Ak je neplatná je do databázy vložená NULL hodnota. Pri type TEXT toto pravidlo funguje rovnako, okrem databázy ORACLE, kde je prázdny text reprezentovaný databázovou hodnotou NULL rovnako ako neplatná hodnota.
Čítanie
Po prečítaní hodnoty z databázy (ktorá je rôzna od NULL) prebehne konverzia hodnoty na požadovaný typ, ktorý je daný typom premennej, do ktorej je umiestnený výsledok čítania. V prípade úspešnej konverzie je výsledná hodnota platná. Pri čítaní NULL hodnoty je výsledná hodnota neplatná. Pri type TEXT je NULL hodnota v databáze konvertovaná na platný prázdny textový reťazec. Jediná výnimka je čítanie prostredníctvom akcie DB_READ/DBS_READ na platforme ORACLE OCI, kedy je NULL hodnota konvertovaná na neplatnú hodnotu.
Tabuľka znázorňuje výsledok zápisu a čítania textovej hodnoty v závislosti na databázovej platformy.
DBS_INSERT - zápis textovej hodnoty do databázy (D2Value -> DBValue).
PG_READ, BrowserRead - čítanie textovej hodnoty z databázy akciou PG_READ alebo do
zobrazovača Browser (dáta zverejnené cez OnFetchDone) (DBValue -> D2Value).
DB_READ - čítanie textovej hodnoty prostredníctvom akcie DB_READ (DBValue -> D2Value).
Databáza | DBS_INSERT | PG_READ, BrowserRead | DB_READ |
---|---|---|---|
Sybase 12/PostgreSQL | "Text" -> "Text | "Text" -> "Text | "Text" -> "Text |
dbmanager.exe | "" -> "" | "" -> "" | "" -> "" |
Invalid->NULL | NULL->"" | NULL->"" | |
ORACLE OCI | "Text" -> "Text | "Text" ->"Text | "Text" -> "Text |
dbmanager_ora.exe | "" -> NULL | ||
Invalid->NULL | NULL->"" | NULL->Invalid | |
ORACLE ODBC | "Text" -> "Text | "Text" -> "Text | "Text" -> "Text |
dbmanager.exe | "" -> NULL | ||
Invalid->NULL | NULL->"" | NULL->"" |
Akcie pre obsluhu chybových stavov
Riadiace akcie
Riadiace akcie sú akcie, ktoré ovplyvňujú tok riadenia (poradie vykonávania akcií) v skripte.
- BEGIN
- CALL - lokálne volanie procedúr
- CALL - vzdialené volanie procedúr
- CALL - volanie Public procedúr
- DELAY
- DO_LOOP, EXIT_LOOP, END_LOOP
- ENABLE
- END
- END procedure
- EVENT
- GOSUB
- GOTO
- IF GOTO
- IF THEN [ELSE] ENDIF
- IMPLEMENTATION
- ON DB_CHANGE
- ON GOTO
- ON CHANGE
- OnExternalEvent
- PRAGMA
- PROCEDURE
- RETURN
- Riadiace funkcie (bez návratovej hodnoty)
- WAIT
Akcie pre komunikáciu s operátorom
Nasledovné akcie umožňujú implementovať v skripte dialóg s operátorom, alebo ovládať schémy na pracovnej konzole operátora. Tu je vhodné použiť preddefinovanú lokálnu premennú _FROM_HIP. Ak je skript spustený zo schémy (pripojený grafický objekt na ovládanie), je automaticky táto lokálna premenná asociovaná s procesom, z ktorého bol skript odštartovaný. Toto umožňuje adresne pracovať s týmto procesom:
- otvárať, zatvárať schémy,
- posielať správy pre operátora,
- smerovať akciu QUERY.
Akcie pre synchronizovanie vykonávania akcií skriptov
Akcie GETACCESS a RELEASEACCESS umožňujú navzájom synchronizovať vykonávanie akcií v:
- rôznych inštanciách eventov v rámci jedného procesu D2000 Event Handler,
- rôznych skriptoch aktívnych schém v rámci jedného procesu D2000 HI,
- rôznych skriptoch alebo globálne v aplikácii v inštanciách eventov alebo skriptov aktívnych schém.
Poskytujú určitú formu komunikácie medzi skriptami.
Akcie pre prácu s archívom
- CALCARCHEXPR CALCARCHEXPR
- CALCARCHEXPRCALCONDEMANDSTAT
- CALCSTATFUNC
- CALCSTATFUNCARR
- DELETEARCHDATA
- GETARCHARR
- GETARCHARR_TO_CNT
- GETARCHCOL
- GETARCHROW
- GETARCHSTRUCT
- GETARCHVAL
- INSERTARCHARR
- UPDATEARCHVAL
Ovládanie alarmov
Ovládanie systémových alebo procesných alarmov.
Akcie pre prácu so štruktúrami
Pri práci s rozsiahlymi lokálnymi štruktúrami je občas potrebné štruktúru utriediť, vložiť alebo zmazať riadok, alebo vyhľadať riadok. ESL toto umožňuje, ale tieto operácie si vyžadujú prechod celej štruktúry cyklom. Toto môže byť časovo náročné. ESL preto definuje nasledujúce akcie, ktoré uvedené činnosti vykonávajú optimálnejšie:
- COPYCOL
- COPYCOLIDX
- DELETE
- EXPORT_CSV
- FIND_TRUE
- GETCOLTIME
- GETROWDESC
- IMPORT_CSV
- INSERT
- SETCOLTIME
- SORT
- TRANSCOLTOROW
- TRANSROWTOCOL
Akcie pre prácu s dátovými kontajnermi
Akcie umožňujú prácu so skladom hodnôt, tzv. dátovým kontajnerom (interná dátová štruktúra).
- CNT_CNVTOARRAY
- CNT_CREATE
- CNT_DEBUG
- CNT_DELETE
- CNT_DESTROY
- CNT_FIND
- CNT_GETITEM
- CNT_GETKEY
- CNT_GETNR
- CNT_INSERT
Akcie CNT_GETNR, CNT_CNVTOARRAY a CNT_GETITEM umožňujú prezeranie hodnôt z kontajnera
pomocou indexu. Akcia CNT_CNVTOARRAY interne vytvorí pole, v ktorom sú všetky hodnoty usporiadané
podľa kľúča vzostupne. Index je poradové číslo hodnoty v rámci poľa.
Pole zaniká zmazaním alebo vložením hodnoty do kontajnera.
Vznik kontajnera zabezpečujú akcie CNT_CREATE - voľne použiteľný kontajner, alebo
GETARCHARR_TO_CNT. Druhý typ kontajnera je plnený stránkami, ktoré obsahujú dáta prečítané z archívu.
Takto koncipovaný prístup do archívu je efektívnejší (spotreba pamäte a čiastočne rýchlosť) ako použitie akcie GETARCHARR.
Pre kontajner vytvorený akciou GETARCHARR_TO_CNT sú použiteľné len akcie CNT_GETNR, CNT_FIND
a CNT_DESTROY (príklad).
Prenos dátových kontajnerov medzi bežiacimi ESL skriptami
Akcie pre riadenie prístupových práv
Akcie umožňujú nastavenie prístupových práv počas behu systému.
Akcie pre prácu so zoznamami objektov
Akcie pre prácu so zoznamami objektov umožňujú:
- vytvoriť zoznam objektov podľa zadaných kritérií,
- prejsť na prvú, predošlú, nasledujúcu alebo poslednú stránku zoznamu,
- prejsť na stránku určenú jej poradovým číslom,
- zistiť celkový počet objektov zoznamu (pozor! nejde o počet objektov na stránke),
- zatvoriť zoznam.
Po vytvorení zoznamu sú ihneď sprístupnené dáta na prvej stránke.
Taktiež prechod na prvú, predošlú, nasledujúcu, poslednú alebo poradovým číslom zadanú stránku sprístupňuje dáta danej stránky.
Každý záznam v zozname objektov predstavuje jednoznačný identifikátor objektu, názov objektu, popis objektu, typ objektu, počet riadkov a počet stĺpcov.
Príklad práce so zoznamami objektov (akcie LST_...).