Use the Recursion Assistant

Administrators open this window using Tools menu ➔ Recursion Assistant... The menu command is shown when the user's role has Collections/Rules administrator marked.

Recursion (also cyclic or looping) errors are infinite loops of product BOMs, where an item is shown on its own BOM, or on one of its lower-level child items. They're often discovered when a multi-level BOM report fails. An example would be a multilevel assembly list like:

  • ... continues ...

  • Assembly 100123
  •   Assembly 100101
  •     Assembly 120456
  •       Assembly 100123
  •         Assembly 100101
  •           Assembly 120456
  •           ... continues ...

In this example, assembly 100101 cannot automatically be identified as the top-level item, because it's also a child of 100123. You may see an error message like The maximum recursion has been exhausted before statement completion when running a multilevel BOM report or adding an affected assembly to a change form.

The Recursion Assistant searches your database for recursions, and lets you select the true top-most parent item.

The Recursion Assistant lets you update items that were previously released. Back up your database before using this tool, and examine your results after the test is finished.

To ensure data integrity, you must be the only one user logged into the system while using the tool.

Another type of recursion error occurs when References are cross-linked: where ItemA shows ItemB as its reference, and ItemB shows ItemA as its reference. The cross-linked items must be found, and then one side of the relationship must be removed. Cross references complicate revision management, can't be represented in PDX packages, and make some types of Transforms difficult to write.

The Recursion Assistant... menu command is only visible to users who have a Roles member that includes the Collections/Rules administrator permission.

  1. Click on the Item menu ➔ Close All to close all part, document and change form records before you begin.

  2. Click on the Tools menu and select the Recursion Assistant... command. This opens the Recursion Assistant tool and automatically starts the recursion search.

    • The Recursion Assistant may show one or more recursion groups. In each group, a random assembly is selected. Review and select the correct top-level assembly. If you need to investigate further, mark the Skip this and fix later option.

      If you select an assembly that is not the top assembly, then the correct relationship is broken and the incorrect relationship is not fixed.

      Click the Continue button to make the necessary changes to the selected BOMs.

    • If the test doesn't find any recursion errors, then the list is empty. Click the Continue button.

  3. When the tool shows Recursion test finished, click the Close button.