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):


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:

  1. objektov v systéme
  2. 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.

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ázaDBS_INSERTPG_READ, BrowserReadDB_READ
Sybase 12/PostgreSQL"Text" -> "Text"Text" -> "Text"Text" -> "Text
dbmanager.exe"" -> """" -> """" -> ""

Invalid->NULLNULL->""NULL->""
ORACLE OCI"Text" -> "Text"Text" ->"Text"Text" -> "Text
dbmanager_ora.exe"" -> NULL


Invalid->NULLNULL->""NULL->Invalid
ORACLE ODBC"Text" -> "Text"Text" -> "Text"Text" -> "Text
dbmanager.exe"" -> NULL


Invalid->NULLNULL->""NULL->""

Akcie pre obsluhu chybových stavov


Riadiace akcie


Riadiace akcie sú akcie, ktoré ovplyvňujú tok riadenia (poradie vykonávania akcií) v skripte.

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:

  1. rôznych inštanciách eventov v rámci jedného procesu D2000 Event Handler,
  2. rôznych skriptoch aktívnych schém v rámci jedného procesu D2000 HI,
  3. 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


Čítanie/zapisovanie dát z/do archívu, mazanie dát v archíve.

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:

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).

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_...).

Ostatné akcie


Write a comment...