Exluding lowest level dimensionmembers from a total report.

Hi,
I know this thread might belong in the Discover part of the forum, but based on previous experience it seems that Discoverer for OLAP help is difficult to come by in that part. Also I think this quickly might end up with being a bit more OLAP technical.
To the issue:
Say that you have a sales cube with 3 dimensions, time, product and customer.
The customer dimension has three levels with one standard hierarchy in the following order: Total, customerclass and customertype.
For the lowest level there is a customertype member thats named "internal". This means that all employees buying from their own company with a special discount is placed under this member.
Now to the report:
Using discoverer for Olap, management want two total reports. One where the Internal member is included, and one where it is excluded. This meaning that the initial report should just show the total levels for all dimensions, just with different totals.
Now I thought of just not include the internal member when you choose different dimensions in the query builder, but as far as I know this would only work for the lowest level. Total and customerclass would still show sums that include the internal level since the cube has aggregated these levels in advance.
Does anyone a way to work around this?
some cube facts:
database version 10.2.0.3. with the OLAP A patch
cube compressed and partitioned along month, fully aggregated for all levels(except year).
regards Ragnar

Rangar,
Simplicity is in the eye of the beholder, but you should be able to make it work. The details will depend on your source mapping, but I will assume that you have a single dimension star table with three columns, one per level.
CREATE TABLE CUST
Total varchar2,
CustomerClass varchar2,
CustomerType varchar2
I'll assume further that the member 'INTERNAL' appears as CustomerType. Define a VIEW on top of the table like this.
CREATE VIEW CUST_VIEW AS
SELECT *
FROM CUST
WHERE CustomerType != 'INTERNAL'
Now create two new levels
TOTAL_EXTERNAL
CUST_CLASS_EXTERNAL
Create a new level hierarchy, EXTERNAL_HIER say, that includes the two new levels along with the existing CustomerType level.
TOTAL_EXTERNAL
CUST_CLASS_EXTERNAL
CUSTOMER_TYPE
Note that even though the CUSTOMER_TYPE level appears in two hierarchies, the members in that level can vary be hierarchy. This is important since it means you do not have to reload the leaf data for the cube.
Now map the new hierarchy to the three key columns in CUST_VIEW. To do this correctly you need to switch to the "Snowflake Schema" view on the AWM mappings tab. This allows you to explicitly set the parent column for each hierarchy. So, in your new EXTERNAL_HIER hierarchy the parent of CUSTOMER_TYPE is CUST_VIEW.CustomerClass. In your old hierarchy, INTERNAL_HIER say, the parent of CUSTOMER_TYPE is CUST.CustomerClass. If you don't switch to the "Snowflake Schema" view then you will end up with null values for the parent dimension. (I just wasted 45 minutes discovering this fact.)
You now have two hierarchies and five levels. Your aggregation strategy for the cube should reflect this in some way. If you want full pre-aggregation, then you will need to add the two new levels to the cube. If not, then you are probably set.
David

