Power BI & Analytical Workspaces
Embed interactive Power BI dashboards in F&O, build analytical workspaces with KPI tiles and aggregate measurements, and configure the entity store.
What are analytical workspaces?
Think of a car dashboard.
You donβt open the bonnet to check your speed β you glance at the dashboard. Analytical workspaces do the same thing for F&O. Instead of running reports and exporting to Excel, the production manager opens their workspace and sees live KPI tiles: units produced today, defect rate, capacity utilisation β all updated automatically.
Behind the scenes, Power BI reads from a special analytics-friendly copy of your data (the entity store), not the live transactional database. So no oneβs slowing down order entry by running dashboards.
Entity store deep dive
The entity store is the data engine behind all analytical reporting in F&O.
ββββββββββββββββββββ Scheduled ββββββββββββββββββββ
β Transactional βββββRefreshββββββββββΆβ Entity Store β
β Database (OLTP) β β (Star Schema) β
β normalised, β β denormalised, β
β write-optimised β β read-optimised β
ββββββββββββββββββββ ββββββββββ¬ββββββββββ
β
ββββββββββββββββββββββΌβββββββββββββββββββ
βΌ βΌ βΌ
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β Power BI β β KPI Tiles β β Analytical β
β Reports β β (workspace) β β Workspaces β
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
Configuring entity store refresh
| Setting | Detail |
|---|---|
| Location | System Administration β Setup β Entity Store |
| Refresh options | Manual (on-demand) or Scheduled (e.g. every 4 hours) |
| Incremental refresh | Only processes changed records β much faster than full refresh |
| Per-measurement | You can set different refresh schedules for different aggregate measurements |
Scenario: Elena configures entity store for PacificForge
Elena sets up the entity store refresh schedule with CTO Gregor:
| Measurement | Refresh Schedule | Reasoning |
|---|---|---|
| Production KPIs | Every 2 hours | Production managers need near-current data |
| Financial summaries | Every 6 hours | Daily financial reviews, not real-time |
| Sales pipeline | Every 4 hours | Sales team checks twice daily |
| Inventory counts | Every 1 hour | Warehouse needs fresh stock levels |
βWe donβt need real-time,β Gregor says. βHourly for inventory and bi-hourly for production is enough.β
Aggregate measurements in the AOT
Aggregate measurements are defined in the Application Object Tree (AOT) and deployed to the entity store.
| Component | Purpose | Example |
|---|---|---|
| Measurement | The top-level container | ProdOutputMeasurement |
| Measure group | A fact table with its measures | ProdOutput (maps to production output table) |
| Measures | Calculations on fact data | SUM(QtyGood), COUNT(ProdId), AVG(CostAmount) |
| Dimensions | Grouping/slicing axes | Date, Warehouse, Product Category, Production Pool |
| Attributes | Descriptive fields on dimensions | Warehouse name, category description |
Vik builds an aggregate measurement
Vik Kapoor at Axion Dynamics creates an aggregate measurement for production output:
Aggregate Measurement: AxProductionOutput
βββ Measure Group: ProdRouteTransOutput
β βββ Measure: TotalGoodQty = SUM(QtyGood)
β βββ Measure: TotalErrorQty = SUM(QtyError)
β βββ Measure: TotalOrders = COUNT(ProdId)
β βββ Measure: AvgCostPerUnit = AVG(CostAmount)
βββ Dimension: Date (SchedDate)
βββ Dimension: Warehouse (InventLocationId)
βββ Dimension: ProductCategory (ItemGroupId)
βββ Dimension: Worker (ResponsibleWorker)Once deployed and the entity store is refreshed, Power BI can visualise these measures sliced by any dimension combination.
Embedding Power BI in F&O
The two embedding patterns
| Aspect | Analytical Workspace (Embedded) | Power BI Tab (Linked) |
|---|---|---|
| Integration type | Tightly embedded in workspace form | Power BI report linked via configuration |
| Data source | Entity store (local star schema) | Any Power BI dataset (cloud) |
| Interaction | Filter, drill-through, KPI tiles in workspace | Full Power BI experience in a tab |
| Security | Inherits F&O workspace security | Power BI row-level security configured separately |
| Development | Power BI Desktop β .pbix deployed with AOT | Power BI service β linked by URL/ID |
Building an analytical workspace form
| Step | Action |
|---|---|
| 1 | Create a new Form with pattern AnalyticalWorkspace |
| 2 | Add the Power BI report resource (.pbix) to the AOT |
| 3 | Reference the report in the formβs PowerBIReportControl |
| 4 | Add KPI tiles β each tile maps to an aggregate measurement |
| 5 | Configure drill-through β clicking a KPI opens a detail page |
| 6 | Create a menu item and secure with a privilege |
| 7 | Refresh the entity store so data is available |
Exam tip: AnalyticalWorkspace form pattern
The exam may ask about workspace form patterns:
- The form must use the
AnalyticalWorkspacepattern (notOperationalWorkspace) - The pattern requires specific control structures: header, KPI section, Power BI section
- KPI tiles are bound to aggregate measurements β they donβt query live data
- The form pattern validates at compile time β missing required sections cause a build error
KPI tiles and drill-through
KPI tiles
KPI tiles are the cards at the top of an analytical workspace:
| Property | Purpose |
|---|---|
| Value | The aggregate measurement value (e.g. SUM(QtyGood)) |
| Goal | Optional target value for comparison |
| Status | Green/Yellow/Red based on value vs goal threshold |
| Trend | Arrow showing direction compared to previous period |
| Drill-through | Menu item that opens when the tile is clicked |
Drill-through design
ββββββββββββββββββββββββββββββββββββ
β Analytical Workspace β
β βββββββββ βββββββββ βββββββββ β
β β12,450 β β 2.1% β β $1.2M β β β KPI tiles
β βUnits β βDefect β β Cost β β
β βββββ¬ββββ βββββββββ βββββββββ β
β β β
β βββββΌββββββββββββββββββββββββ β
β β Power BI Report β β β Embedded visuals
β β (charts, tables) β β
β βββββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββββββββ
β Click KPI tile
βΌ
ββββββββββββββββββββββββββββββββββββ
β Detail Page (filtered) β
ββββββββββββββββββββββββββββββββββββ
Scenario: Elena's production workspace
Elena builds PacificForgeβs production analytical workspace:
| KPI Tile | Measurement | Drill-through |
|---|---|---|
| Units Produced | SUM(QtyGood) today | Production order list (filtered to today) |
| Defect Rate | SUM(QtyError) / SUM(QtyTotal) * 100 | Quality order list with defect details |
| Capacity Utilisation | SUM(ActualHours) / SUM(PlannedHours) * 100 | Resource utilisation breakdown |
| On-Time Delivery | COUNT(OnTime) / COUNT(Total) * 100 | Late order list with delay reasons |
The production manager sees four tiles, glances at the trends, and clicks βDefect Rateβ to investigate a spike β all without leaving F&O.
Power BI Desktop development workflow
| Step | Detail |
|---|---|
| 1. Connect | Power BI Desktop β Get Data β Entity Store (or OData for development) |
| 2. Model | Build relationships between entity store tables |
| 3. Visualise | Create charts, tables, KPI cards for the workspace viewport |
| 4. Filter context | Add filters responding to F&O workspace context (company, user) |
| 5. Export .pbix | Save as .pbix file |
| 6. Deploy | Add .pbix as AOT resource β reference in workspace form |
Exam tip: Power BI filter context from F&O
The F&O workspace can pass filter context to the embedded Power BI report:
- Current legal entity β report auto-filters to the userβs current company
- Date range β workspace can pass a default date range
- Security context β if the user only has access to certain warehouses, the report respects that
Configured in the PowerBIReportControl properties on the workspace form.
Security for analytical workspaces
| Layer | Control |
|---|---|
| Workspace access | Menu item privilege β users must have the role granting access |
| Data access | Entity store contains cross-company data; workspace forms filter by current legal entity. Power BI RLS can add row-level filtering |
| Power BI RLS | For linked (cloud) reports, configure row-level security in Power BI service |
| Aggregate level | Workspaces show aggregate data β individual record security is less granular |
Sophie asks about data leakage
Sophie Chen asks: βIf the entity store has all companiesβ data, doesnβt a production manager see other companiesβ numbers?β
Elena explains: βTwo safeguards. First, the workspace form passes the current legal entity as a filter. Second, we can configure Power BI RLS for additional row-level security.β
βThe entity store contains cross-company data for efficiency, but the presentation layer always filters,β Elena adds.
Elena notices that the production KPI tiles show yesterday's numbers, not today's. What is the most likely cause?
Which form pattern must Elena use when building an analytical workspace that embeds Power BI and KPI tiles?
A production manager can see all companies' data in the analytical workspace, but should only see their own legal entity. What should Elena configure?
Next up: Excel & Electronic Reporting β Edit in Excel, ER format designer, and generating regulatory documents.