Oracle Analytics Forum

Welcome to the Oracle Analytics Community: Please complete your User Profile and upload your Profile Picture

Refreshing repository variables on demand

Received Response
50
Views
7
Comments
DeepaliG-Oracle
DeepaliG-Oracle Rank 3 - Community Apprentice

Does anyone know if there's a way to refresh a Repository variable on demand? There is an option to define the refresh frequency, but I couldn't find a way to refresh it manually.

Answers

  • Henry Cabrera
    Henry Cabrera Rank 3 - Community Apprentice
    imagen.png

    Hello,

    In Oracle Analytics Cloud (OAC), the "Reload Files and Metadata" action is the standard administrative operation used to refresh the RPD (repository) in online mode and applies any changes, including updates to repository variables.

  • https://docs.oracle.com/en/cloud/paas/analytics-cloud/acabi/classic-administration-page.html

  • @DeepaliG-Oracle , I do not think we can refresh it manually.

    If it is a static repository variable, it's value is initialized in the Variable dialog.

    The value of the static repository variable persists and doesn't change until an administrator decides to change it. For example, suppose you want to create an expression to group times of day into different day segments. If Prime Time were one of those segments and corresponded to the hours between 5:00 PM and 10:00 PM, you could create a CASE statement like the following:

    CASE WHEN "Hour" >= 17 AND "Hour" < 23 THEN 'Prime Time' WHEN... ELSE...END
    

    If it is a dynamic repository variable, it can be initialized in the same way as static variables, but the values are refreshed by data returned from queries.

    When defining a dynamic repository variable, you create an initialization block or use a preexisting one that contains a SQL query. You also set up a schedule that the Oracle BI Server uses to run the query and periodically refresh the value of the variable. When the value of a dynamic repository variable changes, all cache entries associated with a business model that reference the value of that variable are purged automatically.

    Each query can refresh several variables, one variable for each column in the query. In Oracle BI Server, create a schedule to run the queries.

    Please refer this doc for more details. Hope it helps!

  • DeepaliG-Oracle
    DeepaliG-Oracle Rank 3 - Community Apprentice

    Thanks @Henry Cabrera @SteveF-Oracle @RVohra, for your answers. Let me review and analyze what fits for our use case.

  • @DeepaliG-Oracle feel free to share your analysis here. It will help community in long run. Thanks

  • Mohammed Rafi
    Mohammed Rafi Rank 4 - Community Specialist

    There is no native “Refresh Now” button for Repository Variables in Oracle Analytics.

    Repository variables (especially dynamic ones) are refreshed only through:

    • Initialization Blocks
    • Their configured schedule (refresh frequency)
    • Server restart (for static repo vars)

    They are evaluated and stored at the BI Server level, not at the dashboard/runtime layer.
    So dashboards, prompts, and analyses have zero control over forcing a refresh.

  • Mohammed Rafi
    Mohammed Rafi Rank 4 - Community Specialist

    Use these options given below

    Option 1 — Use a Session Variable Instead (Best for On-Demand Behaviour)

    If you truly need on-demand refresh logic, session variables are much more flexible.

    Why?

    • They refresh at login (or session creation)
    • Can be influenced by user context
    • Can be re-evaluated via new session (logout/login or new connection)

    This is usually the recommended design if the value must reflect near real-time logic.

    Option 2 — Reduce the Initialization Block Cache Time

    In the init block settings, you can:

    • Lower the cache/refresh frequency (e.g., every 5 minutes)
    • This is the closest thing to “near manual refresh”

    But downside:

    • More load on the BI Server
    • Can impact performance if the SQL is heavy

    If my response has answered your question, please mention the thread as Accepted Answer as this will help the community members on the solution