15.6. Uruchamianie akcji (programów)
Sprawdzanie, czy dla danej sprawy należy uruchomić jakąś akcję, jest procedurą zależną od wielu
parametrów. Dla danej sprawy przeglądane są wszystkie zdefiniowane akcje (zbudowane w oparciu o
plik konfiguracyjny wczytywany podczas uruchamiania programu damcsud) i sprawdzane są kryteria,
czy dana akcja może zostać uruchomiona dla tej sprawy. Akcja nie zostanie uruchomiona, jeśli
ilość sekund jaka minęła od czasu utworzenia sprawy jest mniejsza niż wartość parametru
delaytime akcji. Kolejną procedurą sprawdzającą, czy dana akcja może zostać uruchomiona
dla tej sprawy jest sprawdzenie, czy wszystkie wartości parametrów name dla jakiegokolwiek
obiektu program_spec występują w ID chociaż jednego, aktywnego zdarzenia wchodzącego w
skład sprawy. W przypadku, gdy dana akcja ma być uruchomiona jako ostatnia dla tej sprawy,
wtedy występowanie wartości parametrów name danej akcji jest przeprowadzane dla każdego
zdarzenia (także nieaktywnego) wchodzącego w skład sprawy. Jeśli nie wystąpią wszystkie
wartości parametrów name, dla żadnego obiektu program_spec, wtedy dana akcja nie jest
uruchamina. Następnie sprawdzane jest, czy upłynął określony przez parametry repeatingtime
czas od momentu utworzenia sprawy. Jeśli nie, to akcja nie jest uruchamiana. Następnie
sprawdzana jest zgodność parametru period danej akcji z obecnym stanem sprawy. Jeśli nie
ma to być ostatnia akcja dla tej sprawy, to sprawdzane jest, czy dana akcja już w tej
chwili nie przebiega dla tej sprawy. Jeśli tak to nie jest uruchamiana kolejny raz.
Nie zostanie również uruchomiona, gdy wartość parametru
period danej akcji została zdefiniowana jako once, a już była wcześniej dla tej
sprawy uruchomiona. Jeśli od czasu ostatniego uruchomienia danej akcji dla tej
sprawy minął czas określony parametrem repeatingtime, to zostanie ona uruchomiona
ponownie. Dana akcja zostanie również uruchomiona, jeśli będzie uruchomiona po raz
pierwszy, lub jako ostatnia akcja dla tej sprawy.