Object Referencing

The Problem

If your metadata includes a lot of calculated objects where part of the logic is actually an object in it’s own right then :

  • It can be difficult to tell what the logic is actually doing

and

  • If the logic behind one of the objects changes you will need to change all the other objects that rely on that logic.

Example

The measure ‘Invoice Margin’ is shown at the top, simplified this is Invoice Value – Cost.

The measure ‘Invoice Margin % Sales’ is the second object. Simplified this is (Invoice Margin / Invoice Value ) * 100.

If the logic of ‘Invoice Value’ and/or Cost changes then you will not only need to change those objects themselves but also the two objects shown above; in the case of ‘Invoice Value’ this means you’d actually need to change it four times.

The Solution

You can use Object Referencing in the calculated objects to reference the actual objects, rather than piling more and more complex SQL logic into a single select line. This makes both maintenance and comprehension much easier.

To do this you reference the relevant objects as #~Object Name~# . So the two examples above would then become ;

Not only is this easier to understand (especially for someone who doesn’t speak SQL) but if the logic for Invoice Value changed you would now only need to change the definition of that object, the three additional references to it shown above would automatically pull through the correct revised definition.