XML properties handling

XML properties can be contained in these entities:

  • Databases
  • Connections
  • Dimensions
  • Cubes

They are used to store various information in the XML structure of the corresponding entity, within the <Alea:Properties> XML element.

The properties can be read and modified either by the respective GetProperties and PutProperties XML functions, or, in the case of dimensions and cubes, by the Edit Database dashboard of EPM Administration. Conditions for reading and modification are the appropriate access rights and that the respective property is not read-only.

There are two different types of properties:

  • System properties. These are pre-defined properties that affect the behavior of OLAP in the specified way. They all have the Alea namespace prefix.
  • Custom properties. These are properties not known by OLAP. They can be created by users or processes to keep arbitrary information with the entity. Custom properties cannot use namespace prefixes. They can contain XML elements, also in a nested structure.

There are two restrictions for an <Alea:Properties> XML element:

  • It can only contain other XML elements. It cannot contain text.
  • A property cannot be used twice as direct child of the <Alea:Properties> XML element. This restriction is not valid for deeper levels and also does not apply to <Alea:Translation>.

This is a valid structure:

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

This is also a valid structure:

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

This part of the request is invalid because the <Alea:Properties> XML element contains text:

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

This part of the request is invalid because <MyProperty> is used twice as direct child of the <Alea:Properties> XML element:

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

The PutProperties function of all named classes then works on an incremental base, that is, the second property is kept but not the first one.

Each of the direct children of the <Alea:Properties> element in the PutProperties function is either:

  • Inserted into the XML structure of the corresponding entity if it does not exist yet.
  • Replacing the former one with the same name if the user has the appropriate rights (mainly for system properties).
  • Deleting the one with the same name if the given element is empty. That is, it has no text, no child elements, and no attributes.
  • Returned as an error in the <Alea:Return> element:
    • If the user has no rights to set the property.
    • The property is read-only.
    • All system properties which were specified more than once in the change request.

This table describes the read-only system properties:

Entity Property Description
Database <Alea:Database>

<Alea:Users>

<Alea:ReservationMode>

The name of the database.

The number of connected users.

Indicates if only specified users can connect to the Database Worker.

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