Properties in XML

XML properties can be defined within these entities:

  • Databases
  • Connections
  • Dimensions
  • Cubes

XML properties are stored in the XML structure of the respective entity, specifically within the <Alea:Properties> XML element.

Reading and modifying properties

You can read and modify XML properties using these options:

  • The respective GetProperties and PutProperties XML functions.
  • The Edit Database dashboard of EPM Administration for dimensions or cubes.
Note: You can modify a property only if it is not read-only. You must have the appropriate permissions to access and modify properties.

This table shows the permissions required to read and modify properties:

Action Entity Permission
Read

Database

Connection

View
Read

Dimension

Cube

View

Note: The dimension and cube must be visible to the user.
Modify Database View and Administer OLAP Database
Modify Connection View
Modify Dimension View and Edit Dimensions
Note: The dimension must be visible to the user.
Modify Cube View and Administer OLAP Database

Types of properties

This table shows the XML property types:

Type Description
System properties

Pre-defined properties that influence OLAP behavior.

The properties always use the Alea namespace prefix.

Custom properties

User-defined or process-defined properties not interpreted by OLAP.

The properties may use the Alea namespace or no namespace.

The properties may contain text and nested XML elements.

Restrictions

These are the restrictions on the <Alea:Properties> XML element:

  • It must only contain XML elements. Text content is not allowed.
  • Each property name must be unique among the direct children of <Alea:Properties>. This restriction does not apply to nested levels or to <Alea:Translation> elements.

Examples of valid structures

This structure contains only unique root-level property names and no root-level text.

<Alea:Properties>
  <MyProperty1>OK</MyProperty1>
  <MyProperty1_1>OK</MyProperty1_1>
</Alea:Properties>

This structure contains both duplicated property names and text only in the nested levels.

<Alea:Properties>
  <MyProperty2>
    <MyProperty3>
      <MyProperty4>OK</MyProperty4>
      <MyProperty4>OK</MyProperty4>
      some text
    </MyProperty3>
  </MyProperty2> 
</Alea:Properties>

Examples of invalid structures

Structures that contain text directly, for example:

<Alea:Properties>
  <MyProperty>OK</MyProperty>
  some text
</Alea:Properties>

Structures with duplicated property names among direct children, for example:

<Alea:Properties>
  <MyProperty>OK</MyProperty>
  <MyProperty>OK</MyProperty>
</Alea:Properties>

PutProperties behavior

If there are multiple <Alea:Properties> XML elements, the PutProperties functions of all named classes process only the first one.

These are the ways in which each direct child of <Alea:Properties> is processed:

  • Inserting the property if none with the same name exists.
  • Replacing the existing property with the same name.
  • Deleting the property with the same name if it is empty. An empty property has no text, no child elements, and no attributes.
  • Returning an error in <Alea:Return> if:
    • The user or process lacks permission.
    • The property is read-only.
    • A property is specified more than once.

Removing nested properties

To remove a nested structure, you must send the empty root element.

Example

Existing structure:

<Alea:Properties>
  <MyProperty2>
    <MyProperty3>
      <MyProperty4>OK</MyProperty4>
      <MyProperty4>OK</MyProperty4>
      some text
    </MyProperty3>
  </MyProperty2> 
</Alea:Properties>

Removing the entire MyProperty2 structure:

<Alea:Properties>
  <MyProperty2 /> 
</Alea:Properties> 

Nesting <Alea:Properties> XML elements

Do not nest <Alea:Properties> elements, even though it is technically allowed.

Nesting <Alea:Properties> may cause these issues:

  • System properties inside nested <Alea:Properties> are ignored without error logging.
  • Some clients treat such structure as invalid.

Example

<Alea:Properties>
  <Alea:AccessCube Enabled="true" /><!-- not ignored --> 
  <Alea:Properties>
    <Alea:AccessCube Enabled="false" /><!-- ignored --> 
  </Alea:Properties> 
</Alea:Properties>

Read-only system properties

This table shows the read-only system properties:

Entity Property Description
Database <Alea:Database>

<Alea:Users>

<Alea:ReservationMode>

Name of the database.

Number of connected users.

Indicates restricted access to OLAP.

Connection <Alea:Splashing> Names of splashing undo files for the session.
Dimension No read-only properties
Cube <Alea:Rules> Information about rules.