WHEN(trigger, action [, BEFORE | SUCCESS | FAILURE] )
trigger | A dataset or action that launches the action. |
action | The action to execute. |
BEFORE | Optional. Specifies an action that should be executed before the input is read. |
SUCCESS | Optional. Specifies an action that should only be executed on SUCCESS of the trigger (e.g., no LIMITs exceeded). |
FAILURE | Optional. Specifies an action that should only be executed on FAILURE of the trigger (e.g., a LIMIT was exceeded). |
The WHEN function associates an action with a trigger (dataset or action) so that when the trigger is executed the action is also executed. This allows job scheduling based upon triggers.
Example:
//a FUNCTION with side-effect Action namesTable := FUNCTION namesRecord := RECORD STRING20 surname; STRING10 forename; INTEGER2 age := 25; END; o := OUTPUT('namesTable used by user <x>'); ds := DATASET([{'x','y',22}],namesRecord); RETURN WHEN(ds,O); END; z := namesTable : PERSIST('z'); //the PERSIST causes the side-effect action to execute only when the PERSIST is re-built OUTPUT(z);
See Also: FUNCTION Structure, WHEN, WAIT