I’ve run into an infinite recursion problem with activities and have found a way to prevent it. Rather than calling the activity recursively on a new object from within itself, now the rules will call a separate phrase which puts the object into a queue and only calls the activity if it is not already running.
It works in theory, but how do I check whether the activity is running or not? The manual suggests “if the ____ activity is not going on”, but this gives the following error:
[code] In the sentence ‘unless the activating activity is going on, cause activation’ , it looks as if you intend ‘activating activity is going on’ to be a condition, but that would mean comparing two kinds of value which cannot mix - an activity on objects and a - so this must be incorrect.
I was trying to match this phrase:
unless (activating activity is going on - a condition) , (cause activation - a phrase)
This was what I found out:
activating activity is going on = a condition
cause activation = an instruction to do something
[/code]
I’m not sure what’s going wrong, but it seems bad. Is there a better way to test, outside of a rule?
(Note: activating something is an activity on objects, “cause activation” invokes a complicated loop to activate everything in the list.)