Important Tables in Oracle Fusion HCM
Understanding Important Tables in Oracle Fusion HCM is one of the most critical skills for any consultant working on reporting, integrations, or data migration. Even though Oracle Fusion is primarily a cloud-based application with abstracted data access through APIs and OTBI, real-world implementations still demand a strong understanding of backend tables—especially when working with BI Publisher (BIP), HDL validations, or troubleshooting data issues.
In this blog, we will take a practical consultant-level deep dive into the most important tables in Oracle Fusion HCM, where they are used, and how they play a role in real implementations.
What are Important Tables in Oracle Fusion HCM?
In Oracle Fusion HCM, data is stored in a relational structure within the Oracle database. These tables store employee, assignment, payroll, benefits, and organizational data.
Unlike legacy systems like EBS:
- Direct DB access is restricted
- Tables are primarily accessed via:
- BI Publisher (BIP)
- OTBI (Oracle Transactional Business Intelligence)
- HCM Extracts
- REST/SOAP APIs
However, knowing tables helps in:
- Writing advanced BIP queries
- Troubleshooting data inconsistencies
- Understanding HDL data loading
- Supporting integrations via OIC Gen 3
Why Important Tables Matter in Real Projects
From a consultant’s perspective, you will frequently encounter scenarios like:
- “Employee not visible in report”
- “Assignment status mismatch”
- “Payroll data not syncing with external system”
- “HDL load failing due to data validation”
In all these cases, understanding backend tables becomes essential.
Key Categories of HCM Tables
Oracle Fusion HCM tables can be grouped into the following major categories:
| Category | Description |
|---|---|
| Person Tables | Store employee personal information |
| Assignment Tables | Job and employment details |
| Organization Tables | Departments and business units |
| Payroll Tables | Salary and payroll data |
| Benefits Tables | Benefits enrollment |
| Security Tables | User roles and access |
Core Person Tables in Oracle Fusion HCM
1. PER_ALL_PEOPLE_F
This is the most important table in HCM.
Purpose: Stores core person information.
Key Columns:
- PERSON_ID
- PERSON_NUMBER
- DATE_OF_BIRTH
- EFFECTIVE_START_DATE / END_DATE
Real Example:
When building a BIP report for employee details, this table is always the starting point.
2. PER_PERSON_NAMES_F
Purpose: Stores employee names.
Key Columns:
- PERSON_ID
- FIRST_NAME
- LAST_NAME
- FULL_NAME
Consultant Tip:
Always join with PER_ALL_PEOPLE_F using PERSON_ID.
3. PER_EMAIL_ADDRESSES
Purpose: Stores employee email information.
Common Use Case:
Used in integrations where employee communication details are required.
Assignment Tables (Most Critical for HR Processes)
4. PER_ALL_ASSIGNMENTS_M
Purpose: Stores assignment details like job, department, and status.
Key Columns:
- ASSIGNMENT_ID
- PERSON_ID
- JOB_ID
- DEPARTMENT_ID
- ASSIGNMENT_STATUS_TYPE
Real Implementation Scenario:
In a client project, payroll was failing because the assignment status was not “Active Payroll Eligible.” This table helped identify incorrect status.
5. PER_ASSIGNMENT_STATUS_TYPES
Purpose: Defines assignment statuses.
Example Values:
- Active
- Suspended
- Terminated
Organization Tables
6. HR_ORGANIZATION_UNITS_F
Purpose: Stores departments and organizations.
Key Columns:
- ORGANIZATION_ID
- NAME
- TYPE
7. HR_ALL_ORGANIZATION_UNITS_F_TL
Purpose: Stores translated organization names.
Use Case:
Needed when working in multi-language environments.
Job and Position Tables
8. PER_JOBS_F
Purpose: Stores job definitions.
Key Columns:
- JOB_ID
- JOB_NAME
- JOB_CODE
9. PER_POSITIONS
Purpose: Stores position details.
Use Case:
Used in position-based organizations.
Payroll Tables
10. PAY_ALL_PAYROLLS_F
Purpose: Payroll definitions.
11. PAY_ELEMENT_ENTRIES_F
Purpose: Stores employee earnings and deductions.
Example:
- Basic Salary
- Bonus
- Allowances
12. PAY_RUN_RESULTS
Purpose: Stores payroll calculation results.
Real Scenario:
Used in reporting salary slips via BIP.
Benefits Tables
13. BEN_PRTT_ENRT_RSLT
Purpose: Stores benefit enrollment results.
User and Security Tables
14. PER_USERS
Purpose: Stores application user details.
15. PER_USER_ROLES
Purpose: Maps users to roles.
Real-World Integration Use Cases
Use Case 1: Employee Data Integration with External System
- Source Tables:
- PER_ALL_PEOPLE_F
- PER_ALL_ASSIGNMENTS_M
- PER_EMAIL_ADDRESSES
- Integration Tool:
- OIC Gen 3
Use Case 2: Payroll Report Generation
- Tables Used:
- PAY_RUN_RESULTS
- PAY_ELEMENT_ENTRIES_F
- Output:
- Payslip via BI Publisher
Use Case 3: Organizational Hierarchy Reporting
- Tables Used:
- HR_ORGANIZATION_UNITS_F
- PER_ALL_ASSIGNMENTS_M
Table Relationships (Important for Reporting)
Typical join structure:
- PER_ALL_PEOPLE_F → PER_PERSON_NAMES_F
- PER_ALL_PEOPLE_F → PER_ALL_ASSIGNMENTS_M
- PER_ALL_ASSIGNMENTS_M → HR_ORGANIZATION_UNITS_F
Consultant Insight:
Always use PERSON_ID and ASSIGNMENT_ID as primary join keys.
Prerequisites for Working with Tables
Before accessing these tables:
- BI Publisher access
- Data model creation privileges
- SQL knowledge
- Understanding of effective dating
Step-by-Step: Creating a BIP Report Using Tables
Step 1 – Navigate
Navigator → Tools → Reports and Analytics
Step 2 – Create Data Model
- Choose SQL Query
- Enter query:
ppnf.full_name,
paam.assignment_status_type
FROM per_all_people_f papf,
per_person_names_f ppnf,
per_all_assignments_m paam
WHERE papf.person_id = ppnf.person_id
AND papf.person_id = paam.person_id;
Step 3 – Define Parameters
- Person Number (Optional)
Step 4 – Create Report Layout
- Use RTF Template
Step 5 – Save and Run
Testing the Setup
Test Scenario
- Input: Employee Number
- Expected Output:
- Name
- Assignment Status
Validation Checks
- Check active records (effective dates)
- Validate assignment status
Common Implementation Challenges
1. Effective Dating Confusion
Most tables are date-effective.
Solution: Always filter using:
2. Duplicate Records
Due to multiple assignments.
3. Missing Data in Reports
Cause:
- Wrong join condition
- Incorrect table selection
Best Practices from Real Projects
1. Always Use Views When Available
Prefer secured views like:
- PER_PERSON_SECURED_LIST_V
2. Avoid Hardcoding IDs
Use joins instead of static values.
3. Use Effective Date Filters
Critical for accurate reporting.
4. Validate with UI
Always cross-check report data with Fusion UI.
5. Use Aliases for Readability
Improves maintainability of SQL queries.
Frequently Asked Questions (FAQ)
1. Can we directly access Oracle Fusion tables?
No. Access is restricted. You can use BIP, OTBI, or APIs.
2. Which table is most important in HCM?
PER_ALL_PEOPLE_F is the core table for employee data.
3. How do we handle effective-dated tables?
Always use date filters to fetch current records.
Summary
Understanding Important Tables in Oracle Fusion HCM is essential for any consultant working on reporting, integrations, or troubleshooting.
In real implementations, tables like:
- PER_ALL_PEOPLE_F
- PER_ALL_ASSIGNMENTS_M
- PAY_RUN_RESULTS
are used almost daily.
A strong grasp of these tables allows you to:
- Build accurate reports
- Debug production issues
- Design efficient integrations
For deeper reference, always consult Oracle’s official documentation:
https://docs.oracle.com/en/cloud/saas/human-resources/index.html
Also refer to the uploaded reference for structured guidance