ACTIVATE_UC_OBJECT can be used to create a recursive call leading to endless loops.

Document ID : KB000084626
Last Modified Date : 30/10/2018
Show Technical Document Details
Issue:
In Version 10, the script function ACTIVATE_UC_OBJECT could be used to take advantage of a 'bug' to make recursive calls, which when implemented poorly would often lead to endless looping.

This was corrected in the versions Automation Engine 11.2.7, 12.0.4, 12.1.1 and 12.2.0 as follows:
To prevent endless loops in the Automation Engine, the number of recursive object activations is limited. 
The 16th attempt to activate an object is canceled with the status FAULT_OTHER and the error message
 
U00007016 Task 'Name' (RunID '0123456789') is interlaced too much.
 
The limit also applies to recursive workflow activations or a mix of workflow activations and object activations. 
Example: A workflow activates a script which in turn activates the workflow again. If the loop happens 5 times (3 times 5 is 15), the 16th activation is canceled.

This correction means that when upgrading to one of the above mentioned versions or higher, all objects taking advantage of this 'bug' must be redesigned.
Cause:
Misuse of the script function ACTIVATE_UC_OBJECT to make recursive calls can leads to endless loops.
Resolution:
The recursive call check logic for the script function ACTIVATE_UC_OBJECT has been enhanced by introducing a new setting to define/deactivate the check for endless loops. 
The new setting is called 'MAX_NESTING_DEPTH' and it can be found in the 'UC_SYSTEM_SETTINGS'. 
The valid values for the setting are as follows:
 
Default value = 16 
Max-Value = 9999 
Min-Value = 0 (Check is disabled

The new setting has been introduced in the following versions: 
Automation Engine 12.1.3 HF2 - Available.
Automation Engine 12.1.4 - tentatively planned release end of January 2019.
Automation Engine 12.2.1 - tentatively planned release end of October 2018. 
Automation Engine 12.3.0 - tentatively planned release end of February 2019.