Oracle Retail18 min readBy Priyanshu Pandey

The Foundation Data Layer (FDL) in Oracle RMS: Extract Types, Downstream Consumers & ODI Integration

A comprehensive guide to the RMS Foundation Data Layer (FDL). Learn how FDL extracts transform OLTP data into flat files for downstream systems, the difference between full and delta extracts, FDL_ITEM and FDL_ITEM_LOC table schemas, ODI integration patterns, and BDI in cloud deployments.

Phase 8 · Integration & Batches

The systematic pipeline that extracts RMS master data and makes it available to every downstream system in the retail ecosystem.

18 min read📅May 27, 2026✍️Priyanshu Pandey📚Oracle RMS Series
THE DATA PIPELINE

What is the Foundation Data Layer?

The Foundation Data Layer (FDL) is RMS's systematic mechanism for extracting master data and making it available to downstream systems. While the RIB handles real-time message-based integration, the FDL handles bulk batch-based data feeds.

Think of the FDL as the "data export engine" of RMS. Every night, FDL programs extract items, locations, suppliers, hierarchies, and inventory data from RMS tables, flatten them into standardized formats, and deposit them for downstream consumption.

FULL VS DELTA

Extract Types: Full vs. Delta

FDL supports two extraction strategies:

Full Extract

A full extract dumps the complete contents of the source entity. Every row in the source table is included regardless of when it was last modified.

When to use:

  • Initial data load for a new downstream system
  • Data warehouse rebuild after a failed ETL
  • Periodic data reconciliation (monthly full refresh)

Trade-off: Full extracts on large tables (ITEM_MASTER: 5M rows, ITEM_LOC_SOH: 500M rows) are extremely resource-intensive and time-consuming.

Delta Extract

A delta extract includes only rows that have been created, modified, or deleted since the last extraction run. RMS tracks changes using LAST_UPDATE_DATETIME columns on most tables.

When to use:

  • Nightly incremental feeds to the data warehouse
  • Daily updates to planning systems (RPAS)
  • Regular synchronization with third-party systems

Trade-off: Delta extracts are fast (typically 1-5% of full volume) but require accurate LAST_UPDATE_DATETIME values. If a batch job updates rows without setting this column, those changes are invisible to delta extracts.

Extraction Logic

Delta Extract Logic (Simplified)
SQL
-- FDL delta extraction pattern
-- Extract items modified since last run
SELECT 
    im.item,
    im.item_desc,
    im.dept,
    im.class,
    im.subclass,
    im.status,
    im.item_level,
    im.tran_level,
    im.create_datetime,
    im.last_update_datetime
FROM 
    item_master im
WHERE 
    im.last_update_datetime > (
        SELECT last_extract_datetime 
        FROM   fdl_control 
        WHERE  entity_name = 'ITEM'
    );
    
-- After successful extraction, update the control table
UPDATE fdl_control 
SET    last_extract_datetime = SYSDATE,
       last_extract_count = :rows_extracted
WHERE  entity_name = 'ITEM';

COMMIT;
ENTITY CATALOG

FDL Entity Catalog

FDL extracts cover the major RMS data entities:

EntitySource TablesTypical VolumeFrequency
ItemITEM_MASTER, ITEM_SUPP_COUNTRY5M rows (full) / 10K (delta)Nightly delta
Item-LocationITEM_LOC, ITEM_LOC_SOH500M rows (full) / 500K (delta)Nightly delta
LocationSTORE, WH, COMPHEAD10K rowsWeekly full
SupplierSUPS, ADDR50K rowsWeekly full
Merchandise HierarchyDEPS, CLASS, SUBCLASS5K rowsWeekly full
Organizational HierarchyCOMPHEAD, CHAIN, AREA, REGION, DISTRICT500 rowsMonthly full
PriceITEM_LOC (unit_retail)500M rows (full) / 100K (delta)Nightly delta
Inventory PositionITEM_LOC_SOH500M rows (full) / 1M (delta)Nightly delta
Purchase OrdersORDHEAD, ORDSKU200K (open POs)Nightly delta
STAGING TABLES

FDL Staging Tables

Extracted data is loaded into dedicated FDL staging tables that flatten the normalized RMS structure:

Key FDL Staging Tables
ColumnTypeDescription
FDL_ITEMPK
Flattened Item Data

A denormalized view of item data combining ITEM_MASTER, ITEM_SUPP_COUNTRY, and UDA attributes into a single wide row. Contains item, description, hierarchy (dept/class/subclass), status, diff values, primary supplier, primary country, and UDA values.

FDL_ITEM_LOCPK
Item-Location Data

Combines ITEM_LOC and ITEM_LOC_SOH into a single row per item/location. Contains ranging status, current retail, SOH, on-order, in-transit, replenishment parameters, and source warehouse.

FDL_SUPPLIER
Supplier Data

