Registering trigger functions
- Last UpdatedDec 04, 2023
- 2 minute read
It is possible to register triggers dynamically instead of using external trigger files. The main advantages are:
-
Registering/unregistering can be done dynamically during execution of user application.
-
All needed triggers can be defined in one Python module.
When using dynamic registration it is necessary to have a callable object defined. This object will be called when the trigger is invoked. A callable object means here a function name that is defined by the user. It is recommended to register all the triggers at user application startup and unregister them before the application is terminated.
The system provides three functions in kcs_util module for supporting dynamic triggers. See detailed description and example below
|
register_trigger(name, type, function) |
||
|
This function registers new user trigger. It is only possible to register triggers that don't return any other additional values than return code. See Batch Vitesse Overview in Triggers chapter. |
||
|
Input Parameters: |
||
|
Name |
string |
Name of trigger. The same name as used for trigger file. See Batch Vitesse Overview in Triggers chapter. |
|
type |
constant |
kcs_util.kcsPOST_TRIGGER or kcs_util.kcsPRE_TRIGGER |
|
function |
Callable object |
Trigger function. |
|
Returned value: |
||
|
None. |
||
|
Exceptions: |
||
|
kcs_ArgumentError |
Argument Error. |
|
|
kcs_ValueError |
Given function argument is not a callable object, trigger name not found or trigger type invalid. |
|
|
unregister_trigger(name, type, function) |
||
|
This function un-registers user trigger. |
||
|
Input Parameters: |
||
|
Name |
string |
Name of trigger. The same name as used for trigger file. See Batch Vitesse Overview in Triggers chapter. |
|
Type |
constant |
kcs_util.kcsPOST_TRIGGER or kcs_util.kcsPRE_TRIGGER |
|
Function |
Callable object |
Trigger function. |
|
Returned value: |
||
|
None. |
||
|
Exceptions: |
||
|
kcs_ArgumentError |
Argument Error. |
|
|
kcs_ValueError |
Given function not found, or not callable or invalid trigger type. |
|
|
kcs_ElementNotFound |
Trigger function was not registered. |
|
|
get_registered_triggers () |
||
|
This function returns registered triggers as a dictionary. |
||
|
Input Parameters: |
||
|
None. |
||
|
Returned value: |
||
|
[0] |
dictionary |
All defined triggers are stored in a dictionary. |
|
Exceptions: |
||
|
kcs_GeneralError |
General Error. |
|
|
Example: |
||
|
Module: Triggers.py |
||
|
import kcs_util |
||
|
# callable objects that will be used by triggers def NewDrawingPreTrigger(): # user code |
||
|
def OpenDrawingPreTrigger(): # user code |
||
|
# function for trigger registration def RegisterTriggers(): kcs_util.register_trigger("trig_draft_dwg_new", kcs_util.kcsPRE_TRIGGER, NewDrawingPreTrigger) kcs_util.register_trigger("trig_draft_dwg_open", kcs_util.kcsPRE_TRIGGER, OpenDrawingPreTrigger) |
||
|
# clean up registered triggers def UnregisterTriggers(): kcs_util.unregister_trigger("trig_draft_dwg_new", kcs_util.kcsPRE_TRIGGER, NewDrawingPreTrigger) kcs_util.unregister_trigger("trig_draft_dwg_open", kcs_util.kcsPRE_TRIGGER, OpenDrawingPreTrigger) |
||