Popis modifikácií správania skriptu ESL v kontexte aktívnej schémy.
Akcia END alebo ukončenie vykonávania skriptu
Skript v rámci aktívnej schémy nemôže skončiť. Po vykonaní inicializačnej časti, ktorá je aktivovaná hneď po otvorení schémy (ešte pred jej zobrazením), alebo po vykonaní akcie END je skript v stave čakania na udalosti generované činnosťou užívateľa. Prichádzajúce udalosti sú obsluhované prostredníctvom ENTRY alebo obsluhou zmeny hodnoty objektu (ON CHANGE).
Ošetrenie chybového stavu
Pri výskyte chybového stavu je štandardné správanie ESL doplnené o zobrazenie správy v prostredí procesu D2000 HI. Keďže nemôže prísť k ukončeniu skriptu, je prerušené aktuálne spracovávanie udalosti a skript sa dostane do stavu čakania na udalosť.
Správa sa zobrazí v dialógu, ktorý ponúka možnosti na riešenie chyby, možnosť zobraziť chybové hlásenia alebo pripraviť správu s chybovými hláseniami pre poslanie na adresu zadanú v parametroch aplikácie.
Po stlačení tlačidla "Zobraziť informácie o chybe" sa zobrazí dialógové okno s poslednými chybovými hláseniami. Ich počet je uvedený v titulku okna. Správy sú oddelené vodorovnou čiarou a ich štruktúra sa môže časom meniť.
Užívateľ môže pomocou tlačidla vložiť tento oznam do schránky a následne odoslať administrátorovi. Prípadne môže využiť možnosť preposlania na definovanú adresu (viď vyššie). Ak počas zobrazenia okna pribudnú ďalšie chybové hlásenia, povolí sa tlačidlo Obnoviť, ktoré umožní obnoviť zobrazovaný obsah.
Tlačidlom OK sa chyba potvrdí a dialógové okno sa zatvorí.
Priradenie do indexovej premennej
Indexová premenná, deklarovaná na úrovni schémy, je zviazaná (jej deklaráciou) s objektom typu Štruktúrovaná premenná. Určuje, ktorý riadok (v zmysle hodnoty na riadku) štruktúry je priebežne (na zmenovom princípe) aktualizovaný. Preto zmena hodnoty takejto lokálnej premennej prebieha špeciálnym spôsobom:
_INDEX - indexová premenná pre štruktúrovanú
premennú SV.Struct. Aktuálna hodnota 3.
Priradenie:
_INDEX := 2
spôsobí zatvorenie (ukončenie aktualizácie) riadku SV.Struct[3] a otvorenie riadku SV.Struct[2].
Vzhľadom na to, že zatvorenie a otvorenie riadku môže, v závislosti od zaťaženia systému, trvať určitý čas, toto priradenie je implementované v nasledujúcich krokoch:
_INDEXPREV ; aktuálna hodnota indexovej premennej (v našom príklade 3) _INDEXNEW ; nová hodnota indexovej premennej (v našom príklade 2)
%HI_EnablePicture(@FALSE) _INDEX := _INDEXNEW ; s nastaveným stavom Transient IF %HI_ChangeRow(SV.Struct\HBJ, _INDEXPREV, _INDEXNEW) = _ERR_NO_ERROR THEN _INDEX := _INDEXNEW ; bez stavu Transient ELSE ; neúspešná zmena indexu _INDEX := neplatna hodnota ; bez stavu Transient ENDIF %HI_EnablePicture(@TRUE) ; len ak bola schéma pred priradením povolená
Uvedená postupnosť akcií je vykonaná interne v rámci priradenia.