Flattened supplier data including name, addresses, contacts, terms, and EDI capabilities.

FDL_CONTROL
Extract Control

Control table tracking last extraction datetime, row counts, and status for each FDL entity. Used by delta extracts to determine the extraction window.

WHO CONSUMES THIS

Downstream Consumer Mapping

Consumer SystemFDL Entities UsedPurpose
Retail Insights (RI)Items, Item-Loc, Prices, Inventory, POsPopulates the RI data warehouse for analytics
RPAS (Planning)Items, Item-Loc, Inventory, Sales HistoryFeeds demand forecasting and MFP
AllocationItems, Item-Loc, Inventory, Store GradesDrives allocation quantity calculations
Xstore/XcenterItems, Prices, PromotionsDistributes product data to POS registers
Third-Party WMSItems, POs, InventoryEnables warehouse management integration
E-Commerce PlatformItems, Prices, InventoryProduct catalog and availability for web stores
Data Lake / AnalyticsAll entitiesEnterprise-wide analytics and reporting
ODI INTEGRATION

ODI Integration Patterns

In on-premise deployments, Oracle Data Integrator (ODI) is the primary tool for orchestrating FDL data flows:

  1. ODI Interface: Defines the source (FDL staging tables), transformation logic, and target (data warehouse tables)
  2. Knowledge Modules: ODI's pluggable components that generate optimized SQL for extract, load, and transformation
  3. Load Plans: Orchestrate the execution sequence (extract items before item-locations, because of dependencies)
  4. Error Handling: ODI captures rejected rows in error tables for review and reprocessing

ODI Integration Pattern

RMS Database                 ODI Server                Target System
┌──────────────┐     ┌──────────────────────┐    ┌──────────────┐
│ FDL Staging  │────▶│ ODI Interface:       │───▶│ RI Data      │
│ Tables       │     │                      │    │ Warehouse    │
│              │     │ 1. Extract from FDL  │    │              │
│ FDL_ITEM     │     │ 2. Transform         │    │ W_PRODUCT_D  │
│ FDL_ITEM_LOC │     │    (cleanse, conform)│    │ W_RTL_INV_F  │
│ FDL_SUPPLIER │     │ 3. Load to target    │    │              │
└──────────────┘     └──────────────────────┘    └──────────────┘
CLOUD

BDI in Cloud Deployments

In Oracle Retail Cloud (v19+), the FDL concept evolves into BDI (Bulk Data Integration):

  • REST-Based Extraction: Instead of direct database queries against FDL tables, BDI exposes REST API endpoints for data extraction
  • Cloud Object Storage: Extracted data is deposited in Oracle Cloud Object Storage buckets rather than on-premise file systems
  • Managed Scheduling: BDI extraction schedules are managed through POM, not external schedulers
  • Pre-Built Connectors: BDI ships with pre-built connectors for all major downstream systems
BEST PRACTICES

Best Practices

Important Gotchas

  • !
    Always validate delta extracts against periodic full extracts. If the delta is consistently missing changes (because LAST_UPDATE_DATETIME is not being set by a custom batch), the downstream system's data will drift from RMS truth.
  • !
    Schedule FDL extracts AFTER the nightly RMS batch completes. If you extract during the batch window, you may capture partial data (some items updated, others not yet processed).
  • !
    Monitor FDL_CONTROL for anomalies. If a delta extract returns 0 rows for ITEM on a night when 500 items were modified, the extraction logic has a bug.
  • !
    FDL staging tables should be truncated after successful downstream consumption. Allowing them to grow indefinitely wastes database space and slows extraction queries.

Key Takeaways

  • The FDL is RMS's bulk data extraction pipeline, providing master data to downstream systems like RI, RPAS, Allocation, and Xstore.
  • Full extracts dump complete datasets (resource-intensive); delta extracts capture only changes since the last run (efficient but depends on accurate timestamps).
  • FDL staging tables (FDL_ITEM, FDL_ITEM_LOC) denormalize RMS's normalized schema into consumer-friendly flat structures.
  • ODI orchestrates FDL data flows in on-premise deployments; BDI replaces ODI in cloud (v19+) deployments with REST-based extraction.
  • Always schedule FDL extractions after the nightly batch window and validate delta extract completeness against periodic full refreshes.
RetailCoder
All systems operational
v1.0 Live

RC:OMS

Multi-channel order management with double-entry inventory ledger. Amazon, Flipkart, Shopify, WooCommerce — one source of truth.

Launch demo →
v1.0 Live

RC:Storefront

Self-hosted headless e-commerce. Your server, your data, zero transaction fees. Native RC:OMS inventory sync.

Visit Storefront →
Pipeline

RC:Pulse

AI-powered retail analytics and demand forecasting — built natively on top of your RC:OMS and Storefront data.

Request early access →
Built in India 🇮🇳  ·  Architected by Priyanshu PandeyTalk to an engineer →