Purging cache for each Business Model / Fact Table Source

Morning all,
I try to understand how can i schedule purging obiee cache.
. OBIEE is used with Essbase database
. one database for Australia, one for France and one for USA
I want to purge cache for each region after daily loading process (scheduled at different time) but Call SAPurgeAllCache() seems too radical
Can you explain me steps to use to purge Business Model cache ?
Currently I have to connect to Administration => Manage Cache => Clear Cache by Business Model and is not automatic !!
Thanks for your help

hi Saichand,
I am not sure that could work with essbase physical mapping.
OBIEE documentation doesn't translate this information for Essbase database :
.DBNames
.CatalogName
.Schema
.table
create table UET (
UpdateType Integer not null,
UpdateTime date DEFAULT SYSDATE not null,
DBName char(40) null,
CatalogName varchar(40) null,
SchemaName varchar(40) null,
TableName varchar(40) not null,
Other varchar(80) DEFAULT NULL
In step 4 :
I can't add ETL code because loading process works on essbase side and not in dataware environnement...
Thanks

Similar Messages

  • Business Model - Logical Table Source

    Can someone give me clarification on exactly when you would follow scenario 1 when modelling a logical table and exactly when you would follow scenario 2, and what the key difference in behaviour between the two is. It would help if someone could illustrate with sql table joins equivalent.
    Scenario 1
    You drag a second physical table's column onto the logical table. This causes an additional field to appear in that logical tables list of columns sourced from a different table to the original and causes a second table to appear under the original table in the source folder.
    Scenario 2
    You drag a second physical table onto the existing logical table source of a logical table. The physical table source appears on the surface the same as before, but when you examine its properties you see that the second table has been joined to it.
    Thanks for your input,
    Robert.

    Hi Robert,
    This is quite an interesting question, I would say :). As per me, here is why
    As you know already, BI Server generates intelligent queries based on our logical mappings in the BMM layer and there is only one primary goal for our BI Server Engine, generating an optimistic physical query.
    Scenario 1 : Two logical sources created.
    Two logical sources mean, there are two different ways the logical table(or same logical column) could be arrived at.
    Ex 1:
    You have a model, where you have Sales numbers and 4 levels of product hierarchy (lowest P4 -> P3-> P2-> P1) with sales at productlevel4.
    And, You have created aggregated tables for sales numbers at level2 of product dimension also.
    So, in this case the same product dimension would have two logical table sources, just because Level 1 Product can be derived from Aggregated product dimension source at level2 or detailed product dimension source at level4. And, it is the BI Server which would determine from where it has to pick (Of course there are some other criteria to control it).
    Ex2:
    Here even sales numbers are available at different granularities viz product level2, product level4. So for sales logical fact, we end up creating two sources just because there are two completely different sources with different granularity.
    Scenario 2 : Two columns created, but only one logical source with a join in it.
    Say, in the above example you have a snowflake product manager dimension to the product dimension. So, when you pull Product Manager into your product dimension (collapsing snowflakes), you end up creating just one logical table source with an inner join of ProductManager dimension and product dimension because product manager could be arrived only by going through products.
    So, if you have report on sales by product manager, you would see query with an inner join of sales fact to product and inner join(this is based on the join type you set in this logical source) of product to product manager.
    Hope I was clear enough and this helps.
    Thank you,
    Dhar

  • Purge Cache for a Specific Business Model

    Hi everyone,
    I have a obiee(11) report purging all cache entries (as Call SAPurgeAllCache()). Is there a method to purge cache partially for specific business model entries and not to purge all the cache ?
    Thanks ...

    Hi,
    To selectively purge, you could use SAPurgeCacheByQuery, SAPurgeCacheByTable or SAPurgeCacheByDatabase. Alternatively, Event Polling Tables may help. See http://docs.oracle.com/cd/E23943_01/bi.1111/e10541/querycaching.htm#i1005542 and http://docs.oracle.com/cd/E23943_01/bi.1111/e10541/querycaching.htm#i1010207.
    Also see the section on BI Server caching here : http://www.rittmanmead.com/2013/03/optimising-obiee-performance-tuning/
    SET VARIABLE DISABLE_CACHE_HIT = 1
    It will purge the cache for that report.This is just wrong. DISABLE_CACHE_HIT only DISABLES cache use for the query execution, it does not PURGE it
    You may go for this DISABLE_CACHE_SEED for more info http://docs.oracle.com/cd/E23549_01/bi.1111/e10540/variables.htm
    What's the point of DISABLING use of the cache, if the OP wants to use the cache?
    set the cache persistence time for the related physical tables. so based on the time interval u set, at that time specific tables only will get cache purged.This is only the time from which the entry got loaded into the cache, so is not a good way to manage the purging of the cache usually - because it has no relation to when the data got loaded to the database

  • Logical level for logical fact table sources

    it is clear that for fact aggregates, we should use the Content tab of the Logical Table Source dialog to assign the correct logical level to each dimension.
    question is : is it mandatory to assign even for non-aggregates fact tables the logical level for each dimension (which normally should be set to the most detailed level of each dimension) ? is it any known issue if "logical levels"in content tab are not set ?
    the reason I'm asking this is a strange bug I have (I'm not going to discuss it here) and then only workaround seems to be NOT setting the logical levels (on content tab) for logical fact table sources.
    thank you !

    If levels are not set: By default levels are considered as lowest level
    It should not matter if you set or not
    Generally we set for facts explicitly when we are using Aggregate tables.
    Your current issue might be a case by case; I would suggest to check implicit fact, any table mapped to the source to force a join etc
    Mark if helps
    Let me know how it helps
    Edited by: Srini VEERAVALLI on Feb 5, 2013 8:33 AM
    Any updates on this?+_
    Edited by: Srini VEERAVALLI on Feb 14, 2013 9:09 AM

  • How to call webservice for each record in a table using ODI

    Hi
    I am new to ODI and Webservice. I want to invoke a scenario in ODI using web service. I hava a weblogic application server with axis 2 deployed.
    But I want call webservice for each record in a table
    For eg: "EMP" table have 50 records, for each record web service should invoke
    Can any one help me on it.
    Thanks,
    phani
    Edited by: user12774166 on Jun 6, 2010 11:16 PM

    If your goal is "call" a web service, Jason's Straub's [flex-ws-api|https://flex-ws-api.samplecode.oracle.com/] is by far the best I've seen. You might want read more about it on [his blog|http://jastraub.blogspot.com/search?q=+flex_ws_api+].
    Tyler Muth
    http://tylermuth.wordpress.com
    [Applied Oracle Security: Developing Secure Database and Middleware Environments|http://sn.im/aos.book]

  • Depreciation run for each business area

    Hi all,
    In case all business areas are belong to 1 company code.
    So how to run depreciation for each business area separately?
    I mean business area A can run depreciation for itself, and not affect other business areas in the same company code.
    Any suggestion would be highly appreciate!
    Thanks in advance any help!
    HuyenTT

    no, this is not possible, as the depreciation run needs to be executed for the whole company code.
    Blaz

  • I need a query that selects the amount of records for each day in a table.

    I need a query that selects the amount of records for each
    day in a table.
    Eg the result would be:
    date 1 14
    date 2 3
    etc
    Any ideas?

    sorted:
    SELECT count([commentID]),convert(varchar, dateAdded, 112)
    FROM COMMENTSgroup by convert(varchar, dateAdded,
    112)

  • OBIEE 10g repository - Business model - logical table to physical table, column mapping is empty

    Hi, I am really new to OBIEE 10g.
    I already set up a SQL Server 2005 database in Physical and import a view vw_Dim_retail_branch.
    The view has 3 columns: branch_id, branch_code, branch_desc.
    Now I want to set up the Business model to map this physical table (view).
    I created a new Business model
    Added new logical table Dim_retail_branch
    In the sources, added the vw_Dim_retail_branch as source table.
    But in the Logical table source window,  column mapping tab, it's blank. I thought it should be able to identify all the columns from vw_Dim_retail_branch, but not. The show mapped columns is ticked.
    What should I do here? Manually type each column?

    HI,
    Just you can drag and drop the columns from physical layer to BMM layer.
    Select the 3 columns and drag and drop it to the created logical column in BMM layer.
    for more reference : http:\\mkashu.blogspot.com
    Regards,
    VG

  • Get frequent data for each column of a table

    What is the best way to get the most frequent data in each column of a table.
    we have around 25 tables and each table has around 20 columns , so rather than writing group by for each column of table , is there any easy way to find this?
    example we have table
    Column A       Column B         Column C
    Apple             Monday             Red
    orange            Tuesday            Green
    Apple              Monday            Red
    Lemon            Wednesday       Green
    Apple               Thursday         Red
    in this table, column A's frequnt data is Apple , column B's frequent data is Monday , Column C's frequnt data is Red
    Apple 3          Monday 2                  Red 3
    Orange 2        Tuesday 1                 Green 2
    Lemon 1          Wednesday 1         
                          Thursday 1
    Group by kind of query will give this result, but with 20 tables each having 20 - 30 columns if we need similar kind of result ..  is there any way to get this data.

    Hi,
    GROUP BY (using aggregate functions) is the best way to do what you described.
    PIVOT and UNPIVOT are probably what you'd want in this case.  The phrase "GROUP BY" may not actually appear in your code, but you'll essentially be doing a GROUP BY.
    Analytic functions (rather than aggregate functions) can do the job, too, but they'll be less efficient.  Analytic functions get you results about the groups, without losing each row's identify, but in this case, losing each row's identity is eactly what you want to do.  You only want 'Apple' to appear 1 time, not 3 times.
    The fact that you need to do the same query on 20 different tables suggests that there's something wrong with your table design.  Wouldn't it be better to have 1 big table, with a new column that has 20 unique values instead?
    I hope this answers your question.
    If not, please post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) from all tables involved, so that the people who want to help you can re-create the problem and test their ideas.
    Also post the results you want from that data, and an explanation of how you get those results from that data, with specific examples.
    Simplify the problem as much as possible.  For example, instead of posting a problem with 20 tables, each having 25 columns, post a similar problem involving, say, 2 tables, each with 3 columns.
    Always say which version of Oracle you're using (for example, 11.2.0.2.0).
    See the forum FAQ: https://forums.oracle.com/message/9362002

  • Recording a last updated time for each record in a table

    hi
    i have a table with 5 columns. and the table has 100 rows of data.
    i need to add a sixth column and this column should contain the last updated time of that particular row.
    i am allowed to use triggers.
    for example, if the 55th row undergoes a change, the 6th column's value for the 55th row should update itself with that particular time.
    can any one of you come up with an optimized solution for this please ???
    thanx a million in advance and best regards,
    novice DBA
    :)

    Hi,
    Here's an example:
    CREATE OR REPLACE TRIGGER table_x_biu
    BEFORE INSERT OR UPDATE ON table_x
    FOR EACH ROW
    BEGIN
         :NEW.modified_dt := SYSDATE;
    END     table_x_biu
    SHOW ERRORSwhere table_x is your table name, and modified_dt is the DATE column to be populated.
    You won't have to specify modified_dt in any INSERT or UPDATE statements. In fact, if you do, the value you give will be ignored, and the trigger will always substitute SYSDATE.
    WARNING: if you do get an error message, the line number reported will usually be relative to the first DECLARE or BEGIN statement in the trigger. For example, if I had mis-spelled SYSDATE in the example above, the error message would say there was a problem in line 2, not line 5.

  • Query to find all workbooks/worksheets for each business area

    Hi Experts,
    I need to find all workbooks/worksheets in each business area. Collect 'Query Statistics is checked for all the users'
    Also are there any documents or information available of the description of the discoverer metadata database tables which will help in writing queries
    thanks and regards,
    John

    There is no workbook/worksheet linkage to a business area. So you cannot search for a business area and find all the workbooks "attached" to that business area. The attachment of workbooks is at the folder level. It is actually possible, if you are sharing folders among business areas, to create a workbook with data from 2 or more business areas. I have tested that and it is indeed possible. In Discoverer Administrator you can check on folder dependencies to see what workbooks use the folder. Though in my version of Discoverer, there is a problem with Discoverer Plus, such that the workbook save in Plus is not creating this dependency information like it should. At least I have not found any way to take a business area and determine what workbooks would fall under it. Maybe someone else has found a way.
    John Dickey

  • Can I plot 2 locations at the same time for each record in a table

    I'm trying to plot 2 Locations (2 points on a Power View Map) at the same time for each record/project in a table
    I can plot 1 location for each project of course with no problem
    but I'm trying to show the Begin Point and the
    End Point for each project at the same time
    Is this even possible?

    First of all THANKS this worked!
    But now I stumbled on another issue. So I actually have 3 tables (and I've adopted them to the file you sent)
    Table 1 => TripData
    Trip
    LongLat
    Location
    Type
    TypeCode
    Size
    NW Tour
    47.568077, -122.320800
    Seattle, WA
    Begin
    0
    1
    NW Tour
    47.035608,   -122.884812
    Olympia,   WA
    End
    1
    1
    Cali Trip
    37.808848, -122.412580
    San Francisco, CA
    Begin
    0
    1
    Cali Trip
    32.682611, -117.178348
    San Diego, CA
    End
    1
    1
    Table 2 =>
    TripInfo
    Trip
    OneLongLat
    NTP
    NW Tour
    47.568077, -122.320800
    1/1/2015
    Cali Trip
    37.808848, -122.412580
    1/5/2015
    Table 3 =>
    ALLTrips
    Trip
    Stop
    Owner
    NW Tour
    1
    Owner1
    NW Tour
    2
    Owner2
    NW Tour
    3
    Owner3
    NW Tour
    4
    Owner4
    NW Tour
    5
    Owner5
    Cali Trip
    1
    Owner6
    Cali Trip
    2
    Owner7
    Cali Trip
    3
    Owner8
    Cali Trip
    4
    Owner9
    Cali Trip
    5
    Owner10
    Cali Trip
    6
    Owner11
    This is how the Diagram View looks like in PowerPivot
    Trip Data => Trip Info <= ALLTrips
    Since I don't know how to post pictures
    The MAP FIELDS are as follows
    SIZE - Count of Stop(s)
    LOCATIONS - OneLongLat followed by
    LongLat (drill down feature)
    COLOR - Trip
    The problem now happens with the drill down feature
    You can either plot OneLongLat which is the general location for each trip
    Or LongLat of each trip which shows the begin and end points
    But you can't use the drill down feature???
    If instead of OneLongLat you use a
    State Column it actually works!!!
    I wonder if it has to do with the fact that both locations used for the drill down are Long/Lat numbers???
    Any suggestions???
    And again Thanks for the response!

  • For each row of a table call a pl/sql function

    Hi,
    i have a search form in adf like this:
    parameter1:___
    parameter2:____
    buttonSearch
    Table with results
    field1 field2 field3
    row1 ------ --------- -------
    row2 ------ --------- -------
    row3 ------ --------- -------
    The user inputs the parameters 1 and 2 then press buttonSearch and the query execute and returns rows 1 to 3.
    What i need is for each row call pl/sql function and passed the parameter 1 and 2 and field 1 to 3 (plsql function recives 5 parameters (parameter1, parameter2, field1 , field2 and field3) )
    my buttonSearch call a java class that execute ExecuteWithParamters method.
    I create the call to my plsql function on Application module class and then export as a java interface.
    So i have the function to use in the viewcontroller layer, but i don't know where to use it, and how to pass the paramters: the parameter 1 and 2 that user inputs and the row fields.....
    any ideas....
    thanks!!

    Hi,
    for this you need to call the PLSQL function upon table rendering, which means that you need a field in the table referencing a managed bean. In the managed bean you can use #{row} and resolve it using a ValueExpression. #{row} gives you access to the current rendered row (this is why you need to do it when the table renders) and thus allows you to call getAttribute(name) to get the values of field 1 - 3. The search field value you should get through the bindings reference (assuming the search form uses ADF). Then you create an operation binding for the executeWithParameters and call operationBindingName.getParamsMap().put(argname, argvalue); on it.
    Frank
    Ps.: I am concerned about the performance you get and wonder if it isn't possible to create a transient attribute that executes the function and displays the results. As I understand, the search parameters are only to filter the result set, which you still can do

  • Different values in a list box for each row of the table control...

    Dear Experts,
    Is it possible to populate different values for each row in a listbox inside a table control ?
    Example,
    Row 1 in the the table contains A, B & C
    Row 2 in the same table contains C, D & E
    If yes, How?
    yes i am using
      call function 'VRM_SET_VALUES'
        exporting
          id     = i_name
          values = i_list.
    Thank you .
    Message was edited by:
            Kokwei Wong
    Message was edited by:
            Kokwei Wong

    Hi Wong,
    this is code example for listbox
    TYPE-POOLS vrm .
    DATA: lt_vrm_values TYPE TABLE OF vrm_value.
    DATA: wa_vrm_values TYPE vrm_value.
    PARAMETER p_list AS LISTBOX VISIBLE LENGTH 10.
    INITIALIZATION.
      wa_vrm_values-key = 'Key1'.
      wa_vrm_values-text = 'Value1'.
      APPEND wa_vrm_values TO lt_vrm_values.
      wa_vrm_values-key = 'Key2'.
      wa_vrm_values-text = 'Value2'.
      APPEND wa_vrm_values TO lt_vrm_values.
      wa_vrm_values-key = 'Key3'.
      wa_vrm_values-text = 'Value3'.
      APPEND wa_vrm_values TO lt_vrm_values.
    AT SELECTION-SCREEN OUTPUT.
      CALL FUNCTION 'VRM_SET_VALUES'
           EXPORTING
                id              = 'P_LIST'
                values          = lt_vrm_values
           EXCEPTIONS
                id_illegal_name = 1
                OTHERS          = 2.
      IF sy-subrc  0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    To fill it with data from DB, just do select in INITIALIZATION and put that values with same alghoritmus.
    Manas M.
    P.S.: This is very easy question, you should use search ...

  • Select count(*) for each row of a table

    Hello All,
    Following query gives a statistics for each user (how many items he owns, home many tickets authored, how many objects he is subscribed to etc...)
    select auser.userid,
    (select count(*) from item where owner like '%' || auser.id || '%') ITEM_OWNER_CNT,
    (select count(*) from tkt where originator = auser.id) TKT_ORIGINATE_CNT,
    (select count(*) from tkt where assigned_to = auser.id) TKT_QA_CNT,
    (select count(*) from tkt where create_user = auser.id) TKT_AUTHOR_CNT,
    (select count(*) from subscriptions where subscriber_id = auser.id) SUBSCRIPTION_CNT
    from
    user auser
    I was not happy with the performance of this query, so I tried the same using group by. The performance was even worse.
    Is there any other option for me to try? Please advice.
    Thanks,
    Sathish

    Hi, Sathish,
    As SBH said, a lot depends on your data. Please post some sample data (CREATE TABLE adn INSERT statemetns) for all tables, and the results you want from that data. Describe and give examples of any relationships that are not one-to-one..
    You probably want to do joings, like SBH suggested, rather than scalar sub-queries.
    The connection between the auser and item tables
    (select count(*) from item where owner like '%' || auser.id || '%') ITEM_OWNER_CNT,is very suspicious. Perhaps the item table is poorly designed, and the query would be faster if that table were changed. Is changing the design of the item table an option?
    You should be able to get all the information from the tkt table in one pass. It looks like you need to unpivot the data, so instead of one row per ticket (with 3 different people connected to it), there are 3 rows per ticket, each with only 1 person referenced. This is not necessarily a bad table design. Unpivoting, even more than most other things, depends on your database version, so you'll have to tell what version of Oracle you're using.

Maybe you are looking for