Cloud Software Group, Inc. EBX®
Documentation > User Guide > Datasets
Navigation mode Documentation > User Guide > Datasets

# Dataset inheritance

Using the concept of dataset inheritance, it is possible to create child datasets that branch from a parent dataset. Child datasets inherit values and properties by default from the parent dataset, which they can then override if necessary. Multiple levels of inheritance can exist.

An example of using dataset inheritance is to define global default values in a parent dataset, and create child datasets for specific geographical areas, where those default values can be overridden.

##### Note

By default, dataset inheritance is disabled. It must be explicitly activated in the underlying data model.

##### See also

- Data model configuration

## Dataset inheritance structure

Once the root dataset has been created, create a child dataset from it using the button in the dataset selector in the navigation pane.

##### Note

- A dataset cannot be deleted if it has child datasets. The child datasets must be deleted first.

- If a child dataset is duplicated, the newly created dataset will be inserted into the existing dataset tree as a sibling of the duplicated dataset.

## Value inheritance

When a child dataset is created, it inherits all its field values from the parent dataset. A record can either keep the default inherited value or override it.

In tabular views, inherited values are marked in the top left corner of the cell.

The button can be used to override a value.

### Record inheritance

A table in a child dataset inherits the records from the tables of its ancestor datasets. The table in the child dataset can add, modify, or delete records. Several states are defined to differentiate between types of records.

Root | A root record is a record that was created in the current dataset and does not exist in the parent dataset. A root record is inherited by the child datasets of the current dataset.
Inherited | An inherited record is one that is defined in an ancestor dataset of the current dataset.
Overwritten | An overwritten record is an inherited record whose values have been modified in the current dataset. The overwritten values are inherited by the child datasets of the current dataset.
Occulted | An occulted record is an inherited record which has been deleted in the current dataset. It will still appear in the current dataset as a record that is crossed out, but it will not be inherited in the child datasets of the current dataset.

When the inheritance button is toggled on, it indicates that the record or value is inherited from the parent dataset. This button can be toggled off to override the record or value. For an occulted record, toggle the button on to revert it to inheriting.

The following table summarizes the behavior of records when creating, modifying or deleting a record, depending on its initial state.

State | Create | Modify value | Delete
--- | --- | --- | ---
Root | Standard new record creation. The newly created record will be inherited in child datasets of the current dataset. | Standard modification of an existing record. The modified values will be inherited in the child datasets of the current dataset. | Standard record deletion. The record will no longer appear in the current dataset and the child datasets of the current dataset.
Inherited | If a record is created using the same primary key as an existing inherited record, that record will be overwritten and its value will be the one submitted at creation. | An inherited record must first be marked as overwritten in order to modify its values. | Deleting an inherited record changes it state to occulted.
Overwritten | Not applicable. Cannot create a new record if the primary key is already used in the current dataset. | An overridden record can be returned to the inherited state, but its modified value will be lost. Individual values in an overridden record can be set to inheriting or can be modified. | Deleting an overwritten record changes its state to occulted.
Occulted | If a record is created using the primary key of an existing occulted record, the record state will be changed to overwritten and its value modified according to the one submitted at creation. | Not applicable. An occulted record cannot be modified. | Not applicable. An occulted record is already considered to be deleted.

##### See also

- Record lookup mechanism

User guide table of contents

Documentation > User Guide > Datasets