Why embed analytics in VBCS
Switching between an enterprise application and a separate BI tool breaks workflow. Embedding Oracle Analytics Cloud (OAC) reports directly in VBCS means a purchasing manager sees spend analytics on the same page as their PO management screens — no context switching.
Embedding options
iframe embedding: The simplest approach. OAC provides an embed URL for any dashboard or report. Add an <iframe> component in VBCS and set its src to the embed URL. Supports filter parameters via URL query string.
OAC Embedding JavaScript SDK: A more sophisticated option that allows programmatic interaction — filtering dashboards based on VBCS selections, listening for click events in the chart, and customising the embedded UI. Requires loading the OAC embedding SDK in your VBCS application’s index.html.
Setting up iframe embedding
- In OAC, open the report you want to embed → Share → Embed
- Copy the embed URL
- In VBCS, add a web component or use an
oj-modulewith an iframe inside - Set the
srcto the embed URL with CORS origin configured in OAC admin settings
Ensure both VBCS and OAC are on the same Oracle IDCS identity domain — this allows SSO so users aren’t prompted to log in twice.
Passing context filters to OAC
The most useful pattern: VBCS knows the current user’s business unit — pass it as a filter to the OAC report so it shows only relevant data:
var baseUrl = 'https://your-oac.analytics.ocp.oraclecloud.com/ui/dv/embed/...';
var params = '?bu=' + encodeURIComponent($page.variables.selectedBU);
$page.variables.reportUrl = baseUrl + params;
Bind the iframe src to $page.variables.reportUrl.
Synchronising selections
With the OAC Embedding SDK, you can listen for chart clicks and update VBCS page variables. For example, clicking a bar for “Q3 2026” in an OAC chart updates a VBCS date filter and refreshes a detail table. This creates a seamless drill-down experience entirely within the VBCS application.
Performance consideration
OAC reports can take 5-20 seconds to load depending on query complexity. Always show a loading indicator while the iframe is loading, and consider lazy-loading the OAC iframe (load it only when the user navigates to the relevant tab) rather than loading it with the page.