Assets: Object filtering by a similar attribute

When using Assets, there can be a situation when a similar attribute (e.g., “Owner,” “Assigned User,” etc.) is used across multiple objects. And when it comes to creating the report, the wish is to analyze all assets by the same attribute.
The recommended way to go with such a use case is to have a common supertype in the Assets schema for the different asset types and inherit the common attributes from the higher-level object type:

That would allow a straightforward solution for the reporting in eazyBI as eazyBI would import only one dimension, “Asset Owner,” that would have all owners from the assets:

But not always this is the setup in Assets. There can be that each object has its own attributes (without this super-type object).

Then, in eazyBI, those would be imported as separate dimensions from each object type. With this configuration, it is impossible to filter all assets by one dimension, as there are now multiple dimensions for each object type.

But there is a partial workaround possible in eazyBI with the limitation that we must assume that for some assets (e.g., Laptops), we have the full set of Assigned users. We then can use this dimension for filtering the users.

The report needs a custom measure for filtering; the idea behind the MDX measue is to find the same members as “Laptop Assigned User” from the “Mobile Assigned User” dimension with GetMemberByKey() function and display their count (measure “Objects created”).

Note that you will need:

  1. A similar code fragment for each object type that the Assigned user must filter.
  2. To apply the row filter on this measure and switch off the Nonempty option:
[Measures].[Objects created] -- count Laptops
+
([Measures].[Objects created], -- count Mobile phones
 [Mobile Assigned User].[Assigned User].GetMemberByKey(
   [Laptop Assigned User].CurrentMember.Key
 ),
 [Laptop Assigned User].DefaultMember
 )
 +
 ([Measures].[Objects created], -- count NEXT ASSET by changing only placeholder "NEXT ASSET LOCATION"
 [NEXT ASSET ASSIGNED USER].[Assigned User].GetMemberByKey(
   [Laptop Assigned User].CurrentMember.Key
 ),
 [Laptop Assigned User].DefaultMember
 )

In the report, it would look like this:

best,
Gerda & Jānis // support@eazyBI.com

1 Like