Skip to content

Managing Inherited Elements#

This section explains how to work with inherited elements in extendable controllers and how to customize them when needed.

Viewing Inherited Content#

When working with extendable controllers, inherited elements are visually distinguished in the user interface to help you understand which components come from parent controllers versus those defined locally. The following table describes how inherited content appears in different parts of the system:

Element Type Visual Indicators Behavior
Drivers Marked as virtual and greyed out in New and Edit wizards Cannot be modified or removed; inherited from parent controller
Workflows Marked with a diamond symbol (◇) on workflow editor page Appear in your controller but remain linked to their parent; read-only until overridden
Tasks Greyed out and cannot be unselected in New and Edit wizards Automatically included from parent controller; cannot be changed or removed
Parent Controller Displayed on the Controller details page Shows the inheritance relationship and parent controller information

Extending Workflows#

You can customize inherited workflows by creating local copies:

  1. Open your Controller Workflow on the Workflow Editor

  2. Inherited workflows are in read-only state

    Inherited Workflow in Read-Only State

  3. Override inheritance

    • Select a workflow from the parent controller
    • Click the Override button

    Override Button Location

  4. Modify Local Workflow

    • Make any changes needed to the local copy
    • The original parent workflow is no longer used for this controller
    • Your changes only affect the current controller

    Workflow After Override - Now Editable

  5. Save, approve Controller changes and make it effective, so it can be used or extended.

Workflow Limitations#

When working with inherited workflows, there are important restrictions to keep in mind:

  • Cannot Delete: You cannot delete workflows inherited from parent controllers
  • Override Instead: To "remove" a parent workflow, create a local copy and disable all tasks
  • Unique Names: All workflow names must be unique within the controller (including inherited ones)

Runtime Behavior#

Unified Operation#

At runtime, the system treats the entire inheritance chain as a single controller. All workflows and drivers from all levels in the hierarchy are sent to the running process, with no distinction made between inherited and local elements during execution. This unified approach ensures that the controller operates seamlessly regardless of how its functionality was assembled through inheritance.

Performance Considerations#

Inheritance relationships are resolved at deployment time, which means there is no runtime overhead for inheritance resolution during controller execution. As a result, extendable controllers behave identically to traditional single controllers from a performance perspective, ensuring that the inheritance architecture does not impact system efficiency.