Blog / OTBI
OTBI

Oracle Fusion OTBI Subject Areas: SQL Table Reference for BI Publisher Developers

May 27, 2026 12 min read
Back to Blog

When you rebuild an Oracle Fusion OTBI analysis in BI Publisher physical SQL, the first question is usually: which tables sit behind this subject area? That is a useful question, but it needs one important qualification. An OTBI subject area is not a database synonym and it rarely maps one-to-one to a single Fusion table.

Use this as a SQL reconstruction reference, not a physical-lineage map. OTBI sits on Oracle BI logical metadata, application reporting objects, subject-area-specific filters, security rules, hierarchies, calculations, and in some cases non-table runtime sources such as Essbase. The tables below are the objects SQL developers commonly use to reproduce the same business data in BI Publisher or FusionLens SQL.

The most reliable way to translate an OTBI analysis into SQL is to start with the subject area's documented transactional grain, then identify the physical tables needed for the attributes you selected. That distinction matters: a subject area may expose header, line, schedule, distribution, accounting, and dimension attributes while its measurable fact sits at only one of those grains.

How to Read the Mapping Tables

OTBI subject area

The presentation-layer business model selected by the report author.

Documented OTBI grain

The fact grain or runtime source Oracle documents for the subject area.

Common SQL objects

Tables or reporting extracts typically used when reconstructing the same business result with physical SQL.

HCM Subject Areas

OTBI Subject Area Oracle-Documented Grain Common SQL Objects
Workforce Management - Worker Assignment Real Time PER_ALL_ASSIGNMENTS_M; current as-of-date rows, EFFECTIVE_LATEST_CHANGE='Y' PER_ALL_ASSIGNMENTS_M, PER_ALL_PEOPLE_F, PER_PERSON_NAMES_F
Workforce Management - Position Real Time HR_ALL_POSITIONS_F HR_ALL_POSITIONS_F; join assignments only when occupancy or worker context is required
Payroll - Payroll Run Results Real Time PAY_RUN_RESULTS / PAY_RUN_RESULT_VALUES PAY_RUN_RESULTS, PAY_RUN_RESULT_VALUES, PAY_INPUT_VALUES_F, PAY_ELEMENT_TYPES_F
Workforce Management - Absence Real Time ANC_PER_ABS_TYPE_ENTRIES ANC_PER_ABS_TYPE_ENTRIES, ANC_PER_ABS_ENTRIES, ANC_ABSENCE_TYPES_F
Compensation - Salary Details Real Time CMP_SALARY, current salary by DATE_FROM/DATE_TO CMP_SALARY, PER_ALL_ASSIGNMENTS_M
Workforce Goals - Goal Status Overview Real Time HRG_GOALS HRG_GOALS plus goal-plan/alignment tables when those dimensions are selected

Two easy HCM mistakes: the payroll subject area is Payroll - Payroll Run Results Real Time, and the relationship between PAY_RUN_RESULTS and PAY_RUN_RESULT_VALUES is RUN_RESULT_ID — not PAYROLL_RELATIONSHIP_ID. Also, the current Goals family uses HRG_* objects; older-looking HRM_GOALS/HRM_GOAL_VERSIONS mappings should not be used as a generic Fusion goal model.

Finance Subject Areas

OTBI Subject Area Oracle-Documented Grain / Source Common SQL Objects
General Ledger - Journals Real Time GL_IMPORT_REFERENCES for imported subledger journals; otherwise journal-line grain GL_JE_BATCHES, GL_JE_HEADERS, GL_JE_LINES, GL_IMPORT_REFERENCES, GL_CODE_COMBINATIONS
General Ledger - Balances Real Time Essbase at report runtime; Oracle notes that GL_BALANCES isn't used by this subject area at runtime GL_BALANCES + GL_CODE_COMBINATIONS are common physical-SQL equivalents, not the OTBI runtime source
Payables Invoices - Transactions Real Time Invoice-distribution grain for its transaction fact AP_INVOICES_ALL, AP_INVOICE_LINES_ALL, AP_INVOICE_DISTRIBUTIONS_ALL, POZ_SUPPLIERS, HZ_PARTIES
Payables Payments - Disbursements Real Time AP_PAYMENT_HIST_DISTS AP_CHECKS_ALL, AP_PAYMENT_HISTORY_ALL, AP_PAYMENT_HIST_DISTS, AP_INVOICE_PAYMENTS_ALL
Receivables - Transactions Real Time Transaction-distribution grain RA_CUSTOMER_TRX_ALL, RA_CUSTOMER_TRX_LINES_ALL, RA_CUST_TRX_LINE_GL_DIST_ALL
Fixed Assets - Asset Transactions Real Time FA_TRX_EXTRACT at asset transaction distribution-line grain FA_TRX_EXTRACT; deeper investigations may also use FA_ADDITIONS_B, FA_BOOKS, and transaction/distribution tables

