15.6. Running actions (programs)
Checking whether some action should be run for a case is a procedure depends on
many parameters. For a given case all defined actions are browsed (they are built
according to the configuration file, which is loaded during startup of damcsud)
and the conditions for each action are checked whether that action should be run for that
case. The action won't be run, when a seconds number that elapses from the creation
time of a case is lower than a value of delaytime parameter. Next
procedure, checking if a given action cac be run for the case, is a procedure
checking wheather all values of name parameters, for any
program_spec object, occur in ID of at least one active
event of that case. When the action is going to be run as the last for that case, an occurrence of
name parameter values of the action is performed for each event (also inactive)
of that case. No action will be run if all name parameter values don't occur for any
program_spec object. Next the program checks whether a specified period of time described by
repeatingtime parameter has elapsed since creation of that case. If not,
the action won't be run. Next compatibility of period parameter is checked
with a current state of the case. If the action isn't going to be the last action for
that case, it will checked whether the action is running right now for this case. If
yes, it won't be run another time. If a period parameter of a given action is defined as
once and it had been run earlier for that case, the action won't be run.
If from the last running time of a given action for this case, time defined
repeatingtime parameter elapsed, the action will be run again.
A given action also will be run when it's going to be run for the first time,
or it is the last action for that case.