VIRTUAL REFERENCE TABLES · PRO FEATURE

SharePoint & OneDrive
as the last mile
for master data.

Your canonical data lives in a database. RTM bridges it to every Excel workbook — automatically, securely, and without a DBA on speed dial.

From any database to every spreadsheet.

RTM doesn't replace your data infrastructure — it completes it. A lightweight export pipeline publishes master data to SharePoint or OneDrive. RTM reads it directly inside Excel.

🗄️
Source Database
Your canonical master data
SQL Server Postgres Oracle SAP BigQuery
⚙️
Export Pipeline
Transforms & publishes JSON
Python dbt ADF Power Automate
☁️
OneDrive / SharePoint
JSON files on your M365 tenant
Document Library Sharing URL Graph API
📋
RTM Add-in
Authenticates via Microsoft 365
Virtual Table Auto-refresh XLOOKUP
📊
Excel Workbook
Always-current master data
Cost Centres Chart of Accounts Product Codes

Five steps. Zero database credentials in Excel.

The wizard guides you from URL to live reference table. No manual copy-paste, no stale exports.

01 / 05
🔌
Choose Your Source
Select OneDrive for personal or team files, or SharePoint Document Library for corporate-managed data. Both use the same Microsoft Graph API under the hood — RTM handles the token.
02 / 05
🔗
Paste a Sharing URL
Right-click your JSON file in OneDrive or SharePoint, copy the sharing link, paste it into RTM. RTM resolves it through Graph API to the file content — no manual item IDs needed. Supports dot-notation data root paths for nested JSON.
03 / 05
🔄
Set Refresh Mode
Auto on open — always pulls the latest file.
Manual — you decide when to refresh.
Pinned snapshot — lock to a dated version for SCD Type 2 audit trails (e.g. cost-centres-2025-01.json).
04 / 05
🔑
Define Row Identity
Pick a primary key column so RTM can match rows across refreshes. Custom columns you add (notes, flags, local enrichment) survive source updates — orphaned rows are preserved rather than lost.
05 / 05
📐
Build Lookup Formulas
Use the built-in Formula Builder to generate XLOOKUP, INDEX-MATCH, or VLOOKUP formulas against your virtual table. RTM tracks every formula — if the sheet is deleted, it restores them on re-publish.
BONUS
Validate User Input
Wire any cell range to a reference table column for drop-down validation. When the source data changes and you refresh, validation lists update automatically — no manual list management.

Publish master data from any database.

Your pipeline extracts from the source DB and writes a versioned JSON file to SharePoint or OneDrive. RTM reads it on demand.

What the pipeline does

The pipeline is thin by design. Its only job is to transform a query result into clean, flat JSON and upload it to the agreed SharePoint path. RTM handles everything from there.

  • Query the source DB (SQL, view, or stored proc)
  • Flatten and type-cast to JSON-serialisable values
  • Write cost-centres.json to SharePoint
  • Optionally write a dated snapshot for SCD Type 2
  • Schedule via cron, Azure Data Factory, or Power Automate

Supported source systems

Anything Python can query. The examples use pyodbc for SQL Server, but the same pattern works for Oracle, PostgreSQL, BigQuery, Snowflake, SAP HANA, REST APIs, and more.

Python Notebook
SQL View
Output JSON
# ── Notebook: export_cost_centres.ipynb ──────────────
import pyodbc, json, datetime
from office365.sharepoint.client_context import ClientContext
from office365.runtime.auth.user_credential import UserCredential

# 1. Query source DB ──────────────────────────────────
conn   = pyodbc.connect("DSN=FinanceDW;Trusted_Connection=yes")
cursor = conn.cursor()
cursor.execute("SELECT * FROM vw_CostCentres_RTM")
cols   = [c[0] for c in cursor.description]
rows   = [dict(zip(cols, row)) for row in cursor.fetchall()]

# 2. Serialise ────────────────────────────────────────
payload = json.dumps(rows, default=str, indent=2)

# 3. Upload to SharePoint ─────────────────────────────
ctx = ClientContext("https://contoso.sharepoint.com/sites/Finance")\
      .with_credentials(UserCredential(SP_USER, SP_PASS))

lib = ctx.web.get_folder_by_server_relative_url(
    "/sites/Finance/MasterData")
lib.upload_file("cost-centres.json", payload.encode()).execute_query()

# 4. Optional: dated snapshot for SCD Type 2 ─────────
today = datetime.date.today().strftime("%Y-%m")
lib.upload_file(f"cost-centres-{today}.json", payload.encode())\
    .execute_query()

print(f"✓ {len(rows)} rows published · snapshot: cost-centres-{today}.json")

Everything you need for governed master data.

Virtual reference tables aren't just read-only windows. They're enrichable, auditable, and formula-integrated.

🔐
Microsoft 365 Auth
RTM authenticates via MSAL — the same sign-in your users already have. No API keys, no shared passwords. Sharing URLs resolve through the Graph API /shares/{encoded}/driveItem/content.
OneDrive + SharePoint
📂
SharePoint Doc Libraries
Connect to any SharePoint document library your account can access. Ideal for IT-managed master data: cost centres, chart of accounts, product codes, legal entities. IT publishes; analysts consume.
PRO / ENTERPRISE
📁
OneDrive File Connector
Point RTM at any JSON file shared via a OneDrive link. Supports personal and business OneDrive. Right-click → Share → Copy Link is all it takes to publish a new data source to any workbook.
PRO / ENTERPRISE
🔄
Flexible Refresh Modes
Auto on open keeps tables current without user action. Manual gives teams control over when changes take effect. Pinned snapshot enables SCD Type 2 — lock a workbook to January's structure even as February is live.
SCD Type 2 ready
Custom Columns
Add your own columns (notes, flags, overrides) on top of any virtual table. Custom data is stored in OfficeRuntime.storage, keyed by primary key — so it survives source refreshes. Orphaned rows are quarantined, not deleted.
PRO / ENTERPRISE
🗂️
Nested JSON Support
RTM auto-detects arrays, {"value":[...]} envelopes, and keyed dictionaries. Use the data root path (dot-notation) to drill into nested structures like response.items.
Auto-detection
🧮
Formula Builder
Generate XLOOKUP, INDEX-MATCH, or VLOOKUP formulas against any virtual table in seconds. RTM tracks every formula — publish the table to a new sheet or restore it in a template and all lookups re-wire automatically.
Formula resilience
✔️
Data Validation
Drive Excel drop-down lists from a virtual table column. When the source refreshes, valid values update across every linked cell. No more stale picklists. No manual list maintenance.
Governed input
💾
Saved Feed Snapshots
Capture the current state of a virtual table as a saved feed — a local snapshot that loads instantly without hitting the remote source. Share workbooks with users who have no network access to the file.
PRO / ENTERPRISE