OpenRefToObject

OpenRefToObject

Funkcia %OpenRefToObject


Funkcia

Funkcia %OpenRefToObject umožní požiadať systém o sprístupnenie hodnôt objektu určeného jednoznačným identifikátorom HOBJ.

Deklarácia

BOOL %OpenRefToObject( HBJ in _hbj, BOOL in _bSynchro )

Parametre

_hbj

Hodnota typu HBJ alebo INT.

_bSynchro

Hodnota typu Boolean.

Popis

Funkcia požiada systém o sprístupnenie hodnôt objektu, ktorý je určený jeho jednoznačným identifikátorom HOBJ. Funkcia sprístupní hodnoty všetkým ESL skriptom, ktoré sú interpretované v rámci aktuálneho procesu (D2000 HI alebo D2000 EventHandler). Použitie funkcie má zmysel vtedy, ak sa objekt (ktorého HOBJ je uvedené pri volaní funkcie) nenachádza priamo v skripte a systém automaticky nevie, že hodnoty daného objektu sú pre vykonávanie skriptu potrebné.

Príklad

Ak napríklad užívateľská premenná U.Test (typ hodnoty Integer) má HOBJ 1234, tak nasledujúci skript buď bude generovať run-time error (_ERR_OBJECT_NOT_FOUND), alebo lokálna premenná _val nebude mať správnu hodnotu:

 

INT _val ALIAS _a SET_a AS (1234) ; chybný riadok _val:= _a

 

Tomuto stavu sa dá predísť práve použitím funkcie %OpenRefToObject(IN HBJ _hbj, IN BOOL _bSynchro) nasledovným spôsobom:

 

BOOL _openOk INT _val ALIAS _a SET _a AS (1234) _openOk:= %OpenRefToObject(_a\HBJ,@TRUE) IF _openOk THEN ;Už dobrý riadok _val:= _a ELSE ;Objekt s HOBJ 1234 neexistuje !!! ENDIF

 

Parameter _bSynchro je nastavený na @TRUE. Toto nastavenie umožní skontrolovať prostredníctvom návratovej hodnoty funkcie, či objekt s požadovaným HOBJ existuje. Prvé volanie funkcie v rámci aktuálneho procesu synchrónne komunikuje s procesom D2000 Server kvôli overeniu existencie objektu. Táto činnosť môže, v závislosti od vyťaženia systému, určitý čas trvať. Ak tento existuje (funkcia vráti @TRUE), ďalšie následné volania sú rýchle.

Ak je tento parameter nastavený na @FALSE, skript len zašle požiadavku o otvorenie objektu a pokračuje ďalej. Návratová hodnota funkcie je @TRUE, a preto nie je možné overiť, či objekt s daným HOBJ existuje.

Poznámka

Ak skript už nemá záujem o hodnoty daného objektu, systém je informovaný funkciou %CloseRefToObject.