Extension attributes in ODW
In Horizons-enabled environments, extension attributes can be stored in the Omada Data Warehouse only if the data is imported to the Enterprise Server or RoPE. These components can then provide the extension attributes data to history tracking, which persists it in the Data Warehouse.
Extension attributes are available for the following data objects in the Omada Data Warehouse:
| Enterprise Server | RoPE |
|---|---|
| System | Account |
| Resource | Resource Assignment |
| Identity | |
| Context* |
(*) Context means any data object type used within a context type data object. An example of context is the Org. Unit type.
Configuration of the Data Warehouse extension attributes is performed through the Enterprise Server. The management depends on the type of the object.
Managing extension attributes
Administrators can display a list of all extension attributes stored in the Data Warehouse, then create and modify them using the Extension attributes view in the Setup menu.
To create a new extension attribute, fill in the following form:
-
Display name - the name used when managing extension attributes
-
Name - the actual name used in the Data Warehouse
-
Applicable for - the Data Warehouse dimension for which the attribute is defined. The extension attributes are stored for each dimension separately.
-
Track history - the flag that specifies the behavior applied in the Data Warehouse when the value is changed. If the flag is checked, then a new version of the whole object (Identity) will be created; otherwise, the value is updated without creating a new version.
-
Data type - allows setting the type used in the Data Warehouse to store the attribute. The following data types are available:
- bool – a true/false value.
- date – a calendar date.
- float – a number that can include decimal places (floating-point).
- int – a whole number (integer), no decimal places.
- multivalue (xml) – a set of multiple values stored together, for example, when an attribute can have more than one value per object.
- text – a text string.
noteThe data format is not enforced during transfer between systems and components. Ensure that the correct formatting is followed to avoid processing inconsistencies. Configuring the correct data type is critical for optimal storage and performance of data retrieval.
-
Length - configured when text data type is selected. The maximum length is 2000 characters; if you exceed it, an error message appears.
Possible operations on an existing extension attribute
You can perform a number of operations on an existing extension attribute. Go to Setup > Extension attributes (under Administration: Connectivity configuration) and open an extension attribute of your choice.
You can modify the following fields:
-
The display name.
It impacts the way the attribute is displayed in the Enterprise Server. Currently, it has no impact on the presentation in the reports.
-
The Track history flag.
Selecting the flag or clearing it impacts how the history tracking processes changes to the attribute. If the flag is not checked, the history collected in the past is not removed.
-
The data type.
It allows you to modify the data type used in the Data Warehouse.
The process may behave differently depending on the current data and the type of change, and not all conversions are possible (for example, a date cannot be converted to text).
If the type is expanded or there is currently no data in the extension attribute, the change happens immediately, but if data conversion is required, then an LRDO (long-running data operation) is scheduled in the background. The extension attribute is locked during the change of the data type; it cannot be modified until the conversion is completed. New data loaded to the Data Warehouse will use the new format immediately.
Once the conversion is complete, the Data Warehouse notifies the Enterprise Server about the result.
limitationWhen converting to a data type with a length limit (for example, from XML to text – see point 4 with Length below), values that exceed the new limit are truncated, and the truncated characters are permanently lost. For example, converting a value of
EMEA-Finance-Approverto a format with a 10-character limit results inEMEA-Finan, with the rest permanently deleted.Currently, such a data loss is not prevented by an error message or data retrieval options. The data type conversion runs as an LRDO, which remains locked and is left in a failed state.
This is planned to change in future releases, with data rollback options and a clear error message to avoid silent data loss.
-
The length – only applicable to the text data type; it is not visible for other types.
If an extension attribute is not used, it can be deleted. Currently, deletion does not remove the attribute from the Data Warehouse.
Using extension attributes
For every Data Object Type configured for transfer from the Enterprise Server to the Omada Data Warehouse, the configuration of extension attributes is done in the Data Object Type Properties.
When editing a property, you can configure a connection to the extension attribute using the Warehouse destination attribute. The dropdown menu contains all available extension attributes for a specific type, but also master data properties configured in the Data Warehouse which are not assigned to any other property.
For the dimensions populated by RoPE (Accounts and Resource Assignments), use one of the following configuration options:
-
In the source system configuration, configure manually with Import queries and mappings:
-
Extension attributes are created automatically when they are used in Resource types. Manage such extension attributes through the Attributes of a Resource type by allowing attributes and selecting an Attribute set. The attributes in Attribute set are bound to properties, and this configuration is then reflected in extension attributes.
Resource types with category permission or role are used by the resource assignments, and resource types for account are used by accounts.
If the attribute is hidden (Hide attribute is selected), no extension attribute is created for that attribute.