Dimension with dynamic levels

Hi gurus
Suppose you want to make a Dimension on EMPLOYEES table with recursive structure and unknown number of levels over time.
As I have checked in Oracle 11g documentation, there is no option to have recursive structure in CREATE DIMENSION syntax. I mean I should make known limit number of levels.
So if add a new level to one of leaf records in EMPLOYEES table I should recreate the Dimension object and add a new LEVEL to cover all EMPLOYEES structure.
I want know that is there any way to create a recursive Dimension in Oracle OLAP with dynamic (unknown) number of levels.
Thanks in advance.
Iman

Hi,
If you have a value hierarchy then it is possible. As and when you add data into your relational table and load the dimension you will see the value appears appropriately. Not sure if below makes sense for you but this is what I can think on top of my head now.
for e.g. load your dimension with below view definition:
select 'a' parent,'b' child from dual;
union
select 'b' parent,'c' child from dual
union
select null parent,'a' child from dual;
modify the view as below..
select 'a' parent,'b' child from dual;
union
select 'b' parent,'c' child from dual
union
select null parent,'a' child from dual;
union
select 'c' parent,'d' child from dual;
Now again load the dimension and view data.
Thanks,
Brijesh

Similar Messages

  • Dimension with SOLVED LEVEL-BASED hierarchy (10.2)

    I'm trying to make a dimension with SOLVED LEVEL-BASED hierarchy (Oracle 10.2.0.1).
    Hierarchy is folowing:
    TOP
    |_OWNER
    |_OBJECT_TYPE
    |_OBJECT_NAME
    Script
    DROP TABLE SOLVED_DIM;
    CREATE TABLE SOLVED_DIM
    GID NUMBER,
    ETKEY VARCHAR2(100),
    PARENT_GID NUMBER,
    PARENT_ETKEY VARCHAR2(100),
    SHORT_DESCRIPTION VARCHAR2(100),
    LONG_DESCRIPTION VARCHAR2(100),
    TOP                    VARCHAR2(100),
    OWNER VARCHAR2(100),
    OBJECT_TYPE VARCHAR2(100),
    OBJECT_NAME VARCHAR2(100) ,
    TOP_ID NUMBER,
    OWNER_ID NUMBER,
    OBJECT_TYPE_ID NUMBER,
    OBJECT_NAME_ID NUMBER,
    ID NUMBER
    --Test dataset №1
    INSERT INTO SOLVED_DIM VALUES (7, 'TOP', NULL, NULL, 'TOP', 'TOP', 'TOP', NULL, NULL, NULL, 1, NULL, NULL, NULL, 100001);
    INSERT INTO SOLVED_DIM VALUES (3, 'SH', 7, 'TOP', 'SH', 'SH', 'TOP', 'SH', NULL, NULL, 1, 11, NULL, NULL, 100002);
    INSERT INTO SOLVED_DIM VALUES (3, 'OLAP_USR', 7, 'TOP', 'OLAP_USR', 'OLAP_USR', 'TOP', 'OLAP_USR', NULL, NULL, 1, 12, NULL, NULL, 100003);
    INSERT INTO SOLVED_DIM VALUES (1, 'SDIMENSION', 3, 'SH', 'SDIMENSION', 'SDIMENSION', 'TOP', 'SH', 'SDIMENSION', NULL, 1, 11, 111, NULL, 100004);
    INSERT INTO SOLVED_DIM VALUES (1, 'ODIMENSION', 3, 'OLAP_USR', 'ODIMENSION', 'ODIMENSION', 'TOP', 'OLAP_USR', 'ODIMENSION', NULL, 1, 12, 121, NULL, 100005);
    INSERT INTO SOLVED_DIM VALUES (0, 'OUD1', 1, 'ODIMENSION', 'OUD1', 'OUD1', 'TOP', 'OLAP_USR', 'ODIMENSION', 'OUD1', 1, 12, 121, 1211, 100006);
    INSERT INTO SOLVED_DIM VALUES (0, 'OUD2', 1, 'SDIMENSION', 'OUD2', 'OUD2', 'TOP', 'SH', 'SDIMENSION', 'OUD2', 1, 11, 111, 1111, 100007);
    commit;
    --Test dataset №2
    INSERT INTO SOLVED_DIM VALUES (7, 'TOP', NULL, NULL, 'TOP', 'TOP', 'TOP', NULL, NULL, NULL, 1, NULL, NULL, NULL, 100001);
    INSERT INTO SOLVED_DIM VALUES (3, 'SH', 7, 'TOP', 'SH', 'SH', 'TOP', 'SH', NULL, NULL, 1, 11, NULL, NULL, 100002);
    INSERT INTO SOLVED_DIM VALUES (3, 'OLAP_USR', 7, 'TOP', 'OLAP_USR', 'OLAP_USR', 'TOP', 'OLAP_USR', NULL, NULL, 1, 12, NULL, NULL, 100003);
    INSERT INTO SOLVED_DIM VALUES (1, 'DIMENSION', 3, 'SH', 'DIMENSION', 'DIMENSION', 'TOP', 'SH', 'DIMENSION', NULL, 1, 11, 111, NULL, 100004);
    INSERT INTO SOLVED_DIM VALUES (1, 'DIMENSION', 3, 'OLAP_USR', 'DIMENSION', 'DIMENSION', 'TOP', 'OLAP_USR', 'DIMENSION', NULL, 1, 12, 121, NULL, 100005);
    INSERT INTO SOLVED_DIM VALUES (0, 'OUD1', 1, 'DIMENSION', 'OUD1', 'OUD1', 'TOP', 'OLAP_USR', 'DIMENSION', 'OUD1', 1, 12, 121, 1211, 100006);
    INSERT INTO SOLVED_DIM VALUES (0, 'OUD2', 1, 'DIMENSION', 'OUD2', 'OUD2', 'TOP', 'SH', 'DIMENSION', 'OUD2', 1, 11, 111, 1111, 100007);
    commit;
    BEGIN
    -- ---- Creating Dimension (CWM2_OLAP_DIMENSION) -------------------------
    begin
    cwm2_olap_dimension.drop_dimension(user, 'SOLVED_DIM');
    exception when others then null;
    end;
    cwm2_olap_dimension.create_dimension(user, 'SOLVED_DIM', 'SOLVED_DIM disp', 'SOLVED_DIM pl', 'SOLVED_DIM short', 'SOLVED_DIM long');
    -- ----- Completing Dimension Metadata (CWM2_OLAP_DIMENSION_ATTRIBUTE) ---
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'ID', 'ID', 'ID', 'ID');
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'ET key', 'ET key', 'ET key', 'ET key', true);
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'Parent ET key', 'Parent ET key', 'Parent ET key', 'Parent ET key', true);
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'Grouping ID', 'Grouping ID', 'Grouping ID', 'Grouping ID', true);
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'Parent Grouping ID', 'Parent Grouping ID', 'Parent Grouping ID', 'Parent Grouping ID', true);
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'Long Description', 'Long Description', 'Long Description', 'Long Description', true);
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'Short Description', 'Short Description', 'Short Description', 'Short Description', true);
    -- ----- Completing Dimension Metadata (CWM2_OLAP_HIERARCHEY) ------------
    cwm2_olap_hierarchy.create_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'SOLVED_DIM_HI disp', 'SOLVED_DIM_HI short', 'SOLVED_DIM_HI long', 'SOLVED LEVEL-BASED');
    cwm2_olap_dimension.set_default_display_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI');
    -- ----- Completing Dimension Metadata (CWM2_OLAP_LEVEL) -----------------
    cwm2_olap_level.create_level(user, 'SOLVED_DIM', 'OBJECT_NAME', 'OBJECT_NAME disp', 'OBJECT_NAME pl', 'OBJECT_NAME short', 'OBJECT_NAME long');
    cwm2_olap_level.create_level(user, 'SOLVED_DIM', 'OBJECT_TYPE', 'OBJECT_TYPE disp', 'OBJECT_TYPE pl', 'OBJECT_TYPE short', 'OBJECT_TYPE long');
    cwm2_olap_level.create_level(user, 'SOLVED_DIM', 'OWNER' ,'OWNER disp',      'OWNER pl', 'OWNER short', 'OWNER long');
    cwm2_olap_level.create_level(user, 'SOLVED_DIM', 'TOP', 'TOP disp',           'TOP pl', 'TOP short', 'TOP long');
    -- ----- Completing Dimension Metadata (CWM2_OLAP_LEVEL_ATTRIBUTE) -------
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ID', 'OBJECT_NAME', 'ID', 'OBJECT_NAME_ID', 'OBJECT_NAME ID', 'ID');
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ID', 'OBJECT_TYPE', 'ID', 'OBJECT_TYPE_ID', 'OBJECT_TYPE ID', 'ID');
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ID', 'OWNER',      'ID', 'OWNER_ID', 'OWNER ID', 'ID');
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ID', 'TOP', 'ID', 'TOP_ID', 'TOP ID', 'ID');
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ET key', 'OBJECT_NAME', 'ET key', 'OBJECT_NAME_ET', 'OBJECT_NAME ET key', 'ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent ET key', 'OBJECT_NAME', 'Parent ET key', 'OBJECT_NAME PARENT', 'OBJECT_NAME Parent ET key', 'Parent ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Grouping ID', 'OBJECT_NAME', 'Grouping ID', 'OBJECT_NAME GID','OBJECT_NAME GID', 'Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent Grouping ID', 'OBJECT_NAME', 'Parent Grouping ID', 'OBJECT_NAME PGID', 'OBJECT_NAME Parent Grouping ID', 'Parent Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Long Description', 'OBJECT_NAME', 'Long Description', 'OBJECT_NAME LongDesc', 'OBJECT_NAME Long Desc', 'Long Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Short Description', 'OBJECT_NAME', 'Short Description', 'OBJECT_NAME ShortDesc', 'OBJECT_NAME Short Desc', 'Short Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ET key', 'OBJECT_TYPE', 'ET key', 'OBJECT_TYPE_ET', 'OBJECT_TYPE ET key', 'ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent ET key', 'OBJECT_TYPE', 'Parent ET key', 'OBJECT_TYPE PARENT', 'OBJECT_TYPE Parent ET key', 'Parent ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Grouping ID', 'OBJECT_TYPE', 'Grouping ID', 'OBJECT_TYPE GID','OBJECT_TYPE GID', 'Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent Grouping ID', 'OBJECT_TYPE', 'Parent Grouping ID', 'OBJECT_TYPE PGID', 'OBJECT_TYPE Parent Grouping ID', 'Parent Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Long Description', 'OBJECT_TYPE', 'Long Description', 'OBJECT_TYPE LongDesc', 'OBJECT_TYPE Long Desc', 'Long Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Short Description', 'OBJECT_TYPE', 'Short Description', 'OBJECT_TYPE ShortDesc', 'OBJECT_TYPE Short Desc', 'Short Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ET key', 'OWNER', 'ET key', 'OWNER_ET', 'OWNER ET key', 'ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent ET key', 'OWNER', 'Parent ET key', 'OWNER PARENT', 'OWNER Parent ET key', 'Parent ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Grouping ID', 'OWNER', 'Grouping ID', 'OWNER GID','OWNER GID', 'Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent Grouping ID', 'OWNER', 'Parent Grouping ID', 'OWNER PGID', 'OWNER Parent Grouping ID', 'Parent Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Long Description', 'OWNER', 'Long Description', 'OWNER LongDesc', 'OWNER Long Desc', 'Long Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Short Description', 'OWNER', 'Short Description', 'OWNER ShortDesc', 'OWNER Short Desc', 'Short Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ET key', 'TOP', 'ET key', 'TOP_ET', 'TOP ET key', 'ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent ET key', 'TOP', 'Parent ET key', 'TOP PARENT', 'TOP Parent ET key', 'Parent ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Grouping ID', 'TOP', 'Grouping ID', 'TOP GID','TOP GID', 'Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent Grouping ID', 'TOP', 'Parent Grouping ID', 'TOP PGID', 'TOP Parent Grouping ID', 'Parent Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Long Description', 'TOP', 'Long Description', 'TOP LongDesc', 'TOP Long Desc', 'Long Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Short Description', 'TOP', 'Short Description', 'TOP ShortDesc', 'TOP Short Desc', 'Short Description', true);
    cwm2_olap_level.add_level_to_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'OBJECT_TYPE');
    cwm2_olap_level.add_level_to_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'OWNER');
    cwm2_olap_level.add_level_to_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OWNER',          'TOP');
    cwm2_olap_level.add_level_to_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'TOP');
    -- + Mapping Dimensions +
    cwm2_olap_table_map.map_dimtbl_hierlevel(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OBJECT_NAME', user, 'SOLVED_DIM', 'OBJECT_NAME', 'OBJECT_TYPE');
    cwm2_olap_table_map.map_dimtbl_hierlevel(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OBJECT_TYPE', user, 'SOLVED_DIM', 'OBJECT_TYPE', 'OWNER');
    cwm2_olap_table_map.map_dimtbl_hierlevel(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OWNER',           user, 'SOLVED_DIM', 'OWNER',     'TOP');
    cwm2_olap_table_map.map_dimtbl_hierlevel(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'TOP',           user, 'SOLVED_DIM', 'TOP');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ID', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'ID', user, 'SOLVED_DIM', 'OBJECT_NAME_ID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ET key', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'ET key', user, 'SOLVED_DIM', 'ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent ET key', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'Parent ET key', user, 'SOLVED_DIM', 'PARENT_ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Grouping ID', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'Grouping ID', user, 'SOLVED_DIM', 'GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent Grouping ID', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'Parent Grouping ID', user, 'SOLVED_DIM', 'PARENT_GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Long Description', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'Long Description', user, 'SOLVED_DIM', 'LONG_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Short Description', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'Short Description', user, 'SOLVED_DIM', 'SHORT_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ID', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'ID', user, 'SOLVED_DIM', 'OBJECT_TYPE_ID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ET key', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'ET key', user, 'SOLVED_DIM', 'ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent ET key', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'Parent ET key', user, 'SOLVED_DIM', 'PARENT_ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Grouping ID', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'Grouping ID', user, 'SOLVED_DIM', 'GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent Grouping ID', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'Parent Grouping ID', user, 'SOLVED_DIM', 'PARENT_GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Long Description', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'Long Description', user, 'SOLVED_DIM', 'LONG_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Short Description', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'Short Description', user, 'SOLVED_DIM', 'SHORT_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ID', 'SOLVED_DIM_HI', 'OWNER', 'ID', user, 'SOLVED_DIM', 'OWNER_ID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ET key', 'SOLVED_DIM_HI', 'OWNER', 'ET key', user, 'SOLVED_DIM', 'ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent ET key', 'SOLVED_DIM_HI', 'OWNER', 'Parent ET key', user, 'SOLVED_DIM', 'PARENT_ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Grouping ID', 'SOLVED_DIM_HI', 'OWNER', 'Grouping ID', user, 'SOLVED_DIM', 'GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent Grouping ID', 'SOLVED_DIM_HI', 'OWNER', 'Parent Grouping ID', user, 'SOLVED_DIM', 'PARENT_GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Long Description', 'SOLVED_DIM_HI', 'OWNER', 'Long Description', user, 'SOLVED_DIM', 'LONG_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Short Description', 'SOLVED_DIM_HI', 'OWNER', 'Short Description', user, 'SOLVED_DIM', 'SHORT_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ID', 'SOLVED_DIM_HI', 'TOP', 'ID', user, 'SOLVED_DIM', 'TOP_ID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ET key', 'SOLVED_DIM_HI', 'TOP', 'ET key', user, 'SOLVED_DIM', 'ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent ET key', 'SOLVED_DIM_HI', 'TOP', 'Parent ET key', user, 'SOLVED_DIM', 'PARENT_ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Grouping ID', 'SOLVED_DIM_HI', 'TOP', 'Grouping ID', user, 'SOLVED_DIM', 'GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent Grouping ID', 'SOLVED_DIM_HI', 'TOP', 'Parent Grouping ID', user, 'SOLVED_DIM', 'PARENT_GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Long Description', 'SOLVED_DIM_HI', 'TOP', 'Long Description', user, 'SOLVED_DIM', 'LONG_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Short Description', 'SOLVED_DIM_HI', 'TOP', 'Short Description', user, 'SOLVED_DIM', 'SHORT_DESCRIPTION');
    -- + Validate and Refresh +
    cwm2_olap_validate.validate_dimension(user, 'SOLVED_DIM');
    cwm2_olap_metadata_refresh.mr_refresh;
    END;
    The first dataset works perfectly. But not the second one... There are some intersections at OBJECT_TYPE level.
    TOP->OLAP_USR->DIMENSION->OUD1
    and
    TOP->SH->DIMENSION->OUD2.
    When I'm watching TOP->OLAP_USR->DIMENSION->OUD1, I not only open OUD1, but OUD2 under SH (even skipping OBJECT_TYPE level). It's simple to do it for USOLVED LEVEL-BASED by assigning different Id for the same OBJECT_TYPES from different owners. But it looks like my ids are ignored for Solved hierarchy.
    Does anybody knows how to handle such situation?

    I'm trying to make a dimension with SOLVED LEVEL-BASED hierarchy (Oracle 10.2.0.1).
    Hierarchy is folowing:
    TOP
    |_OWNER
    |_OBJECT_TYPE
    |_OBJECT_NAME
    Script
    DROP TABLE SOLVED_DIM;
    CREATE TABLE SOLVED_DIM
    GID NUMBER,
    ETKEY VARCHAR2(100),
    PARENT_GID NUMBER,
    PARENT_ETKEY VARCHAR2(100),
    SHORT_DESCRIPTION VARCHAR2(100),
    LONG_DESCRIPTION VARCHAR2(100),
    TOP                    VARCHAR2(100),
    OWNER VARCHAR2(100),
    OBJECT_TYPE VARCHAR2(100),
    OBJECT_NAME VARCHAR2(100) ,
    TOP_ID NUMBER,
    OWNER_ID NUMBER,
    OBJECT_TYPE_ID NUMBER,
    OBJECT_NAME_ID NUMBER,
    ID NUMBER
    --Test dataset №1
    INSERT INTO SOLVED_DIM VALUES (7, 'TOP', NULL, NULL, 'TOP', 'TOP', 'TOP', NULL, NULL, NULL, 1, NULL, NULL, NULL, 100001);
    INSERT INTO SOLVED_DIM VALUES (3, 'SH', 7, 'TOP', 'SH', 'SH', 'TOP', 'SH', NULL, NULL, 1, 11, NULL, NULL, 100002);
    INSERT INTO SOLVED_DIM VALUES (3, 'OLAP_USR', 7, 'TOP', 'OLAP_USR', 'OLAP_USR', 'TOP', 'OLAP_USR', NULL, NULL, 1, 12, NULL, NULL, 100003);
    INSERT INTO SOLVED_DIM VALUES (1, 'SDIMENSION', 3, 'SH', 'SDIMENSION', 'SDIMENSION', 'TOP', 'SH', 'SDIMENSION', NULL, 1, 11, 111, NULL, 100004);
    INSERT INTO SOLVED_DIM VALUES (1, 'ODIMENSION', 3, 'OLAP_USR', 'ODIMENSION', 'ODIMENSION', 'TOP', 'OLAP_USR', 'ODIMENSION', NULL, 1, 12, 121, NULL, 100005);
    INSERT INTO SOLVED_DIM VALUES (0, 'OUD1', 1, 'ODIMENSION', 'OUD1', 'OUD1', 'TOP', 'OLAP_USR', 'ODIMENSION', 'OUD1', 1, 12, 121, 1211, 100006);
    INSERT INTO SOLVED_DIM VALUES (0, 'OUD2', 1, 'SDIMENSION', 'OUD2', 'OUD2', 'TOP', 'SH', 'SDIMENSION', 'OUD2', 1, 11, 111, 1111, 100007);
    commit;
    --Test dataset №2
    INSERT INTO SOLVED_DIM VALUES (7, 'TOP', NULL, NULL, 'TOP', 'TOP', 'TOP', NULL, NULL, NULL, 1, NULL, NULL, NULL, 100001);
    INSERT INTO SOLVED_DIM VALUES (3, 'SH', 7, 'TOP', 'SH', 'SH', 'TOP', 'SH', NULL, NULL, 1, 11, NULL, NULL, 100002);
    INSERT INTO SOLVED_DIM VALUES (3, 'OLAP_USR', 7, 'TOP', 'OLAP_USR', 'OLAP_USR', 'TOP', 'OLAP_USR', NULL, NULL, 1, 12, NULL, NULL, 100003);
    INSERT INTO SOLVED_DIM VALUES (1, 'DIMENSION', 3, 'SH', 'DIMENSION', 'DIMENSION', 'TOP', 'SH', 'DIMENSION', NULL, 1, 11, 111, NULL, 100004);
    INSERT INTO SOLVED_DIM VALUES (1, 'DIMENSION', 3, 'OLAP_USR', 'DIMENSION', 'DIMENSION', 'TOP', 'OLAP_USR', 'DIMENSION', NULL, 1, 12, 121, NULL, 100005);
    INSERT INTO SOLVED_DIM VALUES (0, 'OUD1', 1, 'DIMENSION', 'OUD1', 'OUD1', 'TOP', 'OLAP_USR', 'DIMENSION', 'OUD1', 1, 12, 121, 1211, 100006);
    INSERT INTO SOLVED_DIM VALUES (0, 'OUD2', 1, 'DIMENSION', 'OUD2', 'OUD2', 'TOP', 'SH', 'DIMENSION', 'OUD2', 1, 11, 111, 1111, 100007);
    commit;
    BEGIN
    -- ---- Creating Dimension (CWM2_OLAP_DIMENSION) -------------------------
    begin
    cwm2_olap_dimension.drop_dimension(user, 'SOLVED_DIM');
    exception when others then null;
    end;
    cwm2_olap_dimension.create_dimension(user, 'SOLVED_DIM', 'SOLVED_DIM disp', 'SOLVED_DIM pl', 'SOLVED_DIM short', 'SOLVED_DIM long');
    -- ----- Completing Dimension Metadata (CWM2_OLAP_DIMENSION_ATTRIBUTE) ---
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'ID', 'ID', 'ID', 'ID');
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'ET key', 'ET key', 'ET key', 'ET key', true);
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'Parent ET key', 'Parent ET key', 'Parent ET key', 'Parent ET key', true);
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'Grouping ID', 'Grouping ID', 'Grouping ID', 'Grouping ID', true);
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'Parent Grouping ID', 'Parent Grouping ID', 'Parent Grouping ID', 'Parent Grouping ID', true);
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'Long Description', 'Long Description', 'Long Description', 'Long Description', true);
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'Short Description', 'Short Description', 'Short Description', 'Short Description', true);
    -- ----- Completing Dimension Metadata (CWM2_OLAP_HIERARCHEY) ------------
    cwm2_olap_hierarchy.create_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'SOLVED_DIM_HI disp', 'SOLVED_DIM_HI short', 'SOLVED_DIM_HI long', 'SOLVED LEVEL-BASED');
    cwm2_olap_dimension.set_default_display_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI');
    -- ----- Completing Dimension Metadata (CWM2_OLAP_LEVEL) -----------------
    cwm2_olap_level.create_level(user, 'SOLVED_DIM', 'OBJECT_NAME', 'OBJECT_NAME disp', 'OBJECT_NAME pl', 'OBJECT_NAME short', 'OBJECT_NAME long');
    cwm2_olap_level.create_level(user, 'SOLVED_DIM', 'OBJECT_TYPE', 'OBJECT_TYPE disp', 'OBJECT_TYPE pl', 'OBJECT_TYPE short', 'OBJECT_TYPE long');
    cwm2_olap_level.create_level(user, 'SOLVED_DIM', 'OWNER' ,'OWNER disp',      'OWNER pl', 'OWNER short', 'OWNER long');
    cwm2_olap_level.create_level(user, 'SOLVED_DIM', 'TOP', 'TOP disp',           'TOP pl', 'TOP short', 'TOP long');
    -- ----- Completing Dimension Metadata (CWM2_OLAP_LEVEL_ATTRIBUTE) -------
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ID', 'OBJECT_NAME', 'ID', 'OBJECT_NAME_ID', 'OBJECT_NAME ID', 'ID');
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ID', 'OBJECT_TYPE', 'ID', 'OBJECT_TYPE_ID', 'OBJECT_TYPE ID', 'ID');
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ID', 'OWNER',      'ID', 'OWNER_ID', 'OWNER ID', 'ID');
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ID', 'TOP', 'ID', 'TOP_ID', 'TOP ID', 'ID');
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ET key', 'OBJECT_NAME', 'ET key', 'OBJECT_NAME_ET', 'OBJECT_NAME ET key', 'ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent ET key', 'OBJECT_NAME', 'Parent ET key', 'OBJECT_NAME PARENT', 'OBJECT_NAME Parent ET key', 'Parent ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Grouping ID', 'OBJECT_NAME', 'Grouping ID', 'OBJECT_NAME GID','OBJECT_NAME GID', 'Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent Grouping ID', 'OBJECT_NAME', 'Parent Grouping ID', 'OBJECT_NAME PGID', 'OBJECT_NAME Parent Grouping ID', 'Parent Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Long Description', 'OBJECT_NAME', 'Long Description', 'OBJECT_NAME LongDesc', 'OBJECT_NAME Long Desc', 'Long Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Short Description', 'OBJECT_NAME', 'Short Description', 'OBJECT_NAME ShortDesc', 'OBJECT_NAME Short Desc', 'Short Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ET key', 'OBJECT_TYPE', 'ET key', 'OBJECT_TYPE_ET', 'OBJECT_TYPE ET key', 'ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent ET key', 'OBJECT_TYPE', 'Parent ET key', 'OBJECT_TYPE PARENT', 'OBJECT_TYPE Parent ET key', 'Parent ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Grouping ID', 'OBJECT_TYPE', 'Grouping ID', 'OBJECT_TYPE GID','OBJECT_TYPE GID', 'Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent Grouping ID', 'OBJECT_TYPE', 'Parent Grouping ID', 'OBJECT_TYPE PGID', 'OBJECT_TYPE Parent Grouping ID', 'Parent Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Long Description', 'OBJECT_TYPE', 'Long Description', 'OBJECT_TYPE LongDesc', 'OBJECT_TYPE Long Desc', 'Long Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Short Description', 'OBJECT_TYPE', 'Short Description', 'OBJECT_TYPE ShortDesc', 'OBJECT_TYPE Short Desc', 'Short Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ET key', 'OWNER', 'ET key', 'OWNER_ET', 'OWNER ET key', 'ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent ET key', 'OWNER', 'Parent ET key', 'OWNER PARENT', 'OWNER Parent ET key', 'Parent ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Grouping ID', 'OWNER', 'Grouping ID', 'OWNER GID','OWNER GID', 'Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent Grouping ID', 'OWNER', 'Parent Grouping ID', 'OWNER PGID', 'OWNER Parent Grouping ID', 'Parent Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Long Description', 'OWNER', 'Long Description', 'OWNER LongDesc', 'OWNER Long Desc', 'Long Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Short Description', 'OWNER', 'Short Description', 'OWNER ShortDesc', 'OWNER Short Desc', 'Short Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ET key', 'TOP', 'ET key', 'TOP_ET', 'TOP ET key', 'ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent ET key', 'TOP', 'Parent ET key', 'TOP PARENT', 'TOP Parent ET key', 'Parent ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Grouping ID', 'TOP', 'Grouping ID', 'TOP GID','TOP GID', 'Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent Grouping ID', 'TOP', 'Parent Grouping ID', 'TOP PGID', 'TOP Parent Grouping ID', 'Parent Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Long Description', 'TOP', 'Long Description', 'TOP LongDesc', 'TOP Long Desc', 'Long Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Short Description', 'TOP', 'Short Description', 'TOP ShortDesc', 'TOP Short Desc', 'Short Description', true);
    cwm2_olap_level.add_level_to_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'OBJECT_TYPE');
    cwm2_olap_level.add_level_to_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'OWNER');
    cwm2_olap_level.add_level_to_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OWNER',          'TOP');
    cwm2_olap_level.add_level_to_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'TOP');
    -- + Mapping Dimensions +
    cwm2_olap_table_map.map_dimtbl_hierlevel(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OBJECT_NAME', user, 'SOLVED_DIM', 'OBJECT_NAME', 'OBJECT_TYPE');
    cwm2_olap_table_map.map_dimtbl_hierlevel(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OBJECT_TYPE', user, 'SOLVED_DIM', 'OBJECT_TYPE', 'OWNER');
    cwm2_olap_table_map.map_dimtbl_hierlevel(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OWNER',           user, 'SOLVED_DIM', 'OWNER',     'TOP');
    cwm2_olap_table_map.map_dimtbl_hierlevel(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'TOP',           user, 'SOLVED_DIM', 'TOP');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ID', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'ID', user, 'SOLVED_DIM', 'OBJECT_NAME_ID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ET key', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'ET key', user, 'SOLVED_DIM', 'ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent ET key', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'Parent ET key', user, 'SOLVED_DIM', 'PARENT_ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Grouping ID', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'Grouping ID', user, 'SOLVED_DIM', 'GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent Grouping ID', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'Parent Grouping ID', user, 'SOLVED_DIM', 'PARENT_GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Long Description', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'Long Description', user, 'SOLVED_DIM', 'LONG_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Short Description', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'Short Description', user, 'SOLVED_DIM', 'SHORT_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ID', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'ID', user, 'SOLVED_DIM', 'OBJECT_TYPE_ID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ET key', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'ET key', user, 'SOLVED_DIM', 'ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent ET key', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'Parent ET key', user, 'SOLVED_DIM', 'PARENT_ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Grouping ID', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'Grouping ID', user, 'SOLVED_DIM', 'GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent Grouping ID', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'Parent Grouping ID', user, 'SOLVED_DIM', 'PARENT_GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Long Description', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'Long Description', user, 'SOLVED_DIM', 'LONG_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Short Description', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'Short Description', user, 'SOLVED_DIM', 'SHORT_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ID', 'SOLVED_DIM_HI', 'OWNER', 'ID', user, 'SOLVED_DIM', 'OWNER_ID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ET key', 'SOLVED_DIM_HI', 'OWNER', 'ET key', user, 'SOLVED_DIM', 'ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent ET key', 'SOLVED_DIM_HI', 'OWNER', 'Parent ET key', user, 'SOLVED_DIM', 'PARENT_ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Grouping ID', 'SOLVED_DIM_HI', 'OWNER', 'Grouping ID', user, 'SOLVED_DIM', 'GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent Grouping ID', 'SOLVED_DIM_HI', 'OWNER', 'Parent Grouping ID', user, 'SOLVED_DIM', 'PARENT_GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Long Description', 'SOLVED_DIM_HI', 'OWNER', 'Long Description', user, 'SOLVED_DIM', 'LONG_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Short Description', 'SOLVED_DIM_HI', 'OWNER', 'Short Description', user, 'SOLVED_DIM', 'SHORT_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ID', 'SOLVED_DIM_HI', 'TOP', 'ID', user, 'SOLVED_DIM', 'TOP_ID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ET key', 'SOLVED_DIM_HI', 'TOP', 'ET key', user, 'SOLVED_DIM', 'ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent ET key', 'SOLVED_DIM_HI', 'TOP', 'Parent ET key', user, 'SOLVED_DIM', 'PARENT_ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Grouping ID', 'SOLVED_DIM_HI', 'TOP', 'Grouping ID', user, 'SOLVED_DIM', 'GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent Grouping ID', 'SOLVED_DIM_HI', 'TOP', 'Parent Grouping ID', user, 'SOLVED_DIM', 'PARENT_GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Long Description', 'SOLVED_DIM_HI', 'TOP', 'Long Description', user, 'SOLVED_DIM', 'LONG_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Short Description', 'SOLVED_DIM_HI', 'TOP', 'Short Description', user, 'SOLVED_DIM', 'SHORT_DESCRIPTION');
    -- + Validate and Refresh +
    cwm2_olap_validate.validate_dimension(user, 'SOLVED_DIM');
    cwm2_olap_metadata_refresh.mr_refresh;
    END;
    The first dataset works perfectly. But not the second one... There are some intersections at OBJECT_TYPE level.
    TOP->OLAP_USR->DIMENSION->OUD1
    and
    TOP->SH->DIMENSION->OUD2.
    When I'm watching TOP->OLAP_USR->DIMENSION->OUD1, I not only open OUD1, but OUD2 under SH (even skipping OBJECT_TYPE level). It's simple to do it for USOLVED LEVEL-BASED by assigning different Id for the same OBJECT_TYPES from different owners. But it looks like my ids are ignored for Solved hierarchy.
    Does anybody knows how to handle such situation?

  • Dimension with no levels?  Can this be done?

    Hello Forum,
    I'm sure someone has run into this situation - I need to create a dimension that really has no levels... I need to create a Returns Dimension that has only two attributes, attribute 1: reasons for returns (too small, wrong color etc) and attribute 2: natural business key (Reason Number). All the other information that would be important to analyzing return metrics in my Return Cube are already in other dimensions (Store, Product, Customer Order)
    Can anybody share a work around, since the tool requires at least one level....
    monalisa

    Hi monalisa,
    sure . . . just create a dimension with one level. If you think about it, it can't have zero levels, can it? :-)
    This is pretty standard for a transaction type dimension, actually.
    But . . . consider . . .
    I'll bet that you won't eventually want just Returns (I'm done lots in retail). Sales/Returns. Full Price/Mark Down 1/ Mark Down 2/Clearance. I'll bet you will end up with about 15-20 reason codes (transaction types). And then they will want to group them, and categorize them, and you will end up with a second, parent level.
    There's something else to consider: this is a good dimension to store junk. Your Stock Count codes could live here. Your Stock transfer codes could live here. And so on. Do it this way, and you end up with a single conformed transaction type dimension for all your business processes. Just a thought . . .
    Cheers,
    Donna

  • DIMENSION WITH ONE LEVEL

    When I create a dimension with just one level when I refresh I have this error:
    SQL> EXECUTE DBMS_AWM.REFRESH_AWDIMENSION(USER, 'M62_EN_AW', 'AW_D_M62_DIM_E');
    BEGIN DBMS_AWM.REFRESH_AWDIMENSION(USER, 'M62_EN_AW', 'AW_D_M62_DIM_E'); END;
    ERROR en línea 1:
    ORA-06510: PL/SQL: unhandled user-defined exception
    ORA-06512: at "OLAPSYS.DBMS_AWM", line 1143
    ORA-06512: at line 1
    can anyone help me?

    Hi!thank you for all. I dont know if I understand correctly what you said but
    this is the xml template that generates de awm creating a dimension with one level. Can you do something?
    <?xml version = '1.0' encoding = 'UTF-8' ?>
    <!-- <!DOCTYPE XMI SYSTEM 'Model.dtd' > -->
    <AWXML version = '1.0' timestamp = 'Mon Feb 11 13:29:11 2002' >
    <AWXML.content>
    <Create Id="Action6">
    <ActiveObject >
    <AW Name="M62.M62_EN_AW" LongName="M62.M62_EN_AW" ShortName="M62.M62_EN_AW" PluralName="M62.M62_EN_AW" Id="M62.M62_EN_AW.AW" Schema="M62">
    <Dimension Name="ENTID" LongName="ENTID" ShortName="ENTID" PluralName="ENTID" Id="ENTID.DIMENSION" Schema="M62" isTime="false" isMeasure="false" UseNativeKey="false">
    <Attribute Name="LONG_DESCRIPTION" LongName="Descripción Larga" ShortName="Descripción Larga" PluralName="Descripciones Largas" Id="ENTID.LONG_DESCRIPTION.ATTRIBUTE" DataType="TEXT" Classification="MEMBER_LONG_DESCRIPTION" InstallAsRelation="false" IsDefaultOrder="false" IsMultiLingual="true"/>
    <Attribute Name="SHORT_DESCRIPTION" LongName="Descripción Breve" ShortName="Descripción Breve" PluralName="Descripciones Breves" Id="ENTID.SHORT_DESCRIPTION.ATTRIBUTE" DataType="TEXT" Classification="MEMBER_SHORT_DESCRIPTION" InstallAsRelation="false" IsDefaultOrder="false" IsMultiLingual="true"/>
    <Hierarchy Name="J_ENT" LongName="J_ENT" ShortName="J_ENT" PluralName="J_ENT" Id="ENTID.J_ENT.HIERARCHY" isDefault="true" Type="LEVEL">
    <AttributeProjection Name="OBJ1780952198" LongName="" ShortName="OBJ1780952198" PluralName="OBJ1780952198" Id="ENTID.J_ENT.OBJ1780952198.ATTRIBUTEPROJECTION" DataType="Text" Classification="USER" InstallAsRelation="false" IsDefaultOrder="false">
    <Attribute XMLIDref="ENTID.LONG_DESCRIPTION.ATTRIBUTE" />
    <Hierarchy XMLIDref="ENTID.J_ENT.HIERARCHY" />
    </AttributeProjection>
    <AttributeProjection Name="OBJ1780952199" LongName="" ShortName="OBJ1780952199" PluralName="OBJ1780952199" Id="ENTID.J_ENT.OBJ1780952199.ATTRIBUTEPROJECTION" DataType="Text" Classification="USER" InstallAsRelation="false" IsDefaultOrder="false">
    <Attribute XMLIDref="ENTID.SHORT_DESCRIPTION.ATTRIBUTE" />
    <Hierarchy XMLIDref="ENTID.J_ENT.HIERARCHY" />
    </AttributeProjection>
    <HierarchyLevelAssociation Name="NIV1" LongName="HLA1" ShortName="HLA1" PluralName="HLA1" Id="ENTID.J_ENT.NIV1.HIERARCHYLEVELASSOCIATION">
    <AttributeProjection Name="OBJ1780952201" LongName="" ShortName="OBJ1780952201" PluralName="OBJ1780952201" Id="ENTID.J_ENT.NIV1.OBJ1780952201.ATTRIBUTEPROJECTION" DataType="Text" Classification="USER" InstallAsRelation="false" IsDefaultOrder="false">
    <Attribute XMLIDref="ENTID.LONG_DESCRIPTION.ATTRIBUTE" />
    <Level XMLIDref="ENTID.NIV1.LEVEL" />
    <Hierarchy XMLIDref="ENTID.J_ENT.HIERARCHY" />
    </AttributeProjection>
    <AttributeProjection Name="OBJ1780952202" LongName="" ShortName="OBJ1780952202" PluralName="OBJ1780952202" Id="ENTID.J_ENT.NIV1.OBJ1780952202.ATTRIBUTEPROJECTION" DataType="Text" Classification="USER" InstallAsRelation="false" IsDefaultOrder="false">
    <Attribute XMLIDref="ENTID.SHORT_DESCRIPTION.ATTRIBUTE" />
    <Level XMLIDref="ENTID.NIV1.LEVEL" />
    <Hierarchy XMLIDref="ENTID.J_ENT.HIERARCHY" />
    </AttributeProjection>
    <SourceMappingGroup >
    <DimensionMapGroup Name="MAPGROUP1" LongName="MAPGROUP1" ShortName="MAPGROUP1" PluralName="MAPGROUP1" Id="ENTID.J_ENT.NIV1.MAPGROUP1.DIMENSIONMAPGROUP" Type="HIERARCHYLEVEL">
    <DimensionKeySourceExpression Name="KeyMap" LongName="KeyMap" ShortName="KeyMap" PluralName="KeyMap" Id="ENTID.J_ENT.NIV1.MAPGROUP1.KEYMAP.DIMENSIONKEYSOURCEEXPRESSION">
    <SourceColumn Name="OBJ1780952205" LongName="" ShortName="OBJ1780952205" PluralName="OBJ1780952205" Id="ENTID.J_ENT.NIV1.MAPGROUP1.KEYMAP.OBJ1780952205.SOURCECOLUMN" Column="M62.ENTIDADES.ID_ENTIDAD"/>
    <Level XMLIDref="ENTID.NIV1.LEVEL" />
    <Hierarchy XMLIDref="ENTID.J_ENT.HIERARCHY" />
    </DimensionKeySourceExpression>
    <AttributeSourceExpression Name="AttrMap1" LongName="AttrMap1" ShortName="AttrMap1" PluralName="AttrMap1" Id="ENTID.J_ENT.NIV1.MAPGROUP1.ATTRMAP1.ATTRIBUTESOURCEEXPRESSION">
    <SourceColumn Name="OBJ1780952207" LongName="" ShortName="OBJ1780952207" PluralName="OBJ1780952207" Id="ENTID.J_ENT.NIV1.MAPGROUP1.ATTRMAP1.OBJ1780952207.SOURCECOLUMN" Column="M62.ENTIDADES.DES_ENTIDAD_CAS"/>
    <TargetObject XMLIDref="ENTID.J_ENT.NIV1.OBJ1780952201.ATTRIBUTEPROJECTION" />
    <Level XMLIDref="ENTID.NIV1.LEVEL" />
    <Hierarchy XMLIDref="ENTID.J_ENT.HIERARCHY" />
    <BaseAttribute XMLIDref="ENTID.LONG_DESCRIPTION.ATTRIBUTE" />
    </AttributeSourceExpression>
    <AttributeSourceExpression Name="AttrMap2" LongName="AttrMap2" ShortName="AttrMap2" PluralName="AttrMap2" Id="ENTID.J_ENT.NIV1.MAPGROUP1.ATTRMAP2.ATTRIBUTESOURCEEXPRESSION">
    <SourceColumn Name="OBJ1780952209" LongName="" ShortName="OBJ1780952209" PluralName="OBJ1780952209" Id="ENTID.J_ENT.NIV1.MAPGROUP1.ATTRMAP2.OBJ1780952209.SOURCECOLUMN" Column="M62.ENTIDADES.DEC_ENTIDAD_CAS"/>
    <TargetObject XMLIDref="ENTID.J_ENT.NIV1.OBJ1780952202.ATTRIBUTEPROJECTION" />
    <Level XMLIDref="ENTID.NIV1.LEVEL" />
    <Hierarchy XMLIDref="ENTID.J_ENT.HIERARCHY" />
    <BaseAttribute XMLIDref="ENTID.SHORT_DESCRIPTION.ATTRIBUTE" />
    </AttributeSourceExpression>
    </DimensionMapGroup>
    </SourceMappingGroup>
    <level XMLIDref="ENTID.NIV1.LEVEL" />
    </HierarchyLevelAssociation>
    </Hierarchy>
    <MemberSelection >
    <Level Name="NIV1" LongName="NIV1" ShortName="NIV1" PluralName="NIV1" Id="ENTID.NIV1.LEVEL" isDimensioned="false">
    <AttributeProjection Name="OBJ1780952195" LongName="" ShortName="OBJ1780952195" PluralName="OBJ1780952195" Id="ENTID.NIV1.OBJ1780952195.ATTRIBUTEPROJECTION" DataType="Text" Classification="USER" InstallAsRelation="false" IsDefaultOrder="false">
    <Attribute XMLIDref="ENTID.LONG_DESCRIPTION.ATTRIBUTE" />
    <Level XMLIDref="ENTID.NIV1.LEVEL" />
    </AttributeProjection>
    <AttributeProjection Name="OBJ1780952196" LongName="" ShortName="OBJ1780952196" PluralName="OBJ1780952196" Id="ENTID.NIV1.OBJ1780952196.ATTRIBUTEPROJECTION" DataType="Text" Classification="USER" InstallAsRelation="false" IsDefaultOrder="false">
    <Attribute XMLIDref="ENTID.SHORT_DESCRIPTION.ATTRIBUTE" />
    <Level XMLIDref="ENTID.NIV1.LEVEL" />
    </AttributeProjection>
    </Level>
    </MemberSelection>
    </Dimension>
    <Cube Name="CUBO_ENT" LongName="CUBO_ENT" ShortName="CUBO_ENT" PluralName="CUBO_ENT" Id="CUBO_ENT.CUBE" Schema="M62" UseGlobalIndex="false" SparseType="STANDARD" DefaultDataType="DECIMAL" AutoSolve="YES">
    <SourceMappingGroup >
    <CubeMapGroup Name="MAPGROUP1" LongName="MAPGROUP1" ShortName="MAPGROUP1" PluralName="MAPGROUP1" Id="CUBO_ENT.MAPGROUP1.CUBEMAPGROUP">
    <CubeDimensionSourceExpression Name="KeyMap1" LongName="KeyMap1" ShortName="KeyMap1" PluralName="KeyMap1" Id="CUBO_ENT.MAPGROUP1.KEYMAP1.CUBEDIMENSIONSOURCEEXPRESSION">
    <SourceColumn Name="OBJ1780952236" LongName="" ShortName="OBJ1780952236" PluralName="OBJ1780952236" Id="CUBO_ENT.MAPGROUP1.KEYMAP1.OBJ1780952236.SOURCECOLUMN" Column="M62.EMAITZA_E.ID_ENTIDAD"/>
    <TargetObject XMLIDref="ENTID.DIMENSION" />
    <Level XMLIDref="ENTID.NIV1.LEVEL" />
    </CubeDimensionSourceExpression>
    <MeasureSourceExpression Name="AttrMap1" LongName="AttrMap1" ShortName="AttrMap1" PluralName="AttrMap1" Id="CUBO_ENT.MAPGROUP1.ATTRMAP1.MEASURESOURCEEXPRESSION">
    <SourceColumn Name="OBJ1780952238" LongName="" ShortName="OBJ1780952238" PluralName="OBJ1780952238" Id="CUBO_ENT.MAPGROUP1.ATTRMAP1.OBJ1780952238.SOURCECOLUMN" Column="M62.EMAITZA_E.CANTIDAD"/>
    <TargetObject XMLIDref="CUBO_ENT.MED1.MEASURE" />
    </MeasureSourceExpression>
    </CubeMapGroup>
    </SourceMappingGroup>
    <SolveDefinition >
    <AggregationDefinition Name="OBJ1780952211" LongName="" ShortName="OBJ1780952211" PluralName="OBJ1780952211" Id="CUBO_ENT.OBJ1780952211.AGGREGATIONDEFINITION" Schema="AW$DEFAULT" AggIndex="NA" CacheStore="SESSION" CacheNa="NA">
    <CalculationSpecification >
    <AggregationHierarchySpecification Name="Relation1" LongName="Relation1" ShortName="Relation1" PluralName="Relation1" Id="CUBO_ENT.OBJ1780952211.RELATION1.AGGREGATIONHIERARCHYSPECIFICATION" CalculationOrder="1">
    <AggregationOperator >
    <BaseOperator Name="Base Operator" LongName="Base Operator" ShortName="Base Operator" PluralName="Base Operator" Id="CUBO_ENT.OBJ1780952211.RELATION1.BASE OPERATOR.BASEOPERATOR" opcode="SUM"/>
    </AggregationOperator>
    <Dimension XMLIDref="ENTID.DIMENSION" />
    <PreComputeClause Name="OBJ1780952231" LongName="" ShortName="OBJ1780952231" PluralName="OBJ1780952231" Id="CUBO_ENT.OBJ1780952211.RELATION1.OBJ1780952231.PRECOMPUTECLAUSE">
    <DimensionMemberExpression Name="OBJ1780952232" LongName="" ShortName="OBJ1780952232" PluralName="OBJ1780952232" Id="CUBO_ENT.OBJ1780952211.RELATION1.OBJ1780952231.OBJ1780952232.DIMENSIONMEMBEREXPRESSION" ExpressionType="EXCLUDE" Expression="ALL"/>
    </PreComputeClause>
    </AggregationHierarchySpecification>
    </CalculationSpecification>
    <SolveDefDimRef Name="OBJ1780952226" LongName="" ShortName="OBJ1780952226" PluralName="OBJ1780952226" Id="CUBO_ENT.OBJ1780952211.OBJ1780952226.SOLVEDEFDIMREF" CalcMemberSolveOrder="0">
    <Dimension XMLIDref="ENTID.DIMENSION" />
    <SolveDefinition XMLIDref="CUBO_ENT.OBJ1780952211.AGGREGATIONDEFINITION" />
    </SolveDefDimRef>
    </AggregationDefinition>
    </SolveDefinition>
    <DefaultAggregationDefinition XMLIDref="CUBO_ENT.OBJ1780952211.AGGREGATIONDEFINITION" />
    <CubeDimRef Name="OBJ1780952225" LongName="" ShortName="OBJ1780952225" PluralName="OBJ1780952225" Id="CUBO_ENT.OBJ1780952225.CUBEDIMREF" Sparse="true">
    <Dimension XMLIDref="ENTID.DIMENSION" />
    </CubeDimRef>
    <Measure Name="MED1" LongName="MED1" ShortName="MED1" PluralName="MED1" Id="CUBO_ENT.MED1.MEASURE" DataType="DECIMAL" isInternal="false" UseGlobalIndex="false" ForceCalc="false" ForceOrder="false" SparseType="STANDARD" AutoSolve="AUTO_SOLVE"/>
    <PartitionHierarchy XMLIDref="ENTID.J_ENT.HIERARCHY" />
    <PartitionLevel XMLIDref="ENTID.NIV1.LEVEL" />
    </Cube>
    <ExtendedProperty Name="OBJ1780952192" LongName="" ShortName="OBJ1780952192" PluralName="OBJ1780952192" Id="OBJ1780952192.EXTENDEDPROPERTY" Creator="SYSTEM" ExtensionName="GLOBALATTRIBUTE" ExtensionValue="" ReferencedObjectId="ENTID.LONG_DESCRIPTION.ATTRIBUTE"/>
    <ExtendedProperty Name="OBJ1780952193" LongName="" ShortName="OBJ1780952193" PluralName="OBJ1780952193" Id="OBJ1780952193.EXTENDEDPROPERTY" Creator="SYSTEM" ExtensionName="GLOBALATTRIBUTE" ExtensionValue="" ReferencedObjectId="ENTID.SHORT_DESCRIPTION.ATTRIBUTE"/>
    </AW>
    </ActiveObject>
    </Create>
    </AWXML.content>
    </AWXML>

  • How to create a dimension with one level

    I created a cube with some dimensions, that have only a level, and this kind of dimensions bring me some problems when I want to use "OracleBI Spreadsheet Add-In" to consult the cube.
    The problem is that I can’t create a hierarchy with only a level, so the dimensions are created without a hierarchy.
    When I make a query in the “Query Builder” of "OracleBI Spreadsheet Add-In", I have some problems in the step of choosing what levels I want to select for a determined dimension, if that dimension is a dimension without a hierarchy.
    What really happens is that, I can see all the values for the level in the left box, but I don’t achieve to put one of these values on the right box. I can click in the next button, to jump to the next dimension, and all the process of selection for the other dimensions occurs without problems, except for the dimensions that haven’t a hierarchy.
    If I select only dimensions that have a hierarchy, all works perfectly, but if I select one or more dimensions that don’t have a hierarchy, the following problems occur:
    => I can’t select the values of the level that I want to see (only for dimensions that don’t have a hierarchy)
    => When I click in “end” button of the “Query Builder”, it doesn’t finish and blocks.
    The solution is to create a hierarchy, but I can’t create a hierarchy with only a level. Is it possible to create a “top level” without a source column in the dimension table? So I will have two levels, and with these two levels I can create a hierarchy that resolves the problem.
    What is the solution for this problem?
    Regards,
    Rui Torres

    How I can resolve my problem?
    I don’t want to use the CWM2 PL/SQL packages, because with these packages I only can create MOLAP cubes.
    I only want to create ROLAP cubes, but I can't create a hierarchy with one level.
    Why the "OracleBI Spreadsheet Add-In" doesn’t work with dimensions, that not have hierarchies?
    How I can resolve this BIG problem?
    It is very URGENT!!!!
    Regards,
    Rui Torres

  • Design a dimension with skip-level hierarchy and its ETL

    Hi gurus,
    I'm trying to understand how to set up and use a skip level dimension and its corresponding mapping in OWB 11.2.
    A simplified version of my hierarchy would be like Total-Brand-LOB-Product where Some Products connect directly to Brand and others connect to LOB.
    My first question is about designing this kind of dimension in OWB. Is it better to create a single hierarchy with the Product level skipped to Brand level or 2 hierarchies - one Total-Brand-LOB-Product and the other Total-Brand-Product?
    My second question is about creating its corresponding ETL mapping. Selecting each option above result in 2 FKs for Brand and LOB in Product level. What is the correct design to fill these 2 FKs?
    Any help/guidance would be truly appreciated!
    Thanks,
    Iman

    Hi, My problem is that in my report it is showing me that levels as -- A -> B -> C -> Null -> Null -> F, however I want to show data as A -> B -> C -> F, i.e the null valus(columns) should be skipped. Please help.
    Thanks and Regards,
    Deepak

  • One Dimension with Facts at different levels

    I currently have a single dimension with 5 levels. I have two fact tables that both connect to the dimension table but at different levels.
    For example. If we have a Dimension Country -> Region -> City and then two fact tables. One that has facts at the Region level and one that has facts at the City level.
    Is there a way to be able to have an answer that contains facts from both fact tables. So if there was a fact from City and the Region level? Everything I seem to try does not work. Would I have to create an additional aggregate table that aggregates the City level data up to the Region? Or is there a way to show the data at the lowest level and show either nulls or duplicate values for the additional records.
    Any help is greatly appreciated

    This has helped a little. I am now getting values from both levels. However, because i am summing the two values. The value from the upper level is now summing duplicate values. For example.
    Value 1 on its own
    Level1 Level 2 Level 3 Value 1
    1234 10 10 13.05
    1234 20 10 70.00
    1234 20 20 70.00
    1234 30 10 105.00
    1234 30 20 105.00
    Value 2 on its own
    Level1 Level 2 Level 3 Value 2
    1234 10 10 0.50
    1234 20 10 2.00
    1234 20 20 2.00
    1234 30 10 3.00
    1234 30 20 3.00
    What I am getting
    Level1 Level 2 Level 3 Value 1 Value 2
    1234 10 10 13.05 0.50
    1234 20 10 140.00 2.00
    1234 20 20 140.00 2.00
    1234 30 10 210.00 3.00
    1234 30 20 210.00 3.00
    Desired Outcome
    Level1 Level 2 Level 3 Value 1 Value 2
    1234 10 10 13.05 0.50
    1234 20 10 70.00 2.00
    1234 20 20 70.00 2.00
    1234 30 10 105.00 3.00
    1234 30 20 105.00 3.00
    Now, the problem with this is that Value 1 is a fact at Level 2 and Value 2 is a fact at Level 3. I have one dimension table and two fact tables. The join between the fact table for Value two and the dimension table is the same as the join between the dimension table and Value 1 only it is missing the last level of detail.
    I have then set the logical table source content tabs for each fact table to the corresponding levels.
    I thought this would be enough but i still don't get the desired result. I am not sure if this is possible with one dimension table.
    Any ideas would be greatly appreciated.
    Edited by: user10800227 on Jan 11, 2010 12:43 PM

  • Mapping Dimension with a composite primary key in AWM

    Hi, I have a dimension with 3 levels in a snowflake scheme. The Primary key (PK) of one of them is a composite pk.
    Let's say: table1 (code_t1 (pk), desc_t1), table2 (code_t2 (pk), code_t1 (pk+fk), desc_t2)) and table3 (code_t3 (pk), code_t2 (fk), code_t1 (fk), desc_t3), being table3 the base level table.
    I am using AWM 11.2.0.1.0A
    My questions are:
    1) can I have a level with a composite PK?
    2) if yes, how should I do the mappings using AWM? It seems like you only can have one filed for the source column in the Mapping pane.
    3) if no, is there any workaround?
    Thank you.

    I just tried this in AWM and it is clearly buggy in this area, in part because it is trying to change the underlying representation.
    If you export the dimension to XML you should find an entry that looks like this for each level
    <HierarchyLevelMap
    KeyExpression="..."
    Query="..."
    JoinCondition="...">
    </HierarchyLevelMap>
    The 'Query' is the name of the table you are selecting from. For example, your level2 should have
    Query="TABLE2"
    The 'KeyExpression' is the expression that defines the AW dimension member for that level. For example, your level2 should have
    KeyExpression= '(TABLE2.CODE_T2 || TABLE2.CODE_T1)'
    The 'JoinCondition' defines how to join the table for a child level to that of its parent. For example, your level3 would ideally look like this
    JoinCondition='(TABLE3.CODE_T2 = TABLE2.CODE_T2) AND (TABLE3.CODE_T1 = TABLE2.CODE_T1)'
    But in your case it must be something different, probably 'TABLE3.CODE_T2 = (TABLE2.CODE_T2 || TABLE2.CODE_T1)'.
    AWM must derive its Parent field from this JoinCondition in some way, and it appears to mess it up when you use concatenated key expressions. The workaround is to hand edit the XML to specify the JoinCondition correctly for your case and recreate the dimension from that XML. I would then avoid editing this particular mapping in AWM since it will mangle it.

  • Dimension Design - Single Dimension with Multiple Hierarchies

    Morning,
    the purpose of this discussion is to understand how we should design a specific dimension with 3 levels and multiple hierarchies for optimal performance.
    We have an institution dimension with the following characteristics:
    Characteristics
    Dimension: Institution
    Levels:
    1. Total Bank (TB) Level
    2. Peer Group (PG) Level
    3. Institution Level
    Hierarchies:
    1. Some of the hierarchies have 3 levels and others have only 2 levels (Skip Level)
    2. ALL the hierarchies have a TB level and an Institution level
    3. None of the hierarchies have the same leafs
    4. Some of the hierarchies leafs can overlap
    Design:
    We are considering two approaches for the institution dimension levels:
    a)
    Levels:
    Hierarchy 1 TB Level
    Hierarchy 1 PG Level
    Hierarchy 1 Inst Level
    Hierarchy 2 TB Level
    Hierarchy 2 Inst Level
    Hierarchy 3 TB Level
    Hierarchy 3 Inst Level
    Note:
    This approach is working and the resulting dimension and cubes are used by OBIEE, but some of the OBIEE analysis takes a long time (more than a minute) to return the results.
    At this point, we are not sure whether this approach will result in an optimal design from a performance perspective and are looking at restructuring the dimension to represent only the three conceptual levels as indicated below.
    b)
    Levels:
    1. Total Bank (TB) Level
    2. Peer Group (PG) Level
    3. Institution Level
    The rest of the dimension i.e. hierarchies, attributes and mappings are defined in the same way.
    The cube associated with this dimension have approximately 80 million records.
    Please advise on any best practices or design considerations that we need to take into account.
    Thanks

    No, it is not possible to have multiple hiearchies in a PC logical dimension.
    The concept of the Parent-Child (PC) hierarchy is completely different from the level-based hierarchy. Specifically the PC hierarchy expects a predefined / architected table with corresponding PC column/value structuring with or without attributes.
    Short story even shorter it is not possible.
    Longer...
    In the RPD the BMM actually prevents you from adding a new logical level, child level, or parent level when you have selected that the logical dimension be a parent child logical dimension with Parent-Child hierarchy.
    On another note...
    Have you tried architecting/building your PC source table so that it represents the roll-up and bottom child-levels like you are seeking? That is, that same member in the child column more than once having a separate parent value. That should be doable.
    That was a great question, please award points if this answered your question or it was helpful.
    Cheers,
    Christian
    http://www.artofbi.com

  • Hierarchical Dimension with a leaf node w/o any parent

    Hi
    We have a Product Dimension with five levels L0, L1, L2, L3 and L4 (L0-lowestlevel, L4-HighestLevel).
    With one Hierarchy STANDARD as
    L4, NULL (Parent)
    L3, L4 (L4 is the parent of L3)
    L2, L3
    L1, L2
    L0, L1 (L1 is the parent of L0)
    The product dimension table has a record with values only for L0 and NULL values for other Levels..
    (ie) We have a requirement to create a value in L0 which will have no parents.. The rest of the values in L0 will have parents.
    Would like to know if this is possible in AW. This was possible in Express Server
    regards
    uma

    HI
    yes we have run into a big problem. We have created leaf nodes w/o parent in aw and created relational views of those. The measure views thus created has data for these dimension values but when accessed thru BI Beans (ie in the cross-tab if we have this measure) the data is not getting displayed for these dimension values (Which do not have parent)
    Any immediate response will be of greate help to us.

  • Problem in Aggregate with Multiple level of dimension

    Hi,
    I have a BI repository with a snowflake schema. I have also designed the business model with snowflake, It works with drilling and all but I am facing problem when I am
    creating  a logical column aggregating with a higher level of dimentation. Let me illustrate that :
      I have the Following Hierarchy :
    Tournament(id, Name) ---- > Round (id, name, tournament_id) -------> Match (id, Name, RoundId ) |  Match is fact table and other 2 dimension.
      I also created a logical dimension called tournament with 3 levels.
      Now say I want to create a logical column Total Number of Matches , aggregating  to the dimension level of Tournament. The result gives counts a 0 for every tournament. However
      it is working perfectly when the dimension level is Round (which is the immediate next level after fact).
      The Logical request generated (in case of Tournament level) :
       MatchId:[DAggr(Measure1.MATCHID by [ Matches$.TournamentId]  SB Tournament)] as c1 GB.   
        There is no such column as TournamentId in Matches$ table. How does the BI server got this ?
       The execution plan  evaluate this:
         cast(NULL as  INTEGER )  as c1 GB [for database 0:0,1]
       Can someone please explain why is this happening, is it because of the snowflake schema, but I guess if BI server can handle a snowflake schema it should work the Aggregate
       properly in multiple levels of dimensions, or it is something I am doing wrong.
       Execution Environment:
         Windows XP ,  OBI 10g on OC4J.  Data source : MS Excel (ODBC 3.5)
      Regards,
      Ru

    Hi,
    With reference to your question.
    Can any operator perform this task..I don't think any single operator will help you.
    I suggest using an intermediate (staging) table by using a PL SQL procedure with output port to store the values of account number provided the number of accounts are limited. Else use an array variable for account of an employee.
    In short no simple solution because of the bad source design else the pivot/unpivot operator would have helped you.
    Cheers
    - Mohammed

  • 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

  • Dimension with Level Dased Hierarchy

    Hi everyone
    I have one table in bussines model called items with columns item_code,item_descr,item_brand,item_category.
    I also have a Dimension with Level Dased Hierarchy set as total_level,item_brand,item_category,item_code.
    Data
    ===
    item_brand 1, item_category 21, item_code code1
    item_brand 2, item_category 21, item_code code2
    In Answer when i use the above hierarchy i have the problem that when i expand item_brand 1 and then item_category 21 automatically answer expand also item_brand 2 showing only item_code code2.
    It happens because item_brand 1,2 have the same item_category 21.
    Is there any way to make it work?
    Thanks
    Hermes
    Edited by: hermes on 24 Μαρ 2011 3:05 πμ

    Hi hermes,
    try this:
    create two physical table with the rows ant import in your Physical Layer:
    DIM_TABLE1
    BRAND CATEGORY
    item_brand 1, item_category 21
    item_brand 2, item_category 21
    And DIM_TABLE2
    BRAND CATEGORY ITEM
    item_brand 1, item_category 21, item_code code1
    item_brand 2, item_category 21, item_code code2
    Define the join like this:
    DIM_TABLE1.BRAND = DIM_TABLE2.BRAND and DIM_TABLE1.CATEGORY = DIM_TABLE2.CATEGORY
    In the Business Model create 1 Logical Table Source for your dimension with the source you two physical table, inner join.
    Now map the logical column.
    I hope it helps.
    Regards,
    Gianluca

  • Xcelsius Engage: Issue with dynamic visibilty of data in dashboard

    Hi,
    We have a requirement for a dashboard where data for 5 Sites need to be displayed as per 17 KPIs and 12 different rolling months.
    Raw sample data looks like below-
    SITE  KPI        ActYTD  Act(Pre Month) PlanYTD  Plan(Prev Month)  VarianceYTD Variance(Pre Month)
    A       On-Time   76.7         82.92                  111.50       109.50             -1                    -1
    B       Delay       73.70       80.00                   79.75        77.75             -1                     1
    There are 5 different Sites and 17 different KPIs.
    Based on the raw data that we get from BI (7.0 query output), we manipulate it in MS excel, using some lookups and formulae to obtain certain values, store them in designated sheets and then Xcelsius (different components) use these sheets as source.
    We are having three levels of navigation-
    1. Main screen listing all KPIs site wise and months ( the site and months could be selected from Combo boxes at the top). The KPIs are bind to a list view, each row is a selectable KPI leading to level two navigation.
    2. Level two contains the details for each KPI ( values and trend chart). Selection in the chart for a Site leads to level 3 navigation.
    3. Level 3 screen contains data by KPI and by Site for 12 rolling months ( The sites could be changed from a drop-down).
    There are custom navigation buttons (home/back) to enable navigations between the screens.
    We are using 3 panel containers, 2 list views, 4-5 combo boxes and some hidden button ( with dynamic visibilty).
    The workbook has 8-9 different sheets, though the Xcelsius componets are bound to only 3 sheets.
    Things work fine till we select 14th KPI , but Xcelsius starts behaving awkwardly when we select 15th KPI and further.For the selected KPI, the level two screen would load for a flash of a second and then the control comes back to level 1 screen. We do not face this issue till 14th KPI.
    In-order to eliminate possibiltes we did the following-
    1. Changed the order of KPIs - issue persists
    2. Changed the Excel option " Max. no of Rows" to 4000- issue persists
    3. Decreased the amount of data to be loaded - issue persists ( though at max we are loading data for 2000 rows)
    4. Decreased the no. of KPIs to 14 in level 1 list view - all works fine.
    We have not noticed any gradual decrease in performance/load time till 14th KPI but everything goes for a toss when the 15th KPI is displayed.
    We are on the latest Xcelsius patch ( patch 3).
    We would appreciate any pointers/help to resolve this issue.
    Thanks in advance for your time.
    Best Regards,
    Bansi.

    How many total rows are you dealing with in your spreadsheet?
    -Dell

  • Creating Report using EPM Functions with Dynamic Filters

    Hi All,
    I am new to BPC, In BPC 7.5 i seen like we can generate EPM report using EVDRE function very quickly and easy too. Is the same feature is existing in BPC 10.0 ? if no how can we create EPM reports using EPM Functions with Dynamic Filters on the Members of the dimension like in BPC 7.5.
    And i searched in SDN, there is no suitable blogs or documents which are related to generation of Reports using EPM Functions. All are described just in simple syntax way. It is not going to be understand for the beginners.
    Would you please specify in detail step by step.
    Thanks in Advance.
    Siva Nagaraju

    Siva,
    These functions are not used to create reports per se but rather assist in building reports. For ex, you want to make use of certain property to derive any of the dimension members in one of your axes, you will use EPMMemberProperty. Similary, if you want to override members in any axis, you will make use of EPMDimensionOverride.
    Also, EvDRE is not replacement of EPM functions. Rather, you simply create reports using report editor (drag and drop) and then make use of EPM functions to build your report. Forget EvDRE for now.
    You can protect your report to not allow users to have that Edit Report enabled for them.
    As Vadim rightly pointed out, start building some reports and then ask specific questions.
    Hope it clears your doubts.

Maybe you are looking for