Declaration: | trigger postActivate
|
Applies to: | Component |
Activation: | Activated after the requested operation is activated, and in a web environment, before the preRequest trigger. |
Default behavior: | Sets return 0 |
Behavior upon completion: | None |
Description
The postActivate trigger is typically used to handle post processing specific to the operation, such as storing the state of a transaction, and so on.
State management is especially significant in a web environment, so default ProcScript is provided in the postActivate trigger of dynamic and static server pages.
The activation sequence of the preRequest, postRequest, preActivateand postActivate triggers in a web environment is shown in the following table:
preRequest return status | preActivate return status | exec or other operation | postActivate | postRequest | WRD status |
---|---|---|---|---|---|
$status = -21 | Not executed | Not executed | Not executed | Not executed | -21 |
$status < 0 | Not executed | Not executed | Not executed | Not executed | 0 |
$status >= 0 | $status = -21 | Not executed | Not executed | Executed | -21 |
$status >= 0 | $status < 0 | Not executed | Not executed | Executed | 0 |
$status >= 0 | $status >= 0 | Executed | Executed | Executed | 0 |
Triggers and operations are activated from left to right, depending on the $status returned by previous triggers.
Example: postActivate Trigger for DSP
The default code of the DSP postActivate trigger generates the initial page or a page updated, depending on the value of $webresponsetype. The following example shows a simplified version of this code (excluding the error handling.)
trigger postActivate selectcase $webresponsetype case "UPDATE" ; Update page websave ; Generate data case "FULLPAGE" ; Initial page weblayout ; Generate layout webdefinitions ; Generate component definitions websave ; Generate data endselectcase end; postActivate
Getting and Setting State with Cookies
The following example gets the Uniface cookie
from the browser and places it in the $cookie$
component variable. The USERCONTEXT
information is stored as an associative list in the format
Variable=
Value, where
Variable is the name of a field or variable in the server page. The
getlistitems/id
statement reads the values contained in
$cookie$
and distributes them accordingly:
trigger preActivate $cookies$ = $webinfo("USERCONTEXT") getlistitems/id/component $cookies$ end; preActivate
In the postActivate trigger of the static server page, the following code
updates the state information when the page completes. The ProcScript in this example initializes a
component variable $statelist$
with the names of the fields or variables
containing the state information, then uses the putlistitems/id
statement to populate the list in $statelist$
with the current values from the
server page:
trigger postActivate
$statelist$ = "Variable1=;Variable2="
putlistitems/id/component $statelist$
$webinfo("USERCONTEXT") = $statelist$
end; postActivate
If you put empty cookie data into the first item
of USERCONTEXT
, for instance, by using putitem
$statelist$, 1, ""
, followed by $webinfo("USERCONTEXT") =
$statelist$
, Uniface substitutes a NULL identifier at the moment the empty cookie data is
sent to the client.