Similar Messages

  • How to include non-joining records from level one in the lowest level?

    As an example the dimension has three levels with data coming from three source tables. The relationships between these tables are zero to many. As a result of this e.g. there are records at the first level that do not join to the second table for level two, i.e. there is a customer entry but the customer has not acquired any products. However, we would like to see in the query for the lowest level also the customers that didn't acquire any products. They are there when there is no filter for the lowest level, but that returns duplicate data. I was hoping I could accomplish this by using outer joins when loading the dimension, but it loads the same as without the outer joins. Hopefully, this trivalized example describes what I am trying to accomplish.

    You won't be able to have a true "default" value in the various cascading levels, since there aren't default values in a dynamic cascading parameter.  That being said, I've created a sample report in Crystal Reports 2008 that has a Command-driven DCP with '*' values for the 2nd and 3rd levels of my 3-tier DCP and have accounted for them in the record selection criteria.  You can find the sample here at https://www.box.net/shared/mav5qp337j

  • Cannot drill down from 2nd lowest level to lowest level of hierarchy

    In my item master hierarchy, I cannot drill down from the 2nd lowest level (Product Class) to the lowest level (Item Detail).
    When I add another level between these 2 levels, then I can drill down from Product Class to this new level, but I cannot drill down from this new level to the lowest level.
    Also, if I set the preferred drill path at any level to drill down to the lowest level, it instead drills down to next level down intead of of drilling to the lowest level.
    Any thoughts as to why I would not be able to drill to the lowest level of this hierarchy?
    Thanks,
    Travis

    OK, next check, any security in place on the presentation columns which would make the lowest level column unavailable to the user account?
    Are you running the report as Administrator?

  • Grand total (Report footer) issue in a Report with Group selection.

    Hi,
    The case is simple, i have to summrise the NetValue field of a  report at the Group level and at the Report level(Grand Total).
    I also use a Group selection filter (I have grouped my records by MaterialDesc) to keep the desired groups.
    As you already guessed, my group totals are fine but the grand totals(report footer) contain both filtered and non filtered group records. Is there any way to avoid this problem and get a Grand Total from the filtered group records?
    Thank you.

    You can not use standard summaries with Group Suppression you must use either Running Totals or variables.
    In Running Total  evaluate click theformual button and eneter reverse condition to your group suppression.
    If you can not do that then you must use a Var
    In group footer where total is currently correct place a formula like this and suppress it
    @eval
    whileprintingrecords;
    global numbervar RepTot;
    If ..whatever your suppression condition is not true... then reptot:= reptot + sum( valuefield, groupfield);
    In report footer
    @display
    whileprintingrecords;
    global numbervar RepTot;
    Ian

  • Hierarchy drill down issue at the lowest level

    Hi,
    In OBIEE 11.1.1.5 I face an issue with drill down to lowest level of presentation hierarchy (expanded by "+" in report). It happens only for combination of 2 dimensions presentation hierarchies in analytics report (parent-child organizational structure + level based product categorization). Aggregated date comes from OLAP but lowest level product information comes from relational database and this details are not displayed.
    First I drill to particular sales rep in organizational structure. Then for that sales rep I need to drill down product hierarchy and it works except lowest level of details. At the lowest level of product hierarchy, query sent to database (I have it from logs) return proper results (checked directly in db) but report behaves the way like there are no details at the lowest level and product details are not displayed.
    Both (Organizational structure, Product) dimension presentation hierarchies works ok at all levels when used separately. Also product hierarchy works well at all levels (including OLAP->relational drill) when used togather with other level-based hierarchies in subject area.
    I am wondering what I could have done wrong...
    Advices are very welcome!

    Hierarchy keys are set properly and "use for display" is checked.
    Dimension presentation hierarchies does not work only when I use particular two hierarchies togather in one report table. When each of hierarchies is displayed separately it works ok.

  • Assign WBS AVAC not in the lowest level of WBS elements

    Dear SAP Community,
    Our client has requirement to have budget availability control in WBS element level 3 while the WBS structure is until level 5 and the actual posting will occurred in WBS element level 5.
    Our current setting is to have WBS element level 5 as Planning Element and Account Assignment Element. So, user can upload their WBS planning data from the lowest level of WBS structure. Then we copy the Planning Data as Budget through CJ30 and release it through CJ32.
    If we set the value of Budget Data in CJ30 and CJ32 until the level 5, the system check AVAC in WBS level 5 instead of the amount rolled up in WBS level 3. If we set the value of Budget Data in CJ30 and CJ32 in WBS level 3, the system will check AVAC in WBS level 3 (as we expected) but the consequence is comparison of actual vs budget in WBS level 5 will have variance 100%.
    Is there any way to define the budget data until WBS level 5 but the AVAC control is in WBS level 3?
    Appreciate your inputs
    Thank you and best regards,
    Fitria

    Hi,
    >If we set the value of Budget Data in CJ30 and CJ32 in WBS level 3, the system will check AVAC in WBS level 3 (as we >expected) but the consequence is comparison of actual vs budget in WBS level 5 will have variance 100%.
    We had similar kind of requirement, we had followed the above process. THis will provide the required functionality except the variance in reports. Try and convince the client to settle for this if this meets your requirements.
    As AVAC  can't be managed at WBS levels.
    Regards,
    Harsh.

  • Get data in a subreport based on a shared variable from the main report.

    Goodd morning,
    My question/problem is how to manage this scenario.
    I am transfering 2 shared variables (pereiod from /period To, ) from the main report to a subreport and now  i would like to get data in this subreport based on these 2 variables...
    The problem is that i can not find the shared one in select expert icon...
    Could anyone point me to solve this issue?
    Thks for any help.
    Jose Marin
    Crystal Report XI SR3

    Hello Jos,
    I recommend to post this query to the [Crystal Reports Design|SAP Crystal Reports; forum.
    This forum is dedicated to topics related to the creation and design of Crystal Report documents. This includes topics such as database connectivity, parameters and parameter prompting, report formulas, record selection formulas, charting, sorting, grouping, totaling, printing, and exporting but also installation and registering.
    It is monitored by qualified technicians and you will get a faster response there.
    Also, all Crystal Reports Design queries remain in one place and thus can be easily searched in one place.
    Best regards,
    Falk

  • How to go one level up in xml publisher reports

    Hi Experts,
    I am working in XML Publisher reports; I am working Invoice report (standard report), below is my requirement.
    Template sample:
    <?for-each:G_INVOICE?>
    <?trx_number?> <?trx_type?>
    <?for-each:G_LINES?>
    <?LINE_NUMBER?> <?COMMODITY_CODE?> <?QUANTITY?>
    <?end for-each:G_LINES?>
    <?end for-each:G_INVOICE?>
    Requiremet: If 'trx_type' is INV i want to print commodity_code as COMMODITY_CODE else null.
    I tried like this. It's didn't work out.
    <?for-each:G_INVOICE?>
    <?trx_number?> <?trx_type?>
    <?for-each:G_LINES?>
    <?LINE_NUMBER?> *<?xdofx:if TRX_TYPE='INV' then COMMODITY_CODE else CF_BID_ITEM end if?>* <?QUANTITY?>
    <?end for-each:G_LINES?>
    <?end for-each:G_INVOICE?>
    Here, actually trx_type is in upper loop, it's not checking the TRX_TYPE='INV' condition, it's always going to else part. So I tried like below to go one level up.
    *<?xdofx:if ../TRX_TYPE='INV' then COMMODITY_CODE else CF_BID_ITEM end if?>*
    Still this is also not working. Is there any solutions, where we can use the upper level group field in line level to check the if condition.
    Any suggetion is appreciated.
    Kindly help.
    Thanks in advance.

    To go one level up from current,
    you have to use ../ELEMENT_NAME Since you are trying to access a field in G_LINES context.
    you have to open the xml and see, how may levels are there from G_LINES to G_INVOICE
    if its 2 level up, then use ../../ELEMENT_NAME and likewise.

  • Error while mapping fact table to LOWEST LEVEL

    Hi
    While Iam mapping my fact table using cwm2_olap_table_map, map_facttbl_levelkey , Iam mentioning it has the lowest level of dimension table , it is throwing error . Will it only work for ET not for LOWEST LEVEL?. Infact Iam not storing the embedded total any where in my fact tables .
    Can anyone help me in mapping the lowest level of dimension to fact table????

    Hi
    Are you sure you are using the correct mapping tools. It sounds as if you have a relational schema which reauires a CWM mapping procedure? To map a relational schema it is best to use OEM which has wizards to guide you through the mapping process.
    CWM2 metadata is used to map 9iR2 Analytical Workspace objects. These typically involve fully summarised variables within the AW.
    Hope this helps
    Keith Laker
    Product Manager
    Oracle Business Intelligence Beans

  • How to return list of lowest level elements in a hierarchy given the node o

    We would like to return a list of the lowest level Elements in a Hierarchy from a given node of the hierarchy.  The level of the node that is given to us is unknown, but regardless, we need the ability to return the lowest level elements.  We are trying to find a non-ABAP solution to our needs and trying to use a BEx query as a source for our APD.
    In query designer we are able to obtain the correct list when using the Hierarchy and Condition with a Leaf value of '1' to return the lowest level. However,  We have come to learn APDs do no support the BEx hierarchies.  When we de-selected the 'Activate Hierarchy' display in the query, the entire structure under the given node is returned.
    Does anybody know of a way to return just the lowest level elements in a hierarchy so we can feed our APD?
    Thanks,
    Andrea

    expac works only with official and unofficial repos, not with the AUR, but it's very nice.
    Adding  '-q' should help, grep to weed out false positives.
    yaourt -Sa $(yaourt -Ssaq pulse)
    works, but
    $ yaourt -Sa $(yaourt -Ssaq chrome)
    resolving dependencies...
    looking for inter-conflicts...
    warning: removing 'chromium' from target list because it conflicts with 'chromium-no-sse2'
    error: unresolvable package conflicts detected
    error: failed to prepare transaction (conflicting dependencies)
    :: chromium-no-sse2 and chromium-scroll-pixelGs are in conflict
    so at least
    $ yaourt -Sa $(yaourt -Ssaq chrome|grep google)
    is needed.
    Edit: Also:
    $ LC_ALL=C TZ=GMT0 diff -Naur /usr/bin/pacsearch /usr/local/bin/pacsearch
    --- /usr/bin/pacsearch 2014-11-21 11:20:37.000000000 +0000
    +++ /usr/local/bin/pacsearch 2014-12-21 08:21:14.758856006 +0000
    @@ -84,7 +84,7 @@
    my %allpkgs = ();
    -my $syncout = `pacman -Ss '@ARGV'`;
    +my $syncout = `pacman -Ssq '@ARGV'`;
    # split each sync search entry into its own array entry
    my @syncpkgs = split(/\n^(?=\w)/m, $syncout);
    # remove the extra \n from the last desc entry
    @@ -110,7 +110,7 @@
    $allpkgs{$pkgfields[1]} = [ @pkgfields ];
    -my $queryout = `pacman -Qs '@ARGV'`;
    +my $queryout = `pacman -Qqs '@ARGV'`;
    # split each querysearch entry into its own array entry
    my @querypkgs = split(/\n^(?=\w)/m, $queryout);
    # remove the extra \n from the last desc entry
    $ /usr/local/bin/pacsearch pulse
    libpulse
    pulseaudio
    libao
    libcanberra-pulse
    libpulse
    paprefs
    pavucontrol
    pulseaudio
    pulseaudio-alsa
    floyd
    libcec
    mate-media-pulseaudio
    mate-settings-daemon-pulseaudio
    ponymix
    projectm-pulseaudio
    Although why not simply use pacman or expac?
    Last edited by karol (2014-12-21 08:26:48)

  • Aggregation at the lowest level in the cube

    Hi guys
    I designed very simple test cube with one dimension (both MOLAP driven).
    The dimension PRODUCT consists of three levels:
    - Group
    - Category
    - Product_detail
    PRODUCT_SRC table to load PRODUCT dimension:
    PR_GROUP_NAME PR_GROUP_ID PR_CATEGORY_NAME PR_CATEGORY_ID PR_DETAIL_NAME PRODUCT_DETAIL_ID
    dairy 1000 yoghurts 1000000 yoghurt_1 1000000000
    dairy 1000 yoghurts 1000000 yoghurt_2 1000000001
    dairy 1000 yoghurts 1000000 yoghurt_3 1000000002
    candy 1001 cookies 1000001 cookies_1 1000000003
    candy 1001 cookies 1000001 cookies_2 1000000004
    candy 1001 cookies 1000001 cookies_3 1000000005
    beverages 1002 juices 1000002 juice_1 1000000006
    beverages 1002 mineral water 1000003 mineral_water_1 1000000007
    beverage 1002 energy drink 1000004 energy_drink_1 1000000008
    The cube SALES has one measure:
    - Value_of_sales (sum aggr)
    SALES_SRC table to load SALES cube:
    VALUE PROD_ID ID
    1236 1000000002 2
    115 1000000006 3
    1697 1000000005 4
    12 1000000004 5
    168 1000000008 6
    1984 1000000005 7
    9684 1000000004 8
    84 1000000002 9
    8 1000000007 10
    498 1000000006 11
    4894 1000000008 12
    4984 1000000004 13
    448 1000000003 14
    4489 1000000004 15
    13 1000000001 16
    879 1000000004 17
    896 1000000006 18
    4646 1000000007 20
    I created the dimension PRODUCT and a mapping which loaded the data into the dimension. It worked perfectly. The hierarchy was created as I expected.
    Then I created cube SALES and a mapping which should load the data into the cube. It is very very simple mapping - there were just only two items on the canvas:
    - SALES_SRC table
    and
    - SALES cube
    and two lines:
    - from SALES_SRC.VALUE to SALES.VALUE_OF_SALES
    - from SALES_SRC.PROD_ID to SALES.PRODUCT_NAME
    Then I deployed everything and ran mapping, which loaded cube. But in my opinion the cube was not populated in a proper way, because it was no aggregation performed at the lowest level of product hierarchy - there was only a value of the first occurence of certain product. I mean:
    In SALES.SRC we have for instance:
    VALUE PROD_ID ID
    1236 1000000002 2
    84 1000000002 9
    For me the the value in the cube should be 1236 + 84 = 1320, but the value in the cube at PRODUCT_DETAIL_LEVEL for yoghurt_3 is only 1236 - first occurence of this product in SALES.SRC.
    Why hasn't been the data aggregated at lowest level of PRODUCT dimension hierarchy - is it the way OWB does such things?
    Should I manually aggregate the data before loading to cube (just to use Aggregator to aggregate the data at lowest level)? If yes - what about incremental loading of data to cube (the old value value is simply replaced by new one and not summed in the cube)
    In data warehouse solutions of other vendors the cube in such situation is loaded as I expected here.
    I really don't know what to do. I do really appreciate any help from you.
    Thank you in advance
    Peter

    Hi David
    Thank you very much.
    Now I'm sure that I have to aggregate facts by myself at the lowest level of hierarchy in a dimension.
    Regards
    Peter

  • Extract values from text in reporting environment

    I need write a query based on a bunch of user supplied IDs. The IDs will be pasted as plain text, one per row, by end user in a memo field in the reporting environment, and I need to do something like this:
    SELECT PHONE_NUMBER FROM TELEPHONE
    WHERE
    ID IN('MEMO_ID1', 'MEMO_ID2',.....)
    Reporting environment does not provide any tools to automatically convert plain text into IDs.
    Is there any way in SQL I can do this?

    In this case you may going for the "words" with something like
    with memos as (
      select 'id1'||chr(10)||'id2'||chr(10)||'id3'||chr(10)||'id4' id from dual
    , telephone as (
      select 'id2' id, '46574' PHONE_NUMBER from dual
    select
      PHONE_NUMBER
    from telephone
    where
    id in (
      select regexp_substr(id, '\w+',1,level) id
      from memos
      connect by
      level <= regexp_count(id,'\w+',1)
    PHONE_NUMBER
    46574But take a look at the docs, http://docs.oracle.com/cd/E11882_01/appdev.112/e25518/adfns_regexp.htm#CHDJGBGG,
    to be sure that \w covers all alpahnumeric characters could be in the id, more important be aware, that all characters not belonging to the character class \w, are treated as separators, as # for example.
    So another way could be going for the separators. Notice that chr(13) is replaced by chr(10) before, in order to cover the mosts common linebreaks.
    with memos as (
      select 'id1'||chr(10)||'id_#2'||chr(13)||chr(10)||'id3'||chr(10)||'id4' id from dual
    , r_memos as (
      select replace (id, chr(13), chr(10)) id from memos
    select regexp_substr(id, '[^'||chr(10)||']+' ,1,level) id
      from r_memos
    connect by level <= regexp_count(id,'['||chr(10)||']+') + 1
    ID
    id1
    id_#2
    id3
    id4regards

  • Multi Layered Drill automatically goes to lowest level after first run

    Hi there,
    I'm using Xcelsius Engage 5.3.0.0.
    I have 3 combo charts each at a different level in drill down.
    Chart1: Faculty Level
    Chart2: Department Level
    Chart3: Discipline Level
    So 1 faculty can contain many departments and one department can contain many disciplines.
    Each graph dynamically appears over the other as the user drills down to level 3. I use "back" buttons using push buttons to clear previous input from the chart drill downs.
    My problem is that the drill down functionality works perfectly the FIRST TIME THROUGH but any time after that, it always drills through to the lowest level from the top automatically without letting me see Chart2.
    For example, if I drill on a faculty into the department chart and then select a department and drill into the discipline level that works fine. I then press back and am returned to the department level chart, click back one more time and am returned to the faculty level again. HOWEVER, once I select a different faculty to drill down on, I'm immediately shipped to the 3rd (discipline level) of that faculty.
    I've noticed that after it's worked properly the first time through, when I'm "backing out" using the push buttons and going back past the level 2 chart, a department is still highlighted as selected (even though all graphs involved are set to no default selection). So when I back out and select a different faculty I think department level chart still highlighted as selected is having an effect and Xcelsius thinks a user is clicking on a department so it ships me right off to the lowest level.
    I've done some googling and others are having the exact same problem I'm having:
    http://www.forumtopics.com/busobj/viewtopic.php?p=797270#797270
    I'd love a work around that doesn't involve the reset button.
    Thanks.

    http://www.forumtopics.com/busobj/viewtopic.php?p=797995
    Another of the same issue.
    Is there a bug fix or where can I submit this to be reviewed?

  • Pass a value from a sub report back to a main report

    This may not be possible but i though i would see if i had any options.
    I have a main report with sales data and a sub report with budget data in the footer. Neither are linked to each other as i do not have a common field.
    I was hoping to bring a value through from the sub report to the main report or vice versa for a calculation. Its just one calc to work out the percent of sales against budget. sales/budget total.
    stuck!
    Any help would be appreciated.

    Thanks for the reply but this has not worked.
    I created a formula field on the main report HEADER @myValue with:
    Whileprintingrecords;
    Shared numbervar myValue:=0;
    Then I created a formula field in the sub report @myValue with:
    Whileprintingrecords;
    Shared numbervar myValue;
    myValue:= {@Budget-Month};
    @budget-month being the field i want to pass through to the main report.
    I placed this formula in the same section as the @budget-month formula field which is in the report footer
    Then i created a formula field @AVG, added it to a new section below the current fields and used the below
    Whileprintingrecords;
    Shared numbervar myValue;
    //calculation using MyValue
    {@myValue}/{@Sales Total}
    I get an error with the @myValue part in this formula "a number or currency amount is required here"
    I did have to change the Shared number from your formula to shared numbervar as number was not accepted. Does that matter?

  • Export data from the R/3 system from a ABAP report to BW system

    Hi Everyone,
    I have requirement to export data from the R/3 system from a ABAP report to BW system.
    Currently we are planning to create a Ztable to put the data into that, but I would like to know , is there a better way to do instead of going for a Ztable.
    Regards,
    Shobana.K

    Hi Shobha,
    In the second option as you mentioned sending the data to BI.
    1. Check when u click on second  option what is the target details that is showing?( Menas suppose if you send the data using Open Hub u will find the options like FF,Otherparty,etcc...).
    2. As you mentioned if you have option to upload the data to Table.Then you can load and u can create the Generic DS.
    Issues & Concern
                1. Need to think how the data will be poplated(Means how are going to maintain Delta info records table level before
                   populating to it)
                 2. whether Ztable should be refreshed before updating R/3 report data to Ztable.
    Based on the concerns verify your scenario.If  everything ok then u can proceed as per u r plan.
    Regards
    Ram.

Maybe you are looking for