Kbase P14391: Why are the parameters of a PERSISTENT User-Interface Trigger not re-evaluated?
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  18/11/2009 |
|
Status: Verified
GOAL:
Why are the parameters of a PERSISTENT User-Interface Trigger not re-evaluated?
GOAL:
4GL/ABL: What is the syntax for defining a PERSISTENT User-Interface Trigger?
GOAL:
How long does a PERSISTENT User-Interface Trigger remain in effect?
GOAL:
What is the scope of a non PERSISTENT User-Interface Trigger?
FACT(s) (Environment):
All Supported Operating Systems
Progress 9.x
OpenEdge 10.x
FIX:
A persistent trigger is defined in the trigger-phrase of a DEFINE VARIABLE statement, ON statement or a CREATE Widget Statement using the following syntax:
PERSISTENT RUN <procedure-name> [IN <procedure-handle>][ ( input-parameters ) ]
A persistent trigger remains in effect after the current procedure terminates. Normally, a trigger remains in effect only until the procedure or trigger in which it is defined ends. A persistent trigger is defined only for user-interface events and must be a procedure specified by <procedure-name> that must be available whenever the trigger is invoked. For example, if you use an internal procedure, you must ensure that the trigger is not invoked from another external procedure.
A persistent trigger procedure can take one or more input parameters; it cannot have any output or input/output parameters. The parameters of persistent triggers are evaluated ONLY ONCE when the trigger is defined; they are NOT RE-EVALUATED when the trigger executes. These parameters are evaluated when the trigger is attached. (For the Trigger phrase, the trigger is attached when the widget is realized.) This means, for example, that one cannot pass the SELF handle as an input parameter.