Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

Hull and Outfitting

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)

Related Links
TitleResults for “How to create a CRG?”Also Available in