There can be various scenarios in which cyclic dependency may occur. In below document I will just try to give an overview of what is cyclic dependency and some scenario how it can occur.
What is cyclic dependency?
Cyclic dependency can be considered as an endless loop. From application perspective it can be considered as a state where an action or process is not able to logically analyse and progress to its end state which can either be passed or failed.
Identifying such a state the RA will generate an error during validation and will generate an error of "Cyclic dependency detected"
Scenario when cyclic dependency occurs
1- Have two server type "OneServerType" with just one agent and "ManyServerType" with many agents.
2- Have a simple process shown below which span across both server type.
Note: The above process has a loop between the server types from OneServerType à ManyServerType àOneServerType
3- Right click on OneServerType and select "Execution Properties"
4- Under Maximum simultaneous agents select limited by number and set it to 1 : This means that how many agents can run in parallel irrespective of server type they belong to
5- Now try to publish the process and It will throw the cyclic dependency error.
Resolution: Don't limit the number of "Maximum Simultaneous Execution"
1: Create an array of type string for example Test Array
2: Create one simple string parameter say TestValue and assign some value to it
3: Create an Action "Array-Add value to an array" and put below input and output values
Input Array: <Test Array>
Output Array: <Test Array>
4: Run the action in test mode and you will get below error
Resolution: First Initialize this array. The reason why above error thrown is because the array is not initialize and we try to assigned the same array to itself after adding value to it which is still not initialized.