Príklad ukazuje návratovú hodnotu funkcie (v procedúre Procx skriptu E.C3) pri volaní RPC procedúr medzi skriptami E.C1, E.C2 a E.C3, pričom ich vykonávanie sa začalo v skripte E.C1 jeho inicializačnou časťou.
;******************* E.C1 ******************* PROCEDURE Proc1x CALL [E.C2] Proc2 ON SELF.EVH ; riadok 3. END Proc1x
PROCEDURE ProcB CALL Proc1x ; riadok 7. END ProcB
BEGIN CALL ProcB ; riadok 11. END
;******************************************** ;*********** Server event: E.C2 ************* RPC PROCEDURE Proc2 CALL [E.C3] Proc3 ON SELF.EVH ; riadok 3. END Proc2 BEGIN END ;********************************************
;*********** Server event: E.C3 ************* PROCEDURE Procx TEXT _callChain _callChain := %GetCallChain() ; riadok 4. END Procx
RPC PROCEDURE Proc3 CALL Procx ; riadok 8. END Proc3
BEGIN END ;******************************************** Hodnota lokálnej premennej _callChain procedúry Procx v skripte E.C3.
Procx: 4 SELF.EVH;E.C3( 24791) 1438;Proc3: 8 SELF.EVH;E.C2( 24792) 1439;Proc2: 3 Proc1x: 3 ProcB: 7 SELF.EVH;E.C1( 1325457) 2207;: 11 Každý riadok v hodnote premennej _callChain (okrem prvého) identifikuje riadok v ESL skripte, na ktorom je akcia CALL. Napríklad výpis: SELF.EVH;E.C3( 24791) 1438;Proc3: 8 označuje riadok číslo 8 v skripte objektu s menom E.C3. Riadok číslo 8 je v kontexte procedúry Proc3. Skript sa vykonával na procese SELF.EVH. HOBJ objektu E.C3 je 24791 a jednoznačný identifikátor bežiaceho skriptu je 1438 (táto hodnota sa generuje pri každom štarte ľubovoľného skriptu a je jednoznačná v rámci procesu, ktorý interpretuje skripty). Uvedený riadok obsahuje akciu CALL Procx, ktorá volá procedúru Procx v rámci skriptu. Keďže nedošlo k zmene skriptu, predchádzajúci riadok (v hodnote premennej _callChain) už obsahuje len meno procedúry a číslo riadku. Takýmto spôsobom je možné zistiť z hodnoty premennej _callChain (interpretujem zdola nahor): Vykonávanie akcií sa začalo v skripte E.C1 (na procese SELF.EVH), na riadku 11 je volanie procedúry ProcB, na riadku 7 volanie procedúry Proc1x a na riadku 3 je RPC volanie procedúry Proc2 v skripte E.C2 v rámci rovnakého procesu SELF.EVH. V procedúre (Proc2) na riadku 3 je RPC volanie procedúry Proc3 v skripte E.C3 v rámci rovnakého procesu SELF.EVH. Na riadku 8 v skripte E.C3 je volanie procedúry Procx a volanie funkcie GetCallChain nastalo na riadku 4. |