Scoping Dimension Members, Incorrect TOTAL Levels

I have successfully applied security on my analytical workspace using PERMIT_READ and FGAC. The guide that I had followed can be read at the following link:
http://www.oracle.com/technology/products/bi/olap/olap10g_applying_aw_security.doc
My problem is that on the TOTAL level on the DIMENSION in which the security/limitiation is applied for a certain USER, it still shows the aggregated TOTALs of all the members, instead of just computing for the TOTALs of the visible members to the current user, regardless of checking or unchecking the presummarizations on the "Summarize To" tab.
I'm guessing that the solution is the manipulation of the PERMIT_READ program, but I'm new to all of these and have a rather tight schedule.
I was wondering if anyone might know what to do..
If the above explanation is not quite clear, please see the following:
=======================================================
] 1) A REGULAR user sees the following:
] Member 1 : 200
] Member 2 : 500
] Member 3 : 300
] Member 4 : 700
] TOTAL : 1700
] 2) A LIMITED user sees the following:
] Member 2 : 500
] Member 3 : 300
] TOTAL : 1700
See the problem? The limited user should have its TOTALs calculated according to the dimensions that it only sees.

When you say the following "regardless of checking or unchecking the pre-summarizations on the "Summarize To" tab", does this mean you unchecked the various levels and then completely rebuilt the cube? If not then you will have to completely rebuild the cube you are querying because the summarizations for the cube are stored directly in the AW. Unchecking the levels does not delete the stored data.
What you need is a cube that has not been summarized across the dimensions where you are applying the PERMIT_READ. It should then work correctly, or at least that is my experience.
Hope this helps
Keith

