Presentation
Copper is an API that helps you add measures and hierarchies to an ActivePivot Cube.
Its main goal is to provide a simple and comprehensive API to create all the measures an ActivePivot project might need.
This document is aimed at ActivePivot developers, and therefore contains references to multidimensional concepts such as datastores, store references, dimensions, hierarchies, levels, measures, locations, context values, and the MDX query language. Newcomers should be able to use Copper with only a minimal amount of ActivePivot-specific training, but it is advised to make sure to at least be familiar with these concepts before reading this.
Copper is used to add measures to a cube whose dimensions, hierarchies, and levels are already defined, on top of an already defined datastore with an already defined selection. The datastore does not need to contain data for Copper to work. Additionally, Copper can be used to enrich the cube with special hierarchies.
Why the name "Copper"? Copper was originally intended as a contraction of "Core Post-Processors". It symbolizes a shift away from complex core logic and towards a simpler API for your client projects. Its features have been expanded since its creation to also include the creation of other types of measures (native measures, aggregated measures, etc.) as well as hierarchies.
Retro-compatibility
Copper aims to replace other previous ways of creating measures and hierarchies in ActivePivot. Eventually, we hope that it will become the standard way to do so.
Given that there are still some use cases and optimizations not yet covered by Copper, we have made it fully retro-compatible with legacy post-processors. The Copper API will allow you to:
- use measures that are already defined in your cube description. It includes all types of measures: native measures, aggregated measures, and post-processors.
- create post-processors "the old way" (with the plugin key and properties).
Being able to use and create post-processors in Copper will allow you to manage your migration incrementally.