GL Balances is the classic mapping trap. A SQL developer can reproduce many balances with GL_BALANCES, but Oracle's General Ledger - Balances Real Time subject area is backed by the balances cube at runtime. Hierarchies, aggregation, currency/scenario dimensions, and cube behavior can therefore make a base-table SQL result differ from OTBI even when the numbers appear to come from the same business object.

Procurement and Receiving Subject Areas

OTBI Subject Area Model / Grain Common SQL Objects
Procurement - Purchasing Real Time Measures exist at PO line, schedule, and distribution grains PO_HEADERS_ALL, PO_LINES_ALL, PO_LINE_LOCATIONS_ALL, PO_DISTRIBUTIONS_ALL
Procurement - Requisitions Real Time Header, line, and requisition-distribution levels POR_REQUISITION_HEADERS_ALL, POR_REQUISITION_LINES_ALL, POR_REQ_DISTRIBUTIONS_ALL
Procurement - Spend Real Time Cross-procurement spend model; time is anchored to invoice date AP_INVOICES_ALL, AP_INVOICE_LINES_ALL, AP_INVOICE_DISTRIBUTIONS_ALL, PO_DISTRIBUTIONS_ALL, supplier dimensions
Supplier - Supplier Real Time Supplier profile/site dimensions; no anchoring date POZ_SUPPLIERS, POZ_SUPPLIER_SITES_ALL_M, HZ_PARTIES
Receiving - Receipts Real Time All receipt types, including interorganization transfers and PO receipts RCV_SHIPMENT_HEADERS, RCV_SHIPMENT_LINES, RCV_TRANSACTIONS
Procurement - Procure To Pay Real Time Cross-module model spanning requisitions, POs, receipts, and invoices Use the appropriate POR_*, PO_*, RCV_*, and AP_* bridge tables at the required grain

Don't carry E-Business Suite supplier naming into Fusion. Current Fusion Procurement reporting uses POZ_SUPPLIERS and POZ_SUPPLIER_SITES_ALL_M, with supplier name commonly resolved through HZ_PARTIES. Also note the exact OTBI names: Procurement - Purchasing Real Time, Procurement - Spend Real Time, and Supplier - Supplier Real Time. Receiving subject areas live under the Receiving family, not Purchasing.

A Worker Assignment SQL Reconstruction Example

The SQL below is a practical physical-SQL reconstruction of the core current-assignment grain. It is not a claim that OTBI generates this SQL internally, and it intentionally does not force PRIMARY_FLAG='Y' because the Worker Assignment Real Time subject area can return multiple worker assignments.

SELECT
    p.person_number,
    n.display_name,
    a.assignment_number,
    a.assignment_type,
    a.assignment_status_type,
    a.business_unit_id,
    a.organization_id,
    a.position_id,
    a.job_id,
    a.location_id
FROM per_all_assignments_m a
JOIN per_all_people_f p
  ON p.person_id = a.person_id
 AND :p_as_of_date BETWEEN p.effective_start_date
                       AND p.effective_end_date
LEFT JOIN per_person_names_f n
  ON n.person_id = a.person_id
 AND n.name_type = 'GLOBAL'
 AND :p_as_of_date BETWEEN n.effective_start_date
                       AND n.effective_end_date
WHERE :p_as_of_date BETWEEN a.effective_start_date
                        AND a.effective_end_date
  AND a.effective_latest_change = 'Y'
  AND a.assignment_type IN ('E', 'C', 'N', 'P');

Oracle documents those assignment-type and latest-change filters for the subject area. If your business report needs only the primary employee assignment, that is an additional business filter — for example ASSIGNMENT_TYPE='E' and PRIMARY_FLAG='Y' — not a generic OTBI mapping rule.

What the Common Fusion Suffixes Actually Tell You

_F — date-effective object

Usually carries EFFECTIVE_START_DATE and EFFECTIVE_END_DATE. Use the report's required as-of date. Do not assume every subject area anchors every _F object to SYSDATE.

_M — date-effective object that can retain multiple changes in a day

PER_ALL_ASSIGNMENTS_M is the classic example. Its key includes EFFECTIVE_LATEST_CHANGE and EFFECTIVE_SEQUENCE; EFFECTIVE_LATEST_CHANGE='Y' identifies the latest change for the day.

_B, _TL, _VL — base, translation, and view-layer patterns