Similar Messages

  • How do I move multiple dimension members up one level in planning?

    I can't figure out how to select multiple members.
    I hope I don't have to cut and paste them individually.

    ODI maybe ?
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Top 10 lowest level dimension members based on measure

    Hi,
    I'm trying to create a condition with JDeveloper to show the top 10 dimension members based on a measure for the lowest level of the hierarchy, but doesn't work.
    All other conditions are working well, including top 10 dimension members in other levels of the hierarchy (not in the lowest).
    Any suggestion??
    I think the dimension is defined ok, all other conditions are working well and the lowest level could be shown with other conditions and drills.
    Thanks in advanced....

    Hi,
    First, my BI Beans version is 9.0.3.5 and my database version is 9.2.0.2.1
    I will try to clarify my problem. I am trying to create a graph to show the top10 members of a dimension based on my measure. When I define this condition
    to show the top 10 members of a middle level (not de low level), it works fine, I mean, it shows the top 10 members of that level. But, when I define the condition
    to show the top 10 members of the low level, it displays me that there is no data to display (The data has an insufficient number of columns and rows).
    I have been testing this case, and I have seen that if I change the low level column (number type) of the dimension to a varchar type column, it works. This low level is
    the primary key of the dimension table, and it's referenced by a foreign key in the fact table.
    Which could be the problem?? Is it not possible to define a level of a dimension with a number column??
    I have a demo sample to see this problem (two simple dimensionS with three levels and a fact table). It's a bit large to post it complete, so I post here an extract of it.
    -- Dimension and fact tables
    CREATE TABLE PR_DIM_A (DIM_A_KEY NUMBER,
                   LOW_A_LEVEL_NAME VARCHAR2(50),
                   ALL_A_LEVEL_ID VARCHAR2(50), ALL_A_LEVEL_NAME VARCHAR2(50),
                   GROUP_A_LEVEL_ID VARCHAR2(50), GROUP_A_LEVEL_NAME VARCHAR2(50),
                   CONSTRAINT PK_DIM_A PRIMARY KEY (DIM_A_KEY));
    CREATE TABLE PR_DIM_B (DIM_B_KEY NUMBER,
                   LOW_B_LEVEL_NAME VARCHAR2(50),
                   ALL_B_LEVEL_ID VARCHAR2(50), ALL_B_LEVEL_NAME VARCHAR2(50),
                   GROUP_B_LEVEL_ID VARCHAR2(50), GROUP_B_LEVEL_NAME VARCHAR2(50),
                   CONSTRAINT PK_DIM_B PRIMARY KEY (DIM_B_KEY));
    CREATE TABLE PR_FACTS (FACT_KEY NUMBER, DIM_A_KEY NUMBER, DIM_B_KEY NUMBER,
                   MEASURE_1 NUMBER, MEASURE_2 NUMBER,
                   CONSTRAINT PK_FACTS PRIMARY KEY (FACT_KEY));
    ALTER TABLE PR_FACTS ADD CONSTRAINT FK_DIM_A FOREIGN KEY (DIM_A_KEY)
                   REFERENCES PR_DIM_A (DIM_A_KEY);
    ALTER TABLE PR_FACTS ADD CONSTRAINT FK_DIM_B FOREIGN KEY (DIM_B_KEY)
                   REFERENCES PR_DIM_B (DIM_B_KEY);
    -- Data inserts in the dimensions
    INSERT INTO PR_DIM_A VALUES (1,'ALL','ALL_NAMEa','GROUP1a','GROUP1_NAMEa','LOW1a','LOW_NAME1a');
    INSERT INTO PR_DIM_A VALUES (2,'ALL','ALL_NAMEa','GROUP1a','GROUP1_NAMEa','LOW2a','LOW_NAME2a');
    -- ......... dimension B is the same kind of data.
    -- OLAP dimension A creation script
    cwm2_olap_dimension.create_dimension('BI02', 'PR_A_DIM', 'DimA Diaplay name', 'DimA Plural name', 'DimA Short Description','DimA Description');
    cwm2_olap_dimension_attribute.create_dimension_attribute('BI02', 'PR_A_DIM', 'Short Description', 'Short Descriptions', 'Short Desc', 'Description', TRUE);
    cwm2_olap_hierarchy.create_hierarchy('BI02', 'PR_A_DIM', 'HIER_DIM_A', 'HIER_DIM_A Display name', 'HIER_DIM_A ShortDesc', 'HIER_DIM_A Desc','Unsolved Level-Based');
    cwm2_olap_dimension.set_default_display_hierarchy( 'BI02', 'PR_A_DIM', 'HIER_DIM_A' );
    cwm2_olap_level.create_level('BI02', 'PR_A_DIM', 'ALL_LEVEL_A', 'ALL_LEVEL_A DisplayName', 'ALL_LEVEL_A PluralName', 'ALL_LEVEL_A ShortDesc', 'ALL_LEVEL_A Desc');
    cwm2_olap_level.create_level('BI02', 'PR_A_DIM', 'GROUP_LEVEL_A', 'GROUP_LEVEL_A DisplayName', 'GROUP_LEVEL_A PluralName', 'GROUP_LEVEL_A ShortDesc', 'GROUP_LEVEL_A Desc' );
    cwm2_olap_level.create_level('BI02', 'PR_A_DIM', 'LOW_LEVEL_A', 'LOW_LEVEL_A DisplayName', 'LOW_LEVEL_A PluralName', 'LOW_LEVEL_A ShortDesc', 'LOW_LEVEL_A Desc' );
    cwm2_olap_level_attribute.create_level_attribute('BI02', 'PR_A_DIM', 'Short Description', 'ALL_LEVEL_A', 'Short Description', 'All_LEVEL_A DisplayName', 'ALL_LEVEL_A ShortDesc', 'ALL_LABEL Desc', TRUE );
    cwm2_olap_level_attribute.create_level_attribute('BI02', 'PR_A_DIM', 'Short Description', 'GROUP_LEVEL_A', 'Short Description', 'GROUP_LEVEL_A DisplayName', 'GROUP_LEVEL_A ShortDesc', 'GROUP_LEVEL_A Desc', TRUE );
    cwm2_olap_level_attribute.create_level_attribute('BI02', 'PR_A_DIM', 'Short Description', 'LOW_LEVEL_A', 'Short Description', 'LOW_LEVEL_A DisplayName', 'LOW_LEVEL_A ShortDesc', 'LOW_LEVEL_A Desc', TRUE );
    cwm2_olap_level.add_level_to_hierarchy('BI02', 'PR_A_DIM', 'HIER_DIM_A', 'LOW_LEVEL_A', 'GROUP_LEVEL_A' );
    cwm2_olap_level.add_level_to_hierarchy('BI02', 'PR_A_DIM', 'HIER_DIM_A', 'GROUP_LEVEL_A', 'ALL_LEVEL_A' );
    cwm2_olap_level.add_level_to_hierarchy('BI02', 'PR_A_DIM', 'HIER_DIM_A', 'ALL_LEVEL_A' );
    cwm2_olap_table_map.map_dimtbl_hierlevel('BI02', 'PR_A_DIM', 'HIER_DIM_A', 'ALL_LEVEL_A', 'BI02', dim_table, 'ALL_A_LEVEL_ID' );
    cwm2_olap_table_map.map_dimtbl_hierlevel('BI02', 'PR_A_DIM', 'HIER_DIM_A', 'GROUP_LEVEL_A', 'BI02', dim_table, 'GROUP_A_LEVEL_ID' );
    cwm2_olap_table_map.map_dimtbl_hierlevel('BI02', 'PR_A_DIM', 'HIER_DIM_A', 'LOW_LEVEL_A', 'BI02', dim_table, 'DIM_A_KEY' );
    cwm2_olap_table_map.map_dimtbl_hierlevelattr('BI02', 'PR_A_DIM', 'Short Description', 'HIER_DIM_A', 'ALL_LEVEL_A', 'Short Description', 'BI02', dim_table, 'ALL_A_LEVEL_NAME' );
    cwm2_olap_table_map.map_dimtbl_hierlevelattr('BI02', 'PR_A_DIM', 'Short Description', 'HIER_DIM_A', 'GROUP_LEVEL_A', 'Short Description', 'BI02', dim_table, 'GROUP_A_LEVEL_NAME' );
    cwm2_olap_table_map.map_dimtbl_hierlevelattr('BI02', 'PR_A_DIM', 'Short Description', 'HIER_DIM_A', 'LOW_LEVEL_A', 'Short Description', 'BI02', dim_table, 'LOW_A_LEVEL_NAME' );
    -- OLAP dimension B creation script is similar than A.
    -- OLAP CUBE creation script
    cwm2_olap_cube.create_cube( 'BI02', 'PR_CUBE', 'Sample Cube', 'Sample Cube', 'Sample Cube' );
    cwm2_olap_measure.create_measure('BI02', 'PR_CUBE', 'MEAS1', 'MES1 DisplayName', 'MES1 ShortDesc', 'MES1 Desc');
    cwm2_olap_measure.create_measure('BI02', 'PR_CUBE', 'MEAS2', 'MES2 DisplayName', 'MES2 ShortDesc', 'MES2 Desc');
    cwm2_olap_cube.add_dimension_to_cube( 'BI02', 'PR_CUBE', 'BI02', 'PR_A_DIM' );
    cwm2_olap_cube.add_dimension_to_cube( 'BI02', 'PR_CUBE', 'BI02', 'PR_B_DIM' );
    dimkeymap :=
         'DIM:'
    || 'BI02'
    || '.PR_A_DIM/HIER:HIER_DIM_A/LVL:LOW_LEVEL_A/COL:DIM_A_KEY;DIM:'
    || 'BI02'
    || '.PR_B_DIM/HIER:HIER_DIM_B/LVL:LOW_LEVEL_B/COL:DIM_B_KEY;';
    cwm2_olap_table_map.map_facttbl_levelkey( 'BI02', 'PR_CUBE', 'BI02', fact_t, /*'ET'*/ 'LOWESTLEVEL', dimkeymap );
    cwm2_olap_table_map.map_facttbl_measure( 'BI02', 'PR_CUBE', 'MEAS1', 'BI02', fact_t, 'MEASURE_1', dimkeymap );
    cwm2_olap_table_map.map_facttbl_measure( 'BI02', 'PR_CUBE', 'MEAS2', 'BI02', fact_t, 'MEASURE_2', dimkeymap );
    Thanks a lot for your help....

  • Incorrect totals from cache with CustomRollupColumn and non-parent-child dimensions

    Hello. Before I start let me apologise for my English :)
    We have a very complex cube, with 2 (actually more, but only these 2 are important) parent-child dimensions.
    One of them has CustomRollupColumn defined.
    Not long ago we have decided to make refactoring of our cube. This also included making these dimensions non-parent-child.
    All our old reports started to work much faster after that... but we have mentioned that sometimes they show incorrect totals, or no totals at all.
    We spend a lot of time trying to figure out what's wrong and finally we had found that if we clear cache before next refresh of the report - the totals are always correct!
    If we don't clear cache - we get wrong totals second time, and each next time after that. If we see wrong totals - we could clear cache and get correct totals once again.
    If we use "Real Time Olap=True;" connection string parameter - the totals are always correct because cache is not used.
    But we don't like this workaround.
    Is there any fix for this bug? Google shows that this problem exists from SQL2005, and still we have it :( Also, there is adivice to set CalculationCoverPolicy to 9 - we have tried - but it was fruitless.
    And if we revert these 2 dimensions back to parent-child - all working fine again, but as slow as it was before the refactoring :(

    Hi Bateks,
    Glad to hear that your issue had been solved by yourself, thank you for you sharing which will help other forum members who have the similar issue.
    Regards,
    Charlie Liao
    TechNet Community Support

  • Storage option for Non leaf level dimension members: Store vs Dynamic calc

    Hi All,
    What is the general rule regarding the storage options for non leaf level members? My understanding is that it should be Dynamic Calc under normal circumstances and have it as store if we are going to load data at non leaf level. Is this correct? Are there any other considerations while defining the members?
    Thanks and Regards,
    Amol

    Don't forget to consider whether the dimension is sparse or dense. Upper level dynamic calcs generally work well on dense dimensions as long as you aren't entering data into upper level members. Upper level dynamic calcs in a sparse dimension CAN work well, but usually only on smaller dimensions. This really depends on what else you have going on in your cube. On large sparse dimensions, upper levels are almost always stored, but this is one of those areas where you can sometimes bend the rules.
    Also, don't forget to consider the calc order implications of making something stored or dynamic.
    - Jake

  • What is the use of Grand total level in obiee ,

    hi ,
    i know that we can perform drill down from one level to another level, level base measures ,aggregate atble.................
    apart from that any other user if so pls give me one small example
    What is the use of Grand total level in obiee

    When you start to use multi-star models and none-conforming dimensions, you will use the grand total level to tell the BI Server what to do with the measures when you try and plot them all in the same answers request.
    Also consider any meaure you want to perform a '% of total' you will need the total mapped somewhere, this could use the Grand total level as a level based measure.
    Regards
    Alastair

  • Activating audit for Dimension Members in BPC 7.5 NW

    Hi,
    Is it possible to activate dimension member audit in BPC 7.5 NW. Meaning, can we trace changes to master data (dimension members) in BPC 7.5 NW?
    Best regard
    SSC

    Hi,
    The Activity Auditing tracks Administrative and User tasks at the Appset level.
    This will be controlled by the Administrators to check whether activity auditing is enabled or not.
    To enable this future go to -> Administration for the Web, choose Manage Activity Audit -> then choose one or both types of activities to audit.
    Please check the help file for the same.
    http://help.sap.com/saphelp_bpc75_nw/helpdata/en/a0/2d2e0ec3da472c82a3f0ff5a96d9ce/content.htm
    Regards,
    Raghu

  • RPD: Wrong Fact join when utilizing Level Based Measures (TOTAL Level)

    I have 2 Facts and 3 Dimensions (Customer, Customer Emails, Time) being used in the RPD. The Dimensions are all set with TOTAL and DETAIL hierarchies.
    Physical Layer:
    Fact 1 joined to all 3 Dimensions
    Fact 2 joined to all 3 Dimensions
    Business Layer:
    Fact 1 joined to all 3 Dimensions and Content Level set to DETAIL for all 3 Dimensions
    Fact 2 joined to all 3 Dimensions and Content Level set to DETAIL for all 3 Dimensions
    Metrics:
    Fact 1 Metric: SUM set to TOTAL Level for Customer Emails Dimension
    Fact 2 Metric: SUM set to TOTAL Level for Customer Emails Dimension
    Issue:
    I run a query pulling the metric from Fact 1 along with Dimension columns Email Address and Customer Name (2 Dimension Tables).
    2 Physical queries are generated one against Fact 1 to get the Metric total by Customer. The 2nd query to get the Customer and Email Address that hits the Fact 2 table.
    Expectation:
    I would expect both queries from above to hit the SAME fact table (Fact 1). I understand the 2nd query would NOT contain the metric (Due to it set to TOTAL), but a relationship exists between the Fact 1 table and the Email Dimension, since the metric is pulled from this table I'd expect the Dimension value to be pulled from this table as well.
    I look forward to any thoughts.

    Merging Customer and Customer Email will not work as a Customer can have multiple Email Addresses and changes the grain of that Dimension (Customer Level).
    Implicit fact would make no sense here, since each Fact has different sets of data.
    The basic issue here is that we have a Customer Email table that is NOT at the grain of the Fact or even the Customer Dimension. I would have loved to snowflake off the Customer Email from the Customer Dim but then the metrics get inflated when returned and total on.
    Hence we built the Email dimensions to join off the Fact and set all the metrics in each Fact (That joins to Customer) to TOTAL. So the metrics do not get inflated, the metrics repeat (Customer request) for each email per Customer.
    I hope that clarifies.

  • Time Dimension with Hourly base level

    Hi all
    I need to analyze data at Hour, Day, Month, and Year levels. The data in the fact and dimension tables are at the 'Hour' level with DATE datatype, such as:
    02-SEP-10 10:00:00 AM
    02-SEP-10 11:00:00 AM
    To use Time-Series type calculations, I understand that I have to create an OLAP dimension of type 'TIME' (and not 'USER') and map it to the populated relational time dimension table. My questions are:
    1) Can I have the primary key for 'Hour' level as the actual base level value of datatype DATE (eg. 02-SEP-10 10:00:00 AM) ?
    2) For the END_DATE and TIME_SPAN attributes at the 'Hour' level, what should I use?
    The documentation is only available for minimum 'Day' level hierarchies, which allows setting END_DATE and TIME_SPAN to the actual 'Day' value and 1, respectively.
    3) For the END_DATE and TIME_SPAN attributes at the 'Month' level, do I need to supply the last-date-of-each-month and number-of-days-in-that-month, respectively?
    Please bear in mind that I am relatively new to Oracle OLAP. Any assistance will be appreciated.
    Cheers.

    Thank you Szilard and Adnan for the very prompt and informative responses.
    I managed to follow the advice on the oracleolap.blogspot link and created a time dimension with members at Hour level loaded into the dimension in character format: TO_CHAR(hour_id, 'DD-MON-YYYY HH24')
    The problem now is the maintenance (loading) of the dimension is taking an abnormally large amount of time (over 1 hour) as opposed to when the members were being loaded in DATE format (5 minutes). The mapping table only as 10,000 entries.
    Why is these such a big difference? Is it normal? Is there a way to speed up the maintenance time?
    FYI, I have not created any indexes on any of the attributes.
    My platform is:
    11.1.0.7.0 DB
    11.1.0.7.0B Client

  • Making member in BM showing all possible members from all levels

    When i import essbase model with drag and drop option i get one additional member called, for example, Times - Default. It shows all available members from all levels of its dimension.
    How can i create similar member in relational model?

    I doubt that is possible with relational data because, unlike essbase structure, relational data do not allow you to store alias at design time.
    If you spell the business requirement here, we may be able to tell you any alternative.

  • Dimension members -Question???

    Is it possible to add dimension members using script logic?

    Thanks for your reply.
    i am working on TOP down allocation..since we cannot  write data to a parent member, i want to create a dummy base  member for an entity to  store the total and then do the allocation.
    how to do this? currently i manually updated the entity dimension by adding a dummy base member.
    is there anyother way to do this?

  • Period Dimension members

    Hi All,
    I want to calculate Period Dimension members Jan to Dec only.
    I have some more period dimension members at level 0.
    If I use @LEVMBRS("Period",0), it will caluculate all the level 0 members in the period dimension. But I want to calculate only Jan to Dec.
    May I use Jan:Dec in the FIX Statement?
    Thanks & Regards,
    Sravan Kumar.

    Hi,
    Yes you can use them in a fix
    FIX(Jan:Dec)
    ENDFIX
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • AWM 10g: Cannot map "Total Level"

    Hi,
    I use AWM 10g and I can't insert a literal value for total level (for example 'TOTAL CHANNEL') of my dimension in mapping section.
    How can I do? There's a workaround? Alternatively, can I insert in my dimension table two additive columns "TOTAL_ID" and "TOTAL_DESCRIPTION" and drag and drop them instead typing string 'TOTAL CHANNEL'?
    Thanks
    Giancarlo

    Consider mapping to a view, with the literal included in the view. Mapping to views is a good practice because you can change the definition of the view (where the view gets data, change filters, etc.) without changing the table to cube mappings. You will find this to be a good practice in the long run.

  • Valid Combinations for DImension Members

    Hi All,
    We have dimensions for Cost Center and Company code in one of our BPC Applications..Is there a way we can avoid users planning for incorrect combinations?
    E.g. -
    Valid Combinations  -
    Cost Center 1 >>>Company Code 1000
    Cost Center 2 >>>Company Code 2000
    In case the user selects Cost Center 1 & Company code 2000 in current view and enters plan values - the system should not allow the same...Is there a way to maintain valid combinations for dimension members (belonging to different dimensions) in BPC???

    Hi Shibu,
    It was just an example, to show you how to control the combinations. You might have to design it based on the exact business requirement.
    Please note that this wont be a straight-forward process, and you might have to use some VB macros to ensure you get, what you require.
    Lets say, based on the expansion, you have 5 company codes to be displayed in the template. You should, first, use an EVEXP function to list all the 5 company codes in some empty region of the template. Use a macro to concatenate all the 5 company codes separated by "|". Then, for the expansion on cost centers, you should again use a macro which will consider each of the 5 company codes at a time, and set the expansion to "P_COMPANY = ABC". Since you have 5 company codes, hence you will have 5 such combinations of member filter pertaining to each of the 5 company codes. Then you must concatenate them using "|", and this should be the memberset option for the cost center dimension.
    I understand that this is going to be a bit complex, but I dont see any other option.
    Hope this helps.

  • Ad hoc Risk Analysis report is returning incorrect Risk Level for some Risks

    We are running GRC AC 10.0 with SP 16.  After application of Support Pack 16, some of our ad hoc risk analysis reports are returning incorrect risk levels.  For example:  Risk F024 Open closed periods and inappropriately post currency or tax entries is set as High.  When the Ad hoc report is run, the risk F024 will show on a user with a level of Medium.  We have generated our ruleset and have followed the normal procedures used to implement the support pack.  Any ideas what is causing this issue?  I have exhausted my knowledge and search attempts.
    Any help is appreciated.
    Sara B.

    Hi Kevin
    Many thanks for your post, we did run a full BRA but no luck unfortunately. Some Risks still reporting as Medium when they should be Critical or High. Oddly it is reporting correctly against some risks just not for all!
    Cheers
    Hussain

Maybe you are looking for