In the past I've posted on how to create a generic attribute which I prefer over the alternative of creating an in memory cube. After creating many generic attributes for various purposes, the list continued to grow for scenario specific functionality hacking. I've listed a few sample based on previous blog posts for reference too.
I now use an alternate method which requires only a single generic attribute. Based on the demand of a specific scenario, I add the values needed on a per instance basis. This gives me more flexibility, requires fewer objects, and doesn't require a schema refresh with each change.
For the Ultimate Generic Attribute I need 3 things.
A Logical Table which returns nothing
An attribute to point at the logical table
A report with SQL injected into the VLDB Settings
First I create a logical table with two columns which return null values. I use two columns so that I may include an ID column and a Description column.
Next I create an attribute based off of my newly created Logical table.
When I run the report, nothing is returned. This is expected because the logical table doesn't return anything! To get my custom values I use the simple SQL Inject method I posted about here - Inject Custom SQL.
For this sample I'll list Group 1 and Group 2.
And that's It!