Extended functionality
In order to provide access to a certain level within an aggregation collection and to subordinated instances, additional functionality is provided for an aggregation collection by the View access class. The class inherits from Property but provides additional functionality for views. Those functions are available in general for each kind of view result, but for ordinary views the do not make much sense.
Extended view functionality provides several service functions with a default implementation that might be overloaded in an aggregation schema. Extended functionality supports special behavior resulting from the level identifier:
- view - Get view handle from Property instance
- levelCollection - Get all instances for a certain level identifier
- levelPartition - Get level partition relationship (subset for an aggregation instance on next lower level - drill down)
- levelParent - Get levelParent relationship (parent instances for a passed aggregation level)
- levelNumber - Get level number from level identifier (character level identifier converted to integer)
- levelValue - Provide level value (dimension attributes)
- levelName - Get hierarchy level name for selected aggregation instance
- levelIdentiferName - Get hierarchy level name for passed level identifier
- levelIdentifier - Get level identifier
- levelDisplayValue - Get level display value for level attributes
In order to support user names for levels and keys, the application may implement service functions in the view class that overload functions named above:
- LevelName - Provide hierarchy level name for selected aggregation instance
- LevelIdentiferName - Provide hierarchy level name for passed level identifier
- LevelDisplayValue - Provide level display value
In addition, the view class may implement an application specific Aggregate function, which provides user defined aggregation algorithms for all view members, that do not have got a source definition and which are not transient.
Aggregation schema functions are, typically, implemented as OSI functions in the aggregation schema context class. In order to improve performance (especially for user defined Aggregate() function), the function may be implemented as C++ function. In this case, an OSI Interface has to be provided for the function.