A practical map of how Oracle Fusion organizes data: naming clues, temporal versions, translation layers, organizational scope, security, recurring relationship shapes, and more than fifty high-value tables and views across HCM, Financials, Procurement, Inventory, Projects, and Security.
| In This Guide | You'll Learn |
|---|---|
| Naming conventions | How to use suffixes as clues without treating them as universal rules |
| Temporal data | How _F/_M objects, updates, corrections, future rows, and same-day changes actually behave |
| Translations | When to use base, translation, and session-language views |
| Security | Why OTBI security and BI Publisher physical SQL are not the same thing |
| Relationship patterns | How to recognize person→assignment, header→line→distribution, TCA, SLA, and hierarchy paths |
| Module reference | Which object to start with for common HCM, Finance, Procurement, Inventory, and Projects questions |
Scope
This is a reporting/developer reference, not an assertion that every physical table is a supported public integration contract. Oracle's Tables and Views documentation is the source of truth for current object metadata; REST, OTBI, BICC/replicated extraction, and other supported interfaces have their own contracts and security behavior.
Why This Reference Exists
Writing SQL is rarely the first difficult step in Oracle Fusion. The harder question is usually: which object represents the business grain I actually need?
An “employee” is not one database row. Person identity, name, work relationship, assignment, manager, job, position, location, and organization all have separate lifecycles. A purchase order is not one row either: header, line, schedule, distribution, receipt, invoice matching, and accounting each live at different grains. A supplier name is a TCA party attribute, while supplier operational attributes belong to Procurement.
This reference is designed to make those distinctions visible before you write the join.
Why Oracle Fusion's Data Model Is Hard to Learn
Fusion combines several architectural concerns in the same schema: application business objects, date effectivity, translation, enterprise partitioning, business-unit or inventory-organization scope, accounting grain, and data security. Those concerns do not map one-to-one to suffixes.
The useful skill is therefore not “memorize every suffix.” It is: use the name as a hypothesis, then verify the actual object's columns, keys, foreign keys, view definition, and security semantics.
What Makes This Reference Different
Oracle's object documentation is excellent for answering “does this column exist?” This guide focuses on the next questions: what is the row grain, which neighboring object completes the business concept, which join silently multiplies rows, and which familiar-looking name comes from an older Oracle Applications model rather than current Fusion.
The four questions to ask for any object
- Grain: what does one physical row represent?
- Time: is the row date-effective, date-enabled, sequenced, or non-date-tracked?
- Scope: person, work relationship, BU, ledger, inventory organization, project BU, or another organizational axis?
- Security: does this object itself enforce end-user data security, or are you looking at an unsecured physical table?
How This Reference Complements the SQL Guide
Where This Guide Stops — and the Other Two Begin
| Guide | Primary question | What belongs there | What does not belong there |
|---|---|---|---|
| Tables Reference — this guide | Where is the data physically stored, and what does one row mean? | Tables/views, grain, PK/FK, suffixes, scope columns, translations, flexfield storage, audit/interface layers, TCA/XLA lineage. | Long executable SQL examples; functional implementation philosophy. |
| SQL Queries Guide | How do I retrieve or reconcile the data? | Working SQL, joins, parameters, filters, aggregates, date predicates, query patterns. | A full physical object catalog. |
| Mental Models | Why is Fusion designed this way, and how should a functional consultant reason about it? | Ownership, enterprise structure, setup vs. transaction, process handoffs, functional architecture. | Table names, database joins, SQL implementation. |
The Oracle Fusion SQL Guide answers “how do I query this?” This reference answers “where does this live, what is its grain, and what should it join to?” Use the reference to choose the right objects; use the SQL guide for worked query patterns.
XLA_TRANSACTION_ENTITIESgives the source transaction an XLA entity identity.XLA_EVENTSrecords accounting events, keyed within an application.XLA_AE_HEADERSandXLA_AE_LINEScontain subledger journal headers and lines.XLA_AE_LINES.GL_SL_LINK_IDand the link-table discriminator support subledger-to-GL drillback.GL_IMPORT_REFERENCESis populated for journal sources configured to maintain import references; it is not guaranteed to contain every possible feeder transaction.
Physical lineage
Source transaction → XLA_TRANSACTION_ENTITIES → XLA_EVENTS → XLA_AE_HEADERS → XLA_AE_LINES → GL_IMPORT_REFERENCES → GL_JE_LINES
The Mental Models guide explains accounting conceptually. At the physical layer, Subledger Accounting introduces a separate identity and journal hierarchy between the source transaction and General Ledger.
The XLA Accounting Data Layer: From Source Transaction to GL
Supplier-side identity chain
POZ_SUPPLIERS.PARTY_ID → HZ_PARTIES.PARTY_ID
The supplier operational record and the TCA party identity are related but not interchangeable. Supplier number, party number, supplier site, party site and payment site are different identities with different keys.
Customer-side identity chain
HZ_PARTIES → HZ_CUST_ACCOUNTS → HZ_CUST_ACCT_SITES_ALL → HZ_CUST_SITE_USES_ALL
HZ_LOCATIONS and party-site objects provide the location/site layer. One party can have multiple customer accounts; one account can have multiple sites; one site can have multiple business purposes such as Bill-To or Ship-To.
Trading Community Architecture (TCA) is the identity layer behind many customer and supplier relationships. The physical model separates who the party is from what commercial relationship it has and where/how a site is used.
TCA Party Identity Layer: Party, Account, Site and Business Use
A Useful Physical Distinction
Interface row → validation/import process → production header/line/distribution rows.
The interface can contain rejected, incomplete, duplicated, or still-unprocessed data. For “what exists in Fusion as a business transaction?” use the production object. For “why did this inbound load fail?” the interface/error layer may be exactly where you need to look.
Interface tables are processing surfaces, not alternate copies of production transactions. GL_INTERFACE holds journal-import data waiting to become GL journals. PO_HEADERS_INTERFACE participates in Purchasing Document Open Interface processing before a valid purchase order is created.
Interface & Staging Tables: Data Before It Becomes a Transaction
Do not infer a universal audit convention solely from the name. Oracle explicitly documents trailing-underscore audit variants in several product families, but the object must still be verified individually.
| Column / pattern | Meaning | Why it matters |
|---|---|---|
CREATED_BY / CREATION_DATE | Who created the row and when | Operational provenance, not necessarily the business initiator |
LAST_UPDATED_BY / LAST_UPDATE_DATE | Last database-level updater and timestamp | Change/reconciliation clue; not a full audit trail by itself |
LAST_UPDATE_LOGIN | Session/login provenance where populated | Additional Who-column context |
OBJECT_VERSION_NUMBER | Optimistic-locking version counter | Explains REST/UI concurrency checks; it is not a business version number |
REQUEST_ID | ESS request that created/updated a row where the object records it | Useful for tracing batch-originated changes |
| Trailing underscore audit object | Audit representation on many audited Fusion objects where documented | Different purpose and often different PK from the operational table |
Technical Metadata Every Fusion Developer Should Recognize
This means two rows with the same business code can legitimately exist in different sets. Treat SET_ID as part of the data grain whenever the object is reference-data-set enabled.
The Mental Models guide explains why reference data sharing exists. At the schema layer, the important fact is that many shareable reference objects carry a SET_ID. FND_SETID_SETS stores reference-data sets, while FND_SETID_ASSIGNMENTS maps a reference group and determinant to the set that applies.
Reference Data Sets: The Physical SET_ID Layer
FND_DF_SEGMENTS_B— DFF segment metadata, including context, database column and value-set references.FND_KF_SEGMENTS_B— KFF segment metadata, including structure, sequence, column and default value set.FND_VS_VALUE_SETS— value-set definitions.FND_VS_VALUES_B— values belonging to a value set.
Metadata Objects Worth Knowing
| Flexfield type | Physical pattern | What to look for |
|---|---|---|
| Descriptive Flexfield (DFF) | Additional columns on the owning object, often ATTRIBUTE* plus a context/category column | Context + segment metadata; the same ATTRIBUTE column can mean different things in different contexts |
| Extensible Flexfield (EFF) | Separate extension table, often one-to-many from the base object | Context code, extension row ID, parent key; multiple contexts may coexist |
| Key Flexfield (KFF) | Structured multi-segment key whose segments form a business code combination | Structure/segment metadata and the resulting combination ID; GL_CODE_COMBINATIONS is the canonical example |
Flexfields are one of the biggest reasons two Fusion customers can use the same base object very differently. The physical storage model differs by flexfield type, so “where is my custom field?” has three different answers.
Flexfields & Extension Storage: DFF, EFF, KFF and Value Sets
The physical lesson is simple: a stored status code is not necessarily the text a user sees. Resolve codes through the documented lookup/value layer when the report needs a display meaning, and preserve the code when the integration or reconciliation depends on stable machine-readable values.
Fusion transactional tables often store a compact code while the user interface displays a translated meaning. FND_LOOKUP_VALUES exposes the familiar lookup dimensions: lookup type, lookup code, meaning, description, language, enabled status, active dates, and—where applicable—reference-data set context.
Lookups: Codes, Meanings & Display Values
| Date pattern | Meaning | Examples |
|---|---|---|
EFFECTIVE_START_DATE / EFFECTIVE_END_DATE | Which version of a date-effective entity is valid as of a date | People, assignments, jobs, positions |
START_DATE_ACTIVE / END_DATE_ACTIVE | Whether a reference/configuration value is enabled for use | Lookups, value-set values |
| Transaction date | When the business event occurred | Invoice date, receipt date, transaction date |
| Accounting / GL date | When the event belongs in accounting | Subledger distributions, cash receipt history, journals |
| Who-column timestamps | When the database row was created or last changed | CREATION_DATE, LAST_UPDATE_DATE |
Not every pair of dates is an effective-date model. Fusion uses several different date semantics, and confusing them produces subtle reporting errors.
Date Semantics Beyond Effective Dating
| Role | Typical shape | Examples | What it is not |
|---|---|---|---|
| Master / identity | One durable identity, referenced by transactions | HZ_PARTIES, POZ_SUPPLIERS, FA_ADDITIONS_B | A transaction history |
| Header | One business document or event header | PO_HEADERS_ALL, AP_INVOICES_ALL, GL_JE_HEADERS | The lowest accounting/detail grain |
| Line | One detail row under a header | PO_LINES_ALL, AP_INVOICE_LINES_ALL, GL_JE_LINES | A header total |
| Schedule | Fulfilment/timing split below a line | PO_LINE_LOCATIONS_ALL, payment schedules | A generic line synonym |
| Distribution | Accounting, requester, project, or allocation split | PO_DISTRIBUTIONS_ALL, AP_INVOICE_DISTRIBUTIONS_ALL, RA_CUST_TRX_LINE_GL_DIST_ALL | Final SLA accounting by definition |
| Bridge / association | Connects two many-sided business objects | AP_INVOICE_PAYMENTS_ALL, AR_RECEIVABLE_APPLICATIONS_ALL, PJB_CNTRCT_PROJ_LINKS | Optional decoration |
| Lifecycle / history | One row per state transition or historical event | AR_CASH_RECEIPT_HISTORY_ALL, effective-dated HCM objects | A single current snapshot |
| Interface / staging | Rows waiting for validation/import | GL_INTERFACE, PO_HEADERS_INTERFACE | The final transaction of record |
| Audit | Change-history representation for audited objects | Trailing-underscore audit variants where documented | The operational base object |
Suffixes are useful, but the object's role is often even more useful. Most Fusion data structures fall into a small set of physical roles.
Physical Table Roles: What Kind of Object Are You Looking At?
Not every object's practical uniqueness is a single ID. A balance can depend on ledger, period, currency, code combination, and balance type. An assignment version depends on assignment identity plus effective dating and same-day sequence state. A customer site use belongs to an account site and a business purpose. Always preserve the dimensions that define the business grain, not just the easiest numeric key to join.
Composite Grain Matters
Fusion commonly separates an internal numeric identifier from the number users recognize. PO_HEADERS_ALL.PO_HEADER_ID is the system key; SEGMENT1 is the displayed PO number. RA_CUSTOMER_TRX_ALL.CUSTOMER_TRX_ID is the transaction key; the user-facing transaction number is a different attribute. The same distinction appears across Projects, HCM, AP, and SCM.
Surrogate IDs vs. Business Numbers
A table name tells you roughly what the object is. The key tells you what one row actually represents. Before using a table, identify its grain in one sentence. “One purchase order header,” “one AP invoice line,” “one assignment version,” and “one subledger journal line” are different grains even when they share related IDs.
Keys, Grain & Cardinality: The Real Foundation of Fusion SQL
Five Fields That Answer Most Schema Questions
| Metadata | What it tells you | Question to ask |
|---|---|---|
| Object Type | TABLE, VIEW, audit/interface object, etc. | Am I looking at stored data or a derived layer? |
| Primary Key | The documented physical uniqueness | What makes one row one row? |
| Foreign Keys | Documented relationship paths | What can I join without inventing a bridge? |
| Column comments | Business/technical meaning and often scope | Is this ID a person, BU, ledger, party, schedule, distribution, event, or something else? |
| Indexes | Frequently accessed combinations and sometimes hidden grain clues | Which column combinations recur together? |
Oracle's Tables and Views pages are most useful when you treat them as a physical metadata dictionary, not as a ready-made reporting contract. For each object, read five things in order: object type, primary key, column descriptions, foreign keys, and indexes. Together they tell you what the object stores, what makes a row unique, and which relationships Oracle itself documents.
How to Read Oracle Fusion Table Documentation
Table Naming Conventions: A Safer Decoder
Suffixes are valuable, but they are conventions, not contracts. Do not derive a required predicate solely from a suffix. Confirm the actual object definition.
| Pattern | Usually Indicates | What to Verify |
|---|---|---|
| _B | Base/structural object in many product families | Whether a paired translation object exists; some base objects also carry display text |
| _TL | Translation rows | Actual key, effective-date columns if any, and LANGUAGE/SOURCE_LANG behavior |
| _VL | Language-aware view | View definition; often joins base+TL and filters to session language |
| _F | Date-effective object in many HCM/Foundation areas | Effective start/end columns and full PK |
| _M | A versioned/date-effective object in some newer models | Do not assume _F semantics only; inspect sequence/latest-change columns |
| _ALL | A shared physical table name used widely | Actual organizational/scoping columns; there is no universal _ALL predicate |
| _ALL_M | Combined naming clues on some objects | Inspect both temporal columns and real BU/org columns; don't infer “two mandatory predicates” from the name alone |
_B, _TL, and _VL
A common pattern is language-independent structure plus translated text. In HCM jobs, for example, the current objects are PER_JOBS_F, PER_JOBS_F_TL, and PER_JOBS_F_VL. The _VL view resolves the translated name using the session language.
Do not hard-code LANGUAGE='US' and describe it as “the user's session language.” US is an English language code. When querying translation tables directly, use the language required by the report; when a suitable _VL exists, it is often the simpler session-language option.
_F — Date-Effective Clue
An _F object often contains physical rows bounded by EFFECTIVE_START_DATE and EFFECTIVE_END_DATE. A current or as-of query must resolve the row for the intended date. But not every time-aware object ends in _F, and not every object with dates implements the same date-effectivity behavior.
_M — Inspect the Actual Versioning Model
PER_ALL_ASSIGNMENTS_M is the critical example. It supports multiple changes on the same day. Its key includes effective dates, EFFECTIVE_LATEST_CHANGE, and EFFECTIVE_SEQUENCE. For a normal current/as-of final-state assignment snapshot, date filtering alone is incomplete; EFFECTIVE_LATEST_CHANGE='Y' is normally part of the grain. For a same-day audit timeline, preserve the sequence instead of filtering those rows away.
_ALL — Do Not Decode It as a Universal Business-Unit Rule
Many Financials and Procurement _ALL tables contain rows across organizational scopes, but the relevant column varies by object. AP_INVOICES_ALL uses ORG_ID for the associated business unit. PO_HEADERS_ALL exposes procurement and requisitioning BU concepts such as PRC_BU_ID and REQ_BU_ID. Other modules use completely different organizational axes.
The safe rule is: identify the business scope from the object's documented columns, not from the suffix.
Module Prefixes — Useful Starting Clues
| Prefix | Typical Area | Example |
|---|---|---|
| PER / HR | Global Human Resources | PER_ALL_ASSIGNMENTS_M |
| PAY | Payroll | PAY_RUN_RESULTS |
| GL | General Ledger | GL_JE_HEADERS |
| XLA | Subledger Accounting | XLA_AE_HEADERS |
| AP | Payables | AP_INVOICES_ALL |
| AR / RA | Receivables | RA_CUSTOMER_TRX_ALL |
| HZ | Trading Community Architecture / parties | HZ_PARTIES |
| PO / POR / POZ | Purchasing / requisitions / suppliers | PO_HEADERS_ALL / POR_REQUISITION_HEADERS_ALL / POZ_SUPPLIERS |
| RCV | Receiving | RCV_TRANSACTIONS |
| EGP / INV | Product/item and inventory | EGP_SYSTEM_ITEMS_B / INV_MATERIAL_TXNS |
| PJF / PJC | Projects / Project Costing | PJF_PROJECTS_ALL_B / PJC_EXP_ITEMS_ALL |
| FND | Application foundation / data security | FND_GRANTS |
Understanding the Data Model: Business Objects vs. Tables vs. Views
A business object is the functional concept. A table is a physical storage object. A view is a database-defined projection or join. An OTBI subject area is a semantic analytics layer. These layers should not be treated as interchangeable.
The Worker Business Concept, Assembled
| Piece | Object | What It Contributes |
|---|---|---|
| Person identity | PER_ALL_PEOPLE_F | Person number and date-effective person row |
| Person attributes | PER_PERSONS | Non-date-tracked parent including DATE_OF_BIRTH |
| Name | PER_PERSON_NAMES_F | Global/local display names |
| Work relationship | PER_PERIODS_OF_SERVICE | Legal-employer relationship and start/termination |
| Assignment | PER_ALL_ASSIGNMENTS_M | Department, job, grade, position, location, assignment status |
| Manager | PER_ASSIGNMENT_SUPERVISORS_F | Assignment-level supervisory relationship |
| Job name | PER_JOBS_F_VL | Session-language job name |
Notice what is not true: PER_ALL_PEOPLE_F does not contain every personal attribute, and the assignment does not itself contain the manager relationship as a generic MANAGER_ID field for reporting.
Effective-Dated Tables: The Complete Model
Date effectivity represents one logical object with one or more physical rows over time. Past, current, and future physical rows can coexist.
That distinction matters because the common statement “Fusion never updates a row; every change creates another row” is false. Date-effective behavior depends on the operation.
DATE '4712-12-31' is commonly used as an end-of-time/open-ended sentinel. It means “no later effective end is currently defined,” not “this row is definitely current today.” A future-dated physical row can also be open-ended.
Current/as-of pattern
-- Generic date-effective row :p_as_of_date BETWEEN effective_start_date AND effective_end_date -- PER_ALL_ASSIGNMENTS_M final state for that effective date :p_as_of_date BETWEEN effective_start_date AND effective_end_date AND effective_latest_change = 'Y'
Translation Tables & Multi-Language Design
Translation objects separate language-specific labels from the underlying business identity. The exact shape varies, so verify the object definition rather than assuming every _TL has identical keys.
For HCM jobs, PER_JOBS_F_VL is a concrete example: Oracle's view joins PER_JOBS_F and PER_JOBS_F_TL on job ID and effective dates, then filters the translation row to the session language.
Common Mistake
Joining a translation table without a language predicate can multiply rows. The inverse mistake is assuming every installed language has a populated translation for every record.
Data Visibility & Security in Oracle Fusion
This guide treats security only as a data-access layer in the physical model. Functional roles, ownership, and security-design philosophy belong in the Mental Models guide.
Secured Views vs. Base Tables
In HCM, Oracle documents secured list views such as PER_PERSON_SECURED_LIST_V, PER_ASSIGNMENT_SECURED_LIST_V, PER_POSITION_SECURED_LIST_V, and CMP_SALARY_SECURED_LIST_V. These are designed to apply HCM data-security scope for the logged-in user.
A BI Publisher physical SQL query against a base table does not automatically become equivalent to OTBI or the application UI merely because the user launched the report. Oracle explicitly distinguishes base-table physical SQL from secured-list-view access in HCM.
Physical Security Object Families
| Layer | Examples | What it represents |
|---|---|---|
| Identity | PER_USERS | Application user/person relationship |
| Security configuration | PER_SECURITY_PROFILES | HCM security-profile definitions |
| Data security grants | FND_GRANTS | Data-security grant records in the application foundation |
| Secured reporting views | PER_*_SECURED_LIST_V, CMP_SALARY_SECURED_LIST_V | Row populations resolved through HCM security rules |
| Database policy protection | Product-specific protected/PII objects | Additional database-level policies where Oracle applies them |
Organizational Scope: Business Units, Legal Entities, Ledgers, and Inventory Organizations
At the schema layer, organizational scope is expressed through different identifiers on different objects. Do not decode a table's organizational meaning from the _ALL suffix alone.
| Scope column | Typical meaning | Example families |
|---|---|---|
ORG_ID | Business-unit / operating-unit style transaction scope in many Financials objects | AP, AR |
PRC_BU_ID | Procurement Business Unit | Purchase Orders, supplier sites |
REQ_BU_ID | Requisitioning Business Unit | Purchasing/requisition-related objects |
LEGAL_ENTITY_ID | Legal-entity reference | Assignments, Financials transactions, payments |
LEDGER_ID | Accounting ledger | GL, XLA and subledger accounting objects |
ORGANIZATION_ID | Context-specific organization; in Inventory commonly inventory organization | Inventory, SCM |
SET_ID | Reference-data sharing scope | Jobs and other set-enabled reference data |
These columns are not synonyms. A transaction can legitimately carry several of them because operational scope, legal ownership, accounting ledger and reference-data context answer different physical relationship questions.
Relationship Archetypes
| Pattern | Typical Path | Why It Matters |
|---|---|---|
| Person → Work Relationship → Assignment | PER_ALL_PEOPLE_F → PER_PERIODS_OF_SERVICE → PER_ALL_ASSIGNMENTS_M | PERSON_ID alone is not sufficient for work-relationship-specific facts. |
| Assignment → Supervisor | PER_ALL_ASSIGNMENTS_M → PER_ASSIGNMENT_SUPERVISORS_F | Manager resolution is assignment-level. |
| Base → Translation/View | PER_JOBS_F → PER_JOBS_F_TL / PER_JOBS_F_VL | Keep identity separate from display language. |
| Header → Line → Distribution | AP invoice or PO hierarchy | Amounts repeat if a header total is summed after a 1:N join. |
| Party → Account | HZ_PARTIES → HZ_CUST_ACCOUNTS or POZ_SUPPLIERS → HZ_PARTIES | Operational customer/supplier IDs and party identity are different grains. |
| Subledger → SLA → GL | Source transaction → XLA transaction entity/AE lines → GL import references/journal | A shared account ID is not a transaction trace. |
| Master → Current State → Transaction History | EGP item → on-hand detail → material transactions | Current stock and movement history answer different questions. |
| Project → Task → Expenditure | PJF project → PJF project element → PJC_EXP_ITEMS_ALL | Project cost grain is expenditure item, not project header. |
HCM
Start by separating person, work relationship, assignment, and supervisor. Most HCM reporting mistakes come from collapsing those grains into one.
| Business Concept | Current Object(s) | Key / Join | Reporting Note |
|---|---|---|---|
| Person identity | PER_ALL_PEOPLE_F + PER_PERSONS | PERSON_ID | PER_ALL_PEOPLE_F is date-effective; PER_PERSONS holds non-date-tracked person attributes such as DATE_OF_BIRTH. |
| Name | PER_PERSON_NAMES_F | PERSON_ID / PERSON_NAME_ID | Choose NAME_TYPE and apply the as-of date. |
| Work relationship | PER_PERIODS_OF_SERVICE | PERIOD_OF_SERVICE_ID | Join from assignment by PERIOD_OF_SERVICE_ID; a person can have multiple work relationships. |
| Assignment | PER_ALL_ASSIGNMENTS_M | ASSIGNMENT_ID | Current/as-of final state normally needs effective date + EFFECTIVE_LATEST_CHANGE='Y'. |
| Manager | PER_ASSIGNMENT_SUPERVISORS_F | ASSIGNMENT_ID | Manager relationship lives here, not in a generic MANAGER_ID column on the assignment. |
| Job / grade | PER_JOBS_F_VL / PER_GRADES_F_VL | JOB_ID / GRADE_ID | Use language-aware views when a display name is needed. |
| Department | HR_ALL_ORGANIZATION_UNITS_F + HR_ORGANIZATION_UNITS_F_TL | ORGANIZATION_ID | Base row and translated name are separate; resolve both as of the same date for historical reporting. |
| Position | HR_ALL_POSITIONS_F_VL | POSITION_ID | Language-aware date-effective position. |
| Location | HR_LOCATIONS_ALL_F_VL | LOCATION_ID | Language-aware date-effective location and address. |
HCM Rule
For normal current/as-of assignment state, date-filter PER_ALL_ASSIGNMENTS_M and use EFFECTIVE_LATEST_CHANGE='Y'. Decide separately whether the business question requires PRIMARY_FLAG='Y'.
Financials: General Ledger, Accounts Payable, Accounts Receivable
| Business Concept | Current Object / Path | Grain / Key | Reporting Note |
|---|---|---|---|
| Journal | GL_JE_HEADERS → GL_JE_LINES | JE_HEADER_ID | Header-to-line relationship. |
| Account | GL_CODE_COMBINATIONS | CODE_COMBINATION_ID | Accounting flexfield combination used across subledgers and GL. |
| Balance | GL_BALANCES | ledger + CCID + currency + period + ACTUAL_FLAG | Contains actual, budget and encumbrance balances; preserve full balance grain. |
| Calendar | GL_PERIODS | period set + period name | Defines period dates and calendar attributes; not period open/close status. |
| Period status | GL_PERIOD_STATUSES | application + ledger + period | Stores O/F/C/P/N closing status. |
| AP invoice | AP_INVOICES_ALL → AP_INVOICE_LINES_ALL → AP_INVOICE_DISTRIBUTIONS_ALL | invoice → line → distribution | Distribution account is operational AP distribution grain, not automatically final posted SLA-to-GL trace. |
| AP payment | AP_INVOICES_ALL → AP_INVOICE_PAYMENTS_ALL → AP_CHECKS_ALL | INVOICE_ID / CHECK_ID | Use bridge table; don't join invoice and check only by supplier. |
| Supplier | POZ_SUPPLIERS → HZ_PARTIES | VENDOR_ID / PARTY_ID | Supplier number is POZ; display party name comes from TCA. |
| Supplier site | POZ_SUPPLIER_SITES_ALL_M | VENDOR_SITE_ID | Effective-dated and procurement-BU scoped; supports same-day effective sequence. |
| AR customer | RA_CUSTOMER_TRX_ALL → HZ_CUST_ACCOUNTS → HZ_PARTIES | BILL_TO_CUSTOMER_ID / CUST_ACCOUNT_ID / PARTY_ID | Separate transaction, customer account and party identity grains. |
GL Balance Grain
GL_BALANCES isn't uniquely described by account + period + currency alone. Preserve ledger and ACTUAL_FLAG, and account for budget/encumbrance/translation attributes where relevant. Oracle stores period activity and beginning balances separately.
Distribution Account ≠ Final Accounting Trace
AP_INVOICE_DISTRIBUTIONS_ALL.DIST_CODE_COMBINATION_ID can describe the AP distribution charge account, but final subledger accounting and transferred GL journal tracing belongs through SLA/XLA and the GL link references.
Procurement & Inventory/SCM
| Business Concept | Current Object / Path | Grain / Key | Reporting Note |
|---|---|---|---|
| Requisition | POR_REQUISITION_HEADERS_ALL → POR_REQUISITION_LINES_ALL → POR_REQ_DISTRIBUTIONS_ALL | header → line → distribution | Requisition accounting distribution is the reliable bridge toward a sourced PO distribution. |
| Purchase order | PO_HEADERS_ALL → PO_LINES_ALL → PO_LINE_LOCATIONS_ALL → PO_DISTRIBUTIONS_ALL | header → line → schedule → distribution | Choose the lowest common grain required by the report. |
| Receipt | RCV_TRANSACTIONS | TRANSACTION_ID | Carries PO header/line/schedule/distribution references for receiving events. |
| Item | EGP_SYSTEM_ITEMS_B | INVENTORY_ITEM_ID + ORGANIZATION_ID | Item attributes are organization-specific. |
| On hand | INV_ONHAND_QUANTITIES_DETAIL | ONHAND_QUANTITIES_ID | Receipt-layer stack; calculate on-hand by summing TRANSACTION_QUANTITY at the requested control/location grain. |
| Inventory movement | INV_MATERIAL_TXNS | TRANSACTION_ID | Transaction history; distinct from current on-hand state. |
For PO-to-invoice or PO-to-receipt analysis, prefer the deepest documented common key available: schedule, distribution, or receipt transaction. A header-level join can be valid for document existence, but it is too coarse for matching and quantity/value reconciliation.
Projects & Security
| Business Concept | Current Object | Key / Grain | Reporting Note |
|---|---|---|---|
| Project | PJF_PROJECTS_ALL_B / PJF_PROJECTS_ALL_VL | PROJECT_ID | Use VL for session-language project name/description. |
| Task / element | PJF_PROJ_ELEMENTS_B / PJF_PROJ_ELEMENTS_VL | PROJ_ELEMENT_ID | Task/WBS structural element and translated text. |
| Project cost | PJC_EXP_ITEMS_ALL | EXPENDITURE_ITEM_ID | Smallest expenditure unit charged to project/task; current Fusion object name. |
| User | PER_USERS | USER_ID | HCM user/account mapping; not a complete authorization model. |
| Data grant | FND_GRANTS | GRANT_GUID | Stores Data Security Grants, not merely UI/function access grants. |
| HCM security profile | PER_SECURITY_PROFILES | SECURITY_PROFILE_ID | Defines an HCM security profile; actual reporting security also uses roles/privileges and secured views. |
The current Project Costing expenditure table is PJC_EXP_ITEMS_ALL. The older-looking name PJC_EXPENDITURE_ITEMS_ALL should not be used as the current Fusion object in this guide.
| Family | Key objects | Purpose |
|---|---|---|
| Lookups | FND_LOOKUP_VALUES | Code → translated meaning/description with enabled/date/set context |
| Reference data sets | FND_SETID_SETS, FND_SETID_ASSIGNMENTS | SET_ID definitions and determinant-to-set assignments |
| Value sets | FND_VS_VALUE_SETS, FND_VS_VALUES_B | Value-set definitions and values |
| DFF metadata | FND_DF_SEGMENTS_B | Descriptive-flexfield segment-to-column/value-set metadata |
| KFF metadata | FND_KF_SEGMENTS_B | Key-flexfield structure/segment metadata |
Foundation Metadata, Lookups, Flexfields & Reference Data
| Family | Key objects | Physical relationship |
|---|---|---|
| Project/task structure | PJF_PROJECTS_ALL_B, PJF_PROJ_ELEMENTS_B | Project identity → workplan/task elements |
| Project cost | PJC_EXP_ITEMS_ALL | Expenditure/cost item references project and task |
| Contract-project bridge | PJB_CNTRCT_PROJ_LINKS | Associates project/task scope with contract/header/line scope |
| Billing events | PJB_BILLING_EVENTS | Project/task/contract-related revenue or billing events |
Projects & Billing
| Family | Key objects | Physical relationship |
|---|---|---|
| Purchasing document | PO_HEADERS_ALL, PO_LINES_ALL, PO_LINE_LOCATIONS_ALL, PO_DISTRIBUTIONS_ALL | Header → line → schedule → distribution |
| Requisition conversion | POR_REQUISITION_HEADERS_ALL, POR_REQUISITION_LINES_ALL, POR_REQ_DISTRIBUTIONS_ALL | Requisition document → line → distribution; distribution bridges to PO distribution |
| Inventory organization/location | INV_ORG_PARAMETERS, INV_SECONDARY_INVENTORIES, INV_ITEM_LOCATIONS | Inventory organization → subinventory → stock locator |
| Inventory quantity/history | INV_ONHAND_QUANTITIES_DETAIL, INV_MATERIAL_TXNS | On-hand receipt layers/current quantity basis vs material transaction history |
| Order Management | DOO_HEADERS_ALL, DOO_LINES_ALL, DOO_FULFILL_LINES_ALL | Orchestration order → orchestration line → fulfillment line |
| Shipping | WSH_NEW_DELIVERIES, delivery-detail views | Delivery identity/status and the detailed lines assigned to shipment execution |
Procurement, Product, Inventory, Order Management & Shipping
| Family | Key objects | Physical relationship |
|---|---|---|
| Subledger Accounting | XLA_TRANSACTION_ENTITIES, XLA_EVENTS, XLA_AE_HEADERS, XLA_AE_LINES, GL_IMPORT_REFERENCES | Source identity → event → subledger journal → GL drillback |
| AR receipts | AR_CASH_RECEIPTS_ALL, AR_CASH_RECEIPT_HISTORY_ALL, AR_RECEIVABLE_APPLICATIONS_ALL | Receipt → lifecycle states → applications to invoices/schedules |
| AR accounting distribution | RA_CUST_TRX_LINE_GL_DIST_ALL | Receivables transaction-line accounting distribution |
| Oracle Payments / Cash | IBY_PAYMENTS_ALL, CE_BANK_ACCOUNTS, CE_STATEMENT_HEADERS | Payment transaction → internal bank account → bank-statement header |
| Fixed Assets | FA_ADDITIONS_B, FA_BOOKS, FA_TRANSACTION_HEADERS | Asset identity → book/depreciation context → asset transaction history |
| Tax | ZX_LINES | Tax lines keyed back to product-specific transaction/entity identifiers |
Financials: SLA, Receipts, Payments, Cash, Assets & Tax
| Family | Key objects | Physical relationship |
|---|---|---|
| Core person/employment | PER_ALL_PEOPLE_F, PER_PERSONS, PER_ALL_ASSIGNMENTS_M, PER_PERIODS_OF_SERVICE | Person identity → work relationship → assignment versions |
| Compensation | CMP_SALARY | Salary rows reference assignment and use DATE_FROM/DATE_TO |
| Absence | ANC_PER_ABS_ENTRIES, ANC_ABSENCE_TYPES_F | Person absence transaction → date-effective absence type |
| Payroll setup/input | PAY_ELEMENT_TYPES_F, PAY_INPUT_VALUES_F, PAY_ELEMENT_ENTRIES_F, PAY_ELEMENT_ENTRY_VALUES_F | Element definition → input definition → assignment/person element entry → entered value |
| Payroll processing/result | PAY_PAYROLL_REL_ACTIONS, PAY_RUN_RESULTS, PAY_RUN_RESULT_VALUES | Processed payroll relationship → element result → input-value result |
| Benefits | BEN_PL_F, BEN_PRTT_ENRT_RSLT | Date-effective plan definition → participant enrollment result |
HCM, Compensation, Absence, Payroll & Benefits
The module sections above introduce the core objects. This layer goes one step deeper: not into functional process design and not into SQL, but into the physical subfamilies that repeatedly appear when you trace a record through the database.
Extended Module Data Families
Quick Reference Index — 117 Key Tables & Views
This index is intentionally broader than a “top 50” list. It contains 117 current, high-value tables and views used to orient yourself in the physical model. Inclusion here means “important to understand,” not “Oracle recommends this object as an analytics or extraction contract.”
| Area | Object | Role | Grain / key cue |
|---|---|---|---|
| HCM — Core HR | |||
| HCM | PER_ALL_PEOPLE_F | Date-effective person row | PERSON_ID + effective dates |
| HCM | PER_PERSONS | Person parent / DOB and durable person attributes | PERSON_ID |
| HCM | PER_PERSON_NAMES_F | Date-effective person names | PERSON_NAME_ID + dates |
| HCM | PER_ALL_ASSIGNMENTS_M | Assignment versions; supports same-day changes | ASSIGNMENT_ID + dates + ELC + sequence |
| HCM | PER_PERIODS_OF_SERVICE | Work relationship | PERIOD_OF_SERVICE_ID |
| HCM | PER_ASSIGNMENT_SUPERVISORS_F | Assignment-manager relationship | ASSIGNMENT_SUPERVISOR_ID + dates |
| HCM | PER_EMAIL_ADDRESSES | Person email addresses | EMAIL_ADDRESS_ID |
| HCM | PER_PHONES | Person phone records | PHONE_ID |
| HCM | PER_ADDRESSES_F | Date-effective addresses | ADDRESS_ID + dates |
| HCM | PER_PERSON_ADDR_USAGES_F | Person-to-address usage | PERSON_ADDR_USAGE_ID + dates |
| HCM | PER_NATIONAL_IDENTIFIERS | National identifier records | NATIONAL_IDENTIFIER_ID |
| HCM | PER_JOBS_F | Date-effective job definition | JOB_ID + dates |
| HCM | PER_JOBS_F_VL | Language-aware job view | JOB_ID + dates |
| HCM | PER_GRADES_F | Date-effective grade definition | GRADE_ID + dates |
| HCM | PER_GRADES_F_VL | Language-aware grade view | GRADE_ID + dates |
| HCM | HR_ALL_ORGANIZATION_UNITS_F | Date-effective organization definition | ORGANIZATION_ID + dates |
| HCM | HR_ORGANIZATION_UNITS_F_TL | Organization translation | ORGANIZATION_ID + language + dates |
| HCM | HR_ALL_POSITIONS_F | Date-effective position definition | POSITION_ID + dates |
| HCM | HR_ALL_POSITIONS_F_VL | Language-aware position view | POSITION_ID + dates |
| HCM | HR_LOCATIONS_ALL_F_VL | Language-aware location view | LOCATION_ID + dates |
| HCM — Compensation / Absence | |||
| HCM | CMP_SALARY | Salary rows by assignment | SALARY_ID; DATE_FROM/DATE_TO |
| HCM | ANC_PER_ABS_ENTRIES | Person absence entries | PER_ABSENCE_ENTRY_ID + enterprise |
| HCM | ANC_ABSENCE_TYPES_F | Date-effective absence type | ABSENCE_TYPE_ID + dates |
| HCM — Payroll / Benefits | |||
| HCM | PAY_ELEMENT_TYPES_F | Date-effective payroll element definition | ELEMENT_TYPE_ID + dates |
| HCM | PAY_INPUT_VALUES_F | Date-effective element input values | INPUT_VALUE_ID + dates |
| HCM | PAY_ELEMENT_ENTRIES_F | Element entry instance | ELEMENT_ENTRY_ID + dates |
| HCM | PAY_ELEMENT_ENTRY_VALUES_F | Actual entered element-input values | ELEMENT_ENTRY_VALUE_ID + dates |
| HCM | PAY_PAYROLL_REL_ACTIONS | Individuals processed in a payroll process | PAYROLL_REL_ACTION_ID |
| HCM | PAY_RUN_RESULTS | Payroll run result for an element | RUN_RESULT_ID |
| HCM | PAY_RUN_RESULT_VALUES | Result value by run result and input value | RUN_RESULT_ID + INPUT_VALUE_ID |
| HCM | BEN_PL_F | Date-effective benefits plan | PL_ID + dates |
| HCM | BEN_PRTT_ENRT_RSLT | Participant enrollment result | PRTT_ENRT_RSLT_ID |
| Financials — GL / SLA | |||
| Financials | GL_JE_HEADERS | GL journal header | JE_HEADER_ID |
| Financials | GL_JE_LINES | GL journal line | JE_HEADER_ID + JE_LINE_NUM |
| Financials | GL_CODE_COMBINATIONS | Accounting flexfield combination | CODE_COMBINATION_ID |
| Financials | GL_BALANCES | Ledger/period/account/currency/balance-type balances | Composite accounting grain |
| Financials | GL_PERIODS | Accounting calendar periods | PERIOD_SET_NAME + PERIOD_NAME |
| Financials | GL_PERIOD_STATUSES | Application/ledger period status | APPLICATION_ID + LEDGER_ID + PERIOD_NAME |
| Financials | GL_LEDGERS | Ledger definitions | LEDGER_ID |
| Financials | GL_DAILY_RATES | Currency conversion rates | From/to currency + date + type |
| Financials | GL_IMPORT_REFERENCES | Subledger/feeder references for imported GL lines | IMPORT_REFERENCE_ID; JE header/line + GL/SL link |
| Financials | XLA_TRANSACTION_ENTITIES | Subledger transaction identity | ENTITY_ID + APPLICATION_ID |
| Financials | XLA_EVENTS | Accounting event | EVENT_ID + APPLICATION_ID |
| Financials | XLA_AE_HEADERS | Subledger accounting journal header | AE_HEADER_ID + APPLICATION_ID |
| Financials | XLA_AE_LINES | Subledger accounting journal line | AE_HEADER_ID + AE_LINE_NUM + APPLICATION_ID |
| Financials — Payables / Payments | |||
| Financials | AP_INVOICES_ALL | AP invoice header | INVOICE_ID |
| Financials | AP_INVOICE_LINES_ALL | AP invoice line | INVOICE_ID + LINE_NUMBER |
| Financials | AP_INVOICE_DISTRIBUTIONS_ALL | AP invoice accounting/distribution row | INVOICE_DISTRIBUTION_ID |
| Financials | AP_PAYMENT_SCHEDULES_ALL | AP payment schedule/installment | PAYMENT_SCHEDULE_ID |
| Financials | AP_INVOICE_PAYMENTS_ALL | Invoice-to-payment bridge | INVOICE_PAYMENT_ID |
| Financials | AP_CHECKS_ALL | Payables payment/check record | CHECK_ID |
| Financials | IBY_PAYMENTS_ALL | Oracle Payments payment transaction | PAYMENT_ID |
| Financials — Receivables / TCA | |||
| Financials | RA_CUSTOMER_TRX_ALL | AR transaction header | CUSTOMER_TRX_ID |
| Financials | RA_CUSTOMER_TRX_LINES_ALL | AR transaction line | CUSTOMER_TRX_LINE_ID |
| Financials | RA_CUST_TRX_LINE_GL_DIST_ALL | AR transaction-line accounting distribution | CUST_TRX_LINE_GL_DIST_ID |
| Financials | AR_PAYMENT_SCHEDULES_ALL | AR payment schedule / open-balance installment | PAYMENT_SCHEDULE_ID |
| Financials | AR_CASH_RECEIPTS_ALL | Cash receipt | CASH_RECEIPT_ID |
| Financials | AR_CASH_RECEIPT_HISTORY_ALL | Receipt lifecycle step | CASH_RECEIPT_HISTORY_ID |
| Financials | AR_RECEIVABLE_APPLICATIONS_ALL | Receipt/credit application bridge | RECEIVABLE_APPLICATION_ID |
| Financials | HZ_PARTIES | TCA party identity | PARTY_ID |
| Financials | HZ_CUST_ACCOUNTS | Customer account relationship to a party | CUST_ACCOUNT_ID |
| Financials | HZ_CUST_ACCT_SITES_ALL | Customer account site | CUST_ACCT_SITE_ID |
| Financials | HZ_CUST_SITE_USES_ALL | Customer account-site business purpose | SITE_USE_ID |
| Financials | HZ_LOCATIONS | Postal/physical location | LOCATION_ID |
| Financials | HZ_PARTY_SITE_USES | Party-site business purpose | PARTY_SITE_USE_ID |
| Financials — Cash / Assets / Tax | |||
| Financials | CE_BANK_ACCOUNTS | Internal bank-account master | BANK_ACCOUNT_ID |
| Financials | CE_STATEMENT_HEADERS | Bank statement header | STATEMENT_HEADER_ID |
| Financials | FA_ADDITIONS_B | Asset identity/master | ASSET_ID |
| Financials | FA_BOOKS | Asset book/depreciation context and history | ASSET_ID + BOOK_TYPE_CODE + lifecycle context |
| Financials | FA_TRANSACTION_HEADERS | Asset transaction header | TRANSACTION_HEADER_ID |
| Financials | ZX_LINES | Tax detail line across product event classes | TAX_LINE_ID / transaction references |
| Procurement / Supplier / Receiving | |||
| Procurement / Supplier / Receiving | POZ_SUPPLIERS | Supplier operational master | VENDOR_ID |
| Procurement / Supplier / Receiving | POZ_SUPPLIER_SITES_ALL_M | Effective supplier site by Procurement BU | VENDOR_SITE_ID + effective versioning |
| Procurement / Supplier / Receiving | POR_REQUISITION_HEADERS_ALL | Requisition header | REQUISITION_HEADER_ID |
| Procurement / Supplier / Receiving | POR_REQUISITION_LINES_ALL | Requisition line | REQUISITION_LINE_ID |
| Procurement / Supplier / Receiving | POR_REQ_DISTRIBUTIONS_ALL | Requisition distribution | DISTRIBUTION_ID |
| Procurement / Supplier / Receiving | PO_HEADERS_ALL | Purchase order header | PO_HEADER_ID |
| Procurement / Supplier / Receiving | PO_LINES_ALL | Purchase order line | PO_LINE_ID |
| Procurement / Supplier / Receiving | PO_LINE_LOCATIONS_ALL | PO schedule/shipment | LINE_LOCATION_ID |
| Procurement / Supplier / Receiving | PO_DISTRIBUTIONS_ALL | PO distribution | PO_DISTRIBUTION_ID |
| Procurement / Supplier / Receiving | RCV_TRANSACTIONS | Receiving transaction | TRANSACTION_ID |
| Product / Inventory / Order Management / Shipping | |||
| Product / Inventory / Order Management / Shipping | EGP_SYSTEM_ITEMS_B | Item definition by organization | INVENTORY_ITEM_ID + ORGANIZATION_ID |
| Product / Inventory / Order Management / Shipping | EGP_ITEM_CAT_ASSIGNMENTS | Item-category assignment | Item/category/catalog relationship |
| Product / Inventory / Order Management / Shipping | INV_ORG_PARAMETERS | Inventory organization parameters | ORGANIZATION_ID |
| Product / Inventory / Order Management / Shipping | INV_SECONDARY_INVENTORIES | Subinventory definition | SECONDARY_INVENTORY_NAME + ORGANIZATION_ID |
| Product / Inventory / Order Management / Shipping | INV_ITEM_LOCATIONS | Stock locator definition / locator KFF | INVENTORY_LOCATION_ID |
| Product / Inventory / Order Management / Shipping | INV_ONHAND_QUANTITIES_DETAIL | On-hand receipt layers / quantity detail | Item + org + subinventory/locator/lot receipt layer |
| Product / Inventory / Order Management / Shipping | INV_MATERIAL_TXNS | Material transaction history | TRANSACTION_ID |
| Product / Inventory / Order Management / Shipping | DOO_HEADERS_ALL | Order orchestration header | HEADER_ID |
| Product / Inventory / Order Management / Shipping | DOO_LINES_ALL | Order orchestration line | LINE_ID |
| Product / Inventory / Order Management / Shipping | DOO_FULFILL_LINES_ALL | Order fulfillment line | FULFILL_LINE_ID |
| Product / Inventory / Order Management / Shipping | WSH_NEW_DELIVERIES | Shipping delivery | DELIVERY_ID |
| Product / Inventory / Order Management / Shipping | WSH_DELIVERY_DETAILS_V | Shipping delivery-detail view | Delivery-detail identity / source line context |
| Projects | |||
| Projects | PJF_PROJECTS_ALL_B | Project base identity | PROJECT_ID |
| Projects | PJF_PROJECTS_ALL_VL | Language-aware project view | PROJECT_ID |
| Projects | PJF_PROJ_ELEMENTS_B | Project/task element base | PROJ_ELEMENT_ID |
| Projects | PJF_PROJ_ELEMENTS_VL | Language-aware project/task element view | PROJ_ELEMENT_ID |
| Projects | PJC_EXP_ITEMS_ALL | Project expenditure/cost item | EXPENDITURE_ITEM_ID |
| Projects | PJB_CNTRCT_PROJ_LINKS | Contract-to-project/task association | Contract/project linkage |
| Projects | PJB_BILLING_EVENTS | Project/contract billing or revenue event | EVENT_ID |
| Foundation / Flexfields / Reference Data / Security | |||
| Foundation / Flexfields / Reference Data / Security | FND_LOOKUP_VALUES | Lookup codes and translated meanings | LOOKUP_TYPE + LOOKUP_CODE + language/set context |
| Foundation / Flexfields / Reference Data / Security | FND_SETID_SETS | Reference data set definition | SET_ID |
| Foundation / Flexfields / Reference Data / Security | FND_SETID_ASSIGNMENTS | Determinant/reference-group to SET_ID mapping | Assignment composite key |
| Foundation / Flexfields / Reference Data / Security | FND_VS_VALUE_SETS | Value-set definition | VALUE_SET_ID |
| Foundation / Flexfields / Reference Data / Security | FND_VS_VALUES_B | Value-set value | VALUE_ID / VALUE_SET_ID context |
| Foundation / Flexfields / Reference Data / Security | FND_DF_SEGMENTS_B | Descriptive flexfield segment metadata | DFF/context/segment key |
| Foundation / Flexfields / Reference Data / Security | FND_KF_SEGMENTS_B | Key flexfield segment metadata | Structure/segment key |
| Foundation / Flexfields / Reference Data / Security | PER_USERS | HCM application user/person relationship | USER_ID |
| Foundation / Flexfields / Reference Data / Security | FND_GRANTS | Application data-security grants | GRANT_ID |
| Foundation / Flexfields / Reference Data / Security | PER_SECURITY_PROFILES | HCM security-profile definition | SECURITY_PROFILE_ID |
| Foundation / Flexfields / Reference Data / Security | PER_PERSON_SECURED_LIST_V | Secured HCM person list view | Security-resolved person grain |
| Foundation / Flexfields / Reference Data / Security | PER_ASSIGNMENT_SECURED_LIST_V | Secured HCM assignment list view | Security-resolved assignment grain |
| Foundation / Flexfields / Reference Data / Security | CMP_SALARY_SECURED_LIST_V | Secured salary list view | Security-resolved salary grain |
| Interfaces / Diagnostics | |||
| Interfaces / Diagnostics | GL_INTERFACE | Journal Import staging/interface | Interface row; not final journal |
| Interfaces / Diagnostics | PO_HEADERS_INTERFACE | Purchasing document import header | Interface/import row |
| Interfaces / Diagnostics | AP_INVOICES_ALL_ | Documented AP invoice audit variant | Audit row |
| Interfaces / Diagnostics | AP_INVOICE_LINES_ALL_ | Documented AP invoice-line audit variant | Audit row |
Common Join Paths
1. Employee Directory
PER_ALL_PEOPLE_F → PER_PERSON_NAMES_F → PER_ALL_ASSIGNMENTS_M → PER_JOBS_F_VL
For department display text, resolve the organization translation at the same as-of date. For a current-only shortcut, use the appropriate current/language-aware organization view only if its built-in date behavior matches the report.
2. Employee → Manager
PER_ALL_ASSIGNMENTS_M → PER_ASSIGNMENT_SUPERVISORS_F → PER_PERSON_NAMES_F
Filter the supervisor relationship intentionally (for example the primary supervisor relationship required by your business rule) and date-filter both assignment and supervisor rows.
3. AP Invoice → Charge Distribution
AP_INVOICES_ALL → AP_INVOICE_LINES_ALL → AP_INVOICE_DISTRIBUTIONS_ALL → GL_CODE_COMBINATIONS
This is invoice/distribution analysis. It is not a substitute for SLA-to-GL accounting trace.
4. AP Invoice → Payment
AP_INVOICES_ALL → AP_INVOICE_PAYMENTS_ALL → AP_CHECKS_ALL
5. Purchase Order → Receipt
PO_HEADERS_ALL → PO_LINES_ALL → PO_LINE_LOCATIONS_ALL → PO_DISTRIBUTIONS_ALL → RCV_TRANSACTIONS
Use the deepest common key required for the reconciliation; receipt rows can reference PO header, line, schedule, and distribution.
6. Requisition → Purchase Order
POR_REQUISITION_LINES_ALL → POR_REQ_DISTRIBUTIONS_ALL → PO_DISTRIBUTIONS_ALL
PO_DISTRIBUTIONS_ALL.REQ_DISTRIBUTION_ID is the strong sourcing bridge when a PO distribution was autocreated from a requisition distribution.
7. Customer Account → Party Name
HZ_CUST_ACCOUNTS.PARTY_ID → HZ_PARTIES.PARTY_ID
8. Journal → Account
GL_JE_HEADERS → GL_JE_LINES → GL_CODE_COMBINATIONS
9. Item → On-Hand
EGP_SYSTEM_ITEMS_B → INV_ONHAND_QUANTITIES_DETAIL by item and organization.
Do not count on-hand rows. The detail table is maintained as receipt layers. Sum TRANSACTION_QUANTITY for rows matching the desired item/organization/subinventory/locator/lot control grain.
10. Project → Task → Cost
PJF_PROJECTS_ALL_B → PJF_PROJ_ELEMENTS_B → PJC_EXP_ITEMS_ALL
Use PJF_PROJECTS_ALL_VL / PJF_PROJ_ELEMENTS_VL when the report needs session-language names.
Common Mistakes About the Schema Itself
| Mistake | Why It's Wrong | Better Rule |
|---|---|---|
| Assuming EBS table names carry over unchanged | Some familiar objects were renamed or remodeled in Fusion. | Verify the current Oracle Fusion object before coding. |
| Treating suffixes as a grammar with guaranteed semantics | _M and _ALL are not universal contracts. | Inspect columns, keys, view definition, and module context. |
| Using PER_JOBS_VL / PER_GRADES_VL | Current HCM docs expose PER_JOBS_F_VL / PER_GRADES_F_VL. | Use current language-aware objects. |
| Using PER_ALL_WORK_RELATIONSHIPS_F | Current work-relationship business object is based on PER_PERIODS_OF_SERVICE. | Join assignment to PERIOD_OF_SERVICE_ID. |
| Using AP_SUPPLIER_SITES_ALL as the current supplier-site model | Current Procurement supplier sites are POZ_SUPPLIER_SITES_ALL_M. | Use POZ supplier model and TCA party identity. |
| Calling GL_PERIODS the period-status table | GL_PERIODS defines calendar periods. | Use GL_PERIOD_STATUSES for open/closed/future-enterable status. |
| Calling PJC_EXPENDITURE_ITEMS_ALL the current Project Costing table | Current documented object is PJC_EXP_ITEMS_ALL. | Use the current PJC object name. |
| Assuming HR_ALL_ORGANIZATION_UNITS_F has NAME | The base master table doesn't expose translated NAME. | Use the translation/current language layer appropriate to the report date. |
| Assuming PER_ALL_PEOPLE_F holds DOB and national ID | DOB is on PER_PERSONS; national identifiers have their own table. | Keep person sub-objects separate. |
| Treating physical BI Publisher SQL as automatically data-secured | Oracle explicitly says direct table SQL isn't automatically subject to HCM data-security restrictions. | Use secured list views when end-user security must be enforced. |
FAQ
Do I need to memorize all of these objects?
No. Memorize the business grains and relationship shapes. The table name becomes much easier to locate once you know whether the question belongs to person, assignment, work relationship, PO schedule, PO distribution, party, balance, or project expenditure grain.
Does _ALL mean “filter by ORG_ID”?
No. Many _ALL objects are shared across organizational scopes, but the scoping column and semantics are object-specific. AP uses ORG_ID in many transaction tables; Procurement can use PRC_BU_ID/REQ_BU_ID; Inventory uses inventory organization concepts.
Is _M just another spelling of _F?
No. Both can be date-effective, but you must inspect the actual model. PER_ALL_ASSIGNMENTS_M supports multiple changes per day through effective sequence/latest-change metadata.
Should I always use _VL?
Use it when its session-language/current or date-effective behavior matches your report. For historical translation joins, confirm that the view preserves the effective dates you need.
Does a correct physical join automatically reproduce Fusion security?
No. In HCM BI Publisher, Oracle explicitly distinguishes direct physical-table SQL from SQL joined to secured list views. Security must be designed deliberately.
Is this table list complete?
No table list can sensibly be “complete” for all Fusion products and releases. This guide intentionally focuses on the high-value objects and patterns that help you navigate the rest of Oracle's metadata reference.
Conclusion
This reference is now deliberately a physical-model field manual: it explains how to read Oracle's schema metadata, how to reason about row grain and keys, and how the major storage layers—effective dating, translations, flexfields, reference data, audit/interface tables, TCA and XLA—fit together. The SQL Guide turns those objects into working queries; the Mental Models guide explains the functional architecture above them.
Once those ideas are explicit, unfamiliar Oracle Fusion objects stop being guesses. They become candidates you can verify quickly against Oracle's metadata.
Explore the Fusion Data Model with FusionLens SQL
Browse Oracle Fusion tables and columns, inspect metadata, understand join candidates, and run BI Publisher-style SQL against your own Fusion connection without switching constantly between the editor and documentation.
Inspect tables, views, columns, descriptions, and data types.
Move from business question to the right reporting grain faster.
Validate joins and row counts against your own Fusion environment.