Sunday, January 26, 2014

How to generate TM1 report based on data security for individual login user (10.2)

TM1 data security is implemented mostly by approval hierarchy. When login into panning application, the individual user only see one’s node based on assigned right in application. However, report won’t behave like planning application. If the dimension associated with approval hierarchy is not used in report, user won’t get any data at all. However, from end user point of view, they should get their own data based on data security. This document is to explore this issue.


Reason
The bottom line is that data security is always there regardless of the TM1 connection. When the dimension is not used in report, report will use default member for this hierarchy. The default member is normally the top node if not specified. If the login user is not assigned to access top node, then no data will be returned. So we need to find way to let report take this data security behind the scene.


Solution - Slicer
Option 1: Add a filter in report. But this filter must be dynamically generated based on login user. It is very difficult to implement this idea, as we cannot use traditional parameter map to map individual node with login user session.
Option 2: Use default selection on prompt page to make selection, it is possible and very cumbersome.
Option 3: Add dimension into report. This will automatically bring data security in consideration. This change will impact on report result when user is at high level. the report will show all his or her child nodes.
Option 4: Use slicer: This is the best idea and it will happen behind the scene, and not have any impact on report at all. The code sample of slicer member set looks like follows


set([Sales Budget].[Sales Manager].[Sales Manager]->:[TM].[Sales Manager].[Sales Manager].[@MEMBER].[Manager1],
      [Sales Budget].[Sales Manager].[Sales Manager]->:[TM].[Sales Manager].[Sales Manager].[@MEMBER].[Manager2],
      [Sales Budget].[Sales Manager].[Sales Manager]->:[TM].[Sales Manager].[Sales Manager].[@MEMBER].[Manager3],
      [Sales Budget].[Sales Manager].[Sales Manager]->:[TM].[Sales Manager].[Sales Manager].[@MEMBER].[Manager4],
      [Sales Budget].[Sales Manager].[Sales Manager]->:[TM].[Sales Manager].[Sales Manager].[@MEMBER].[Manager5],
      [Sales Budget].[Sales Manager].[Sales Manager]->:[TM].[Sales Manager].[Sales Manager].[@MEMBER].[Manager6],
      [Sales Budget].[Sales Manager].[Sales Manager]->:[TM].[Sales Manager].[Sales Manager].[@MEMBER].[Manager7],

      [Sales Budget].[Sales Manager].[Sales Manager]->:[TM].[Sales Manager].[Sales Manager].[@MEMBER].[Manager8])

No comments:

Post a Comment