_TL objects commonly carry translated rows and a LANGUAGE column. _VL objects often present a convenient language-resolved view. These suffixes do not mean the object is automatically data-secured.

_ALL — do not infer security or organization scope from the suffix

Many ERP/SCM _ALL tables contain rows for multiple business units or organizations, but the correct discriminator is table-specific: ORG_ID, PRC_BU_ID, REQ_BU_ID, LEDGER_ID, SET_OF_BOOKS_ID, and others. Check the object definition rather than the name.

Why Physical SQL Doesn't Match OTBI

1. The subject area has a specific grain and seeded filters

Worker Assignment Real Time applies current effective-date and latest-change logic. Salary Details has its own current-salary rules. Other subject areas support history. There is no universal “OTBI always applies SYSDATE BETWEEN” rule.

2. OTBI runs with Fusion reporting data security

OTBI transaction analysis duty roles and application data security can restrict what the user sees. A BI Publisher physical-SQL query against a raw database table does not automatically inherit those restrictions.

3. The runtime source may not be the base table you expect

General Ledger - Balances Real Time reads from Essbase at runtime. Fixed Assets - Asset Transactions Real Time uses FA_TRX_EXTRACT, populated by the Extract Asset Reporting Data process.

4. Logical measures can live above the physical column layer

OTBI can apply hierarchies, derived expressions, currency behavior, lookup meanings, and level-based aggregation. A column name that looks simple in the presentation layer may not correspond to one physical column.

5. A raw join may change the grain

Joining AP invoice headers to lines, distributions, payments, or PO matches multiplies rows by design. Reproducing OTBI means matching the subject area's fact grain first, then adding dimensions without unintentionally changing it.

OTBI vs BI Publisher Physical SQL

Reporting Path Data Model Security Behavior
OTBI Analysis Subject area / semantic model Fusion reporting roles and application data-security rules can restrict the result
BI Publisher Physical SQL Physical SQL against Fusion reporting database objects Raw table access isn't automatically subject to Fusion data-security restrictions; use Oracle's secured list views/VPD-protected objects or documented security logic where required
FusionLens SQL Physical SQL workflow for Oracle Fusion reporting Same design responsibility applies: object choice, grain, predicates, and security model must be explicit

Security is not just an ORG_ID filter. Adding a Business Unit or ledger predicate can be necessary for report scope, but it does not reproduce Oracle's role-based data security. In HCM, Oracle provides Secured List Views for BI Publisher; selected PII tables are protected with VPD policies. Use the documented security mechanism for the object you are reporting.

A Practical OTBI-to-SQL Validation Workflow

  1. Identify the exact subject area name. Similar-sounding names often represent different grains and business models.
  2. Read Oracle's Transactional Grain and Time Reporting sections. These are more reliable than guessing from presentation-folder names.
  3. Identify the lowest fact grain used by your analysis. Header, line, schedule, distribution, payment distribution, and accounting distribution are not interchangeable.
  4. Build the physical SQL at that grain first. Add descriptive dimensions after the base row count is understood.
  5. Reproduce the as-of-date logic. For _M HCM tables, consider latest-change/sequence semantics as well as effective dates.
  6. Match security context intentionally. Don't use raw-table row counts as a security-equivalent benchmark against OTBI.
  7. Check non-table/reporting sources. Essbase cubes and reporting extract tables can make a direct table comparison invalid.
  8. Compare totals and row counts at the same grain. A mismatch after adding a one-to-many join may be correct multiplication, not an OTBI defect.

Move from OTBI Fields to Valid Fusion SQL Faster

🔍
Schema Navigator

Inspect Fusion tables, columns, data types, and relationships while rebuilding an OTBI analysis in SQL.

💻
Run and Validate SQL

Test physical SQL against your Oracle Fusion connection and compare results with the OTBI analysis at the same grain.

🕐
SQL History

Keep working versions of your OTBI-to-SQL conversions and revisit them without rebuilding the query from scratch.

Technical References

Final Thoughts

The useful skill is not memorizing that one OTBI subject area “equals” one table. It is learning to identify the subject area's business grain, time behavior, security context, and reporting source — then building physical SQL that reproduces those rules deliberately.

Once you approach OTBI this way, mismatched row counts become much easier to diagnose. You can tell whether the difference comes from a wrong join, a date-effective row, a distribution-level fact, security, an extract process, a cube-backed measure, or simply a different reporting grain.

Related

For practical SQL examples across HCM, Financials, and Procurement, see the Oracle Fusion SQL Guide. For the security differences between OTBI and physical SQL, see Oracle Fusion SQL Security Explained.