Inheritance from Modeled Components

A derived component inherits component-level definitions from the modeled component used to create it. It does not inherit the structure, entities, and fields from the modeled component. These definitions are copied once when the derived component is created to ensure that entities and fields can be inherited directly from modeled entities.

Any component entities and fields that have the same name as a modeled entity or field, whether they are in the modeled component or the derived component, inherit from the modeled object, so they are derived entities and fields.

If a property or ProcScript of a derived object is changed in the component, it overrides the inherited definition.

Inheritance from Modeled Components and Entities

Diagram showing the sources from which a derived component inherits

When you create a derived component from a modeled component:

  1.   The derived component inherits component-level ProcScript modules, constant definitions (#define declarations), and most properties from the modeled component. Component-level properties include:

    Component properties
    Window properties
    HTML properties
    HTML layouts of dynamic and static server pages

    When changes are made in the modeled component, they are also applied to the components that are derived from it. If the change was made in ProcScript, the derived component must be recompiled before the change is applied.

  2.   ProcScript modules, constant definitions, and properties of entities and fields are not inherited from the modeled component. They are copied once when the derived component is created. If changes are subsequently made to the component structure, or its entities and fields, they must be manually applied in the derived component.
  3.   Entities and fields derived from a modeled entity inherit their ProcScript modules, constants, and properties from the modeled entity or field. The derived entities and fields may have been defined in the modeled component or they may be objects in the derived component.
  4.   Non-derived entities and fields in the derived component do not inherit from any source. They are local to the component (or the modeled component).

    Depending on the value, it may not be possible to change database-related properties such as Database Behavior, Locking, Data Type, and Is External.

Related Topics