We have several Process Model that have nodes for user tasks. A lot of these nodes need to terminate based on a couple of decisions. The first being a timer (that is configured to skip this node when the timer expires) and the second being a rule such as "and(not(pv!isManageSubmit),pv!isUnlock)". We are seeing a lot of orphaned processes that never complete and most seem to be stuck on a node with this type of a configuration. In one process we were able to put the rule before the node in an XOR and just have the timer for the exception and it works great. Has anyone else experienced this situation? Is this a bad practice?
Thanks in advance for any information someone can share.
Discussion posts and replies are publicly visible
I agree with Chris above, this might require some sort of screenshot showing how and where your process instances are stuck.
Just a hunch (but not sure if this is directly related), instead of using an AND() statement in a rule node, you should just add separate expression inputs for each part, since the rule already functions like AND(). This is partly because the AND() function itself has a quirk (last i checked) where it will evaluate NULL values as if they're TRUE, causing unintended side-effects sometimes. My suggestion here merely simplifies this somewhat.
This is one of the configurations that I can share.
This the rule portion
This is the timer. We are using a constant for the number of minutes
are these configurations both on the same node or on separate nodes? what type(s) of node are they contained in? what does the process flow do after these are executed - does it just go to a terminate node, or something else?
Additionally, in a stuck instance, can you verify that pv!isUnlock is true(), and this node is still active?
For the Timer, are there any Advanced Options configured?
Same node. User Input that when one of the two fires should terminate.
It is an interface that gives the user an option of clicking on one of three links. Since that will change the screen for the user the node needs to timeout to terminate and is the rule isunlock is true it should terminate as well.
I did find an advance option in the timer. It is checking if a boolean variable is true. If the variable is false will it not fire the timer?
Yes, the timer will only fire if all advanced conditions are true(). Sounds like that could be your issue.
Thanks! I will look into the advance option.