Use Case
Is the data in your report not consolidating and you can’t figure out why? One possible cause, among many, might be if your application has been configured to use extensibility and you have also configured attribute members in a User-Defined dimension. Attributes can work with extensibility, but this blog explores a instance where it doesn’t work.
Dynamic Attributes
OneStream has an incredibly powerful way to augment and improve your reporting capabilities. They have provided an option to configure User-Defined Members as Attribute Members. Data is not loaded to an Attribute member; it is read only. It is essentially dynamically derived by selecting the associated base member property of another dimension. One example of this can be demonstrated by defining the Text 1 property value of base members in your source dimension. The Account, Flow, and User-Defined Dimensions support the Attribute Members for “calc-on-the-fly” aggregation at parent members. However, Entity or Scenario Dimension Types do not support “calc-on-the-fly” because they are stored members and data will only be available on these base members.
There is more to discover in the OneStream Design and Reference Guide on this topic.
The Problem Statement
However, there are potential drawbacks when you introduce extensibility that can cause you to lose the source dimension where you defined the text property value. Remember, the attribute member always points to the base members of your source dimension. Therefore, if that member is only an extension of your parent dimension or cube, then you lose visibility of your attribute data. So, the question you must ask yourself is, do I give up extensibility in favor of dynamic attributes or give up dynamic attributes in favor of extensibility?
Why not enjoy the best of both worlds by using Attribute Extensibility
To begin with, no solution is perfect in every situation. You must practice vigilance as you think through any solution and how it may impact your application. One con, this solution will be storing extra data in your cube. Conversely, you can be very selective on where you will write the data. Another advantage is that you keep the benefit of controlling your attributes by utilizing your text properties. However, the greatest benefit of using Attribute Extensibility is that you will be able to see your attributes across extended Dimensions and Cubes without losing visibility at the consolidated levels.
So how does Attribute Extensibility work? If you have already configured your User-Defined dimension as an Attribute dimension, the first step is to re-configure it by turning off all attribute properties. However, you will keep all the text property values you set on the base members from your source dimension. The next step is to write a Business Rule and assign it to your extended cubes and because of this, the rule will run every time a Calculation or Consolidation is executed. There is a specific series of steps that occur known as the Data Unit Calculation Sequence or DUCS. Therefore, you will most likely want to assign it to one of the latter Business Rule slots (7 or 8) on the extended cube only. One of the key things that matter in this Business Rule will be to reference the text field from your source dimension within your data buffer and then setting your target User-Defined Attribute dimension to that tag. Once you have written your Business Rule, you will need to run a calculation or consolidation.
After Consolidation…Et’ voila!
Your Attribute data is now available in the Consolidated Cube! The fact that you can combine two different functional concepts and create something like Attribute Extensibility shows just how incredibly powerful OneStream can be. The attraction of Black Diamond Advisory is that we utilize a wide range of expertise across a multitude of industries to provide solutions such as this and much more complex solutions.