Oracle Fusion HCM Tables Guide

Share

Introduction

When working on any Oracle Fusion HCM Tables topic, one thing every consultant quickly realizes is this: understanding the data model is the foundation of reporting, integrations, and troubleshooting.

In real-world implementations, whether you are building OTBI reports, BI Publisher extracts, HDL validations, or OIC Gen 3 integrations — you will eventually deal with HCM tables. Even functional consultants often need table-level understanding to validate data, debug issues, or support technical teams.

In this blog, we will take a practical, consultant-level deep dive into Oracle Fusion HCM Tables, focusing on how they are used in real projects rather than just listing table names.


What are Oracle Fusion HCM Tables?

Oracle Fusion HCM tables are the backend database objects where all employee, organization, payroll, and talent data is stored.

Unlike legacy systems, Fusion uses:

  • Secure, multi-tenant cloud architecture

  • View-based access (secured views like PER_PERSONS, PER_ALL_PEOPLE_F)

  • Date-effective tables

  • Complex relationships between entities

In Fusion Cloud:

  • You do not directly access base tables

  • You work with:

    • BI Views (secured views)

    • OTBI subject areas

    • BI Publisher data models

    • HCM Extracts


Why Understanding HCM Tables is Critical

From implementation experience, here are the top reasons:

Use CaseWhy Tables Matter
Reporting (OTBI/BIP)You need joins between tables
Integrations (OIC Gen 3)APIs map to backend tables
HDL Data LoadsData structure matches table design
Debugging IssuesYou trace data inconsistencies
Security TroubleshootingRole-based data filters apply

Key Oracle Fusion HCM Tables (Core Data Model)

Let’s break down the most important tables every consultant must know.


1. Person and Employee Tables

https://docs.oracle.com/cd/E28271_01/fusionapps.1111/e20378/graphics/hrc_security_datarole_03_10410765.png
https://media.licdn.com/dms/image/v2/D4D22AQFcgL9HOlwpsQ/feedshare-shrink_480/B4DZu3eJK.JsAY-/0/1768309691664?e=2147483647&t=ku_trmdJUp-xHEVpjEuKUVJZ4I9B7pJljJXXWTN21l0&v=beta
https://docs.oracle.com/cd/E15586_01/fusionapps.1111/e20380/graphics/per_defwrkrecs_avlb_howitworks2_01_7945318.png
4
Table NameDescription
PER_ALL_PEOPLE_FCore person information (date-effective)
PER_PERSON_NAMES_FPerson names (first name, last name)
PER_PERSONSNon-date effective person record
PER_EMAIL_ADDRESSESEmail details
PER_PHONESPhone numbers

Key Insight (Real Project Tip)

In most reports:

  • PER_ALL_PEOPLE_F + PER_PERSON_NAMES_F are always joined

  • Use:

 
PERSON_ID
EFFECTIVE_START_DATE
EFFECTIVE_END_DATE
 

2. Assignment Tables

https://miro.medium.com/1%2Axne5Flh9V3hYlCfu6bmHXA.png
https://image.slidesharecdn.com/hcmtablestructurefinal-230617092348-50ccde65/75/Oracle-Cloud-Human-Capital-Management-Table-Structure-19-2048.jpg
https://docs.oracle.com/cd/E29597_01/fusionapps.1111/e20433/graphics/fnd_flex_sdbx_03_10029978.png
4
Table NameDescription
PER_ALL_ASSIGNMENTS_MCore assignment details
PER_ASSIGNMENT_SUPERVISORS_FManager details
PER_ASSIGNMENT_STATUS_TYPESAssignment status

Practical Insight

Every employee must have at least one assignment.

Common joins:

 
PER_ALL_PEOPLE_F.PERSON_ID = PER_ALL_ASSIGNMENTS_M.PERSON_ID
 

3. Organization Tables

https://docs.oracle.com/en/cloud/saas/human-resources/faigh/images/per_tree_organization.png
https://docs.oracle.com/cd/E15586_01/fusionapps.1111/e20380/graphics/per_defwrkrecs_avlb_howitworks2_01_7945318.png
https://docs.oracle.com/en/cloud/saas/talent-management/faitm/images/per_tree_organization.png
4
Table NameDescription
HR_ALL_ORGANIZATION_UNITS_FDepartments/business units
HR_ORGANIZATION_UNITS_F_TLTranslated names
PER_DEPARTMENTSDepartment details

4. Job and Position Tables

Table NameDescription
PER_JOBS_FJob definitions
HR_ALL_POSITIONS_FPosition details
PER_POSITION_HIERARCHIESPosition hierarchy

5. Payroll Tables

https://screenshots.scribd.com/Scribd/252_100_85/189/231388368/6.jpeg
https://docs.oracle.com/en/cloud/saas/human-resources/faipq/images/PAY_OrgModelsusan_02_20066136.png
https://docs.oracle.com/cd/E29597_01/fusionapps.1111/e20379/graphics/pay_udt_range_example_9976512.png
4
Table NameDescription
PAY_ELEMENT_ENTRIES_FEmployee earnings/deductions
PAY_INPUT_VALUES_FInput values for elements
PAY_RUN_RESULTSPayroll results
PAY_PAYROLL_ACTIONSPayroll processing runs

6. Absence and Leave Tables

Table NameDescription
ANC_PER_ABS_ENTRIESAbsence records
ANC_ABSENCE_PLANS_FLeave plans
ANC_ABSENCE_TYPES_FLeave types

7. Talent Management Tables

Table NameDescription
HRT_PROFILES_BTalent profiles
HRT_PROFILE_ITEMSSkills, qualifications
HRA_EVALUATIONSPerformance evaluations

Real-World Integration Use Cases

Scenario 1: Employee Master Integration

In an OIC Gen 3 project:

  • Extract data from:

    • PER_ALL_PEOPLE_F

    • PER_ALL_ASSIGNMENTS_M

  • Send to third-party system

Challenge: Handling date-effective records
Solution: Filter using:

 
SYSDATE BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
 

Scenario 2: Payroll Reporting

Client requirement:

  • Monthly salary report

Tables used:

  • PAY_RUN_RESULTS

  • PAY_ELEMENT_ENTRIES_F


Scenario 3: Manager Hierarchy Report

Tables used:

  • PER_ASSIGNMENT_SUPERVISORS_F

  • PER_ALL_ASSIGNMENTS_M


Architecture / Technical Flow

https://docs.oracle.com/cd/E29505_01/fusionapps.1111/e21363/images/graphics/OTBI_Arch.gif
https://docs.oracle.com/cd/E36909_01/fusionapps.1111/e21363/images/graphics/OTBI_Arch.gif
https://docs.oracle.com/en/solutions/oci-bulk-data-integration/img/oci-bulk-data-integration-architecture-diagram.png
4

Flow:

  1. Data stored in Base Tables

  2. Exposed via Secured Views

  3. Used in:

    • OTBI

    • BI Publisher

    • HCM Extracts

    • REST APIs


Prerequisites

Before working with HCM tables:

  • Access to:

    • BI Publisher

    • OTBI

  • Knowledge of:

    • SQL joins

    • Date-effective logic

  • Understanding of:

    • HCM business processes


Step-by-Step Example: Build a BI Report Using HCM Tables

Step 1 – Navigate to BI Publisher

Navigator → Tools → Reports and Analytics


Step 2 – Create Data Model

Use SQL:

 
SELECT
papf.PERSON_ID,
ppnf.FIRST_NAME,
ppnf.LAST_NAME,
paam.ASSIGNMENT_NUMBER
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
AND SYSDATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
 

Step 3 – Create Report Layout

  • Use RTF Template

  • Map fields


Step 4 – Run Report

Expected Output:

  • Employee Name

  • Assignment Number


Testing the Data

Example Test Case

ScenarioExpected Result
Active EmployeeRecord should appear
Terminated EmployeeShould not appear
Future HireShould not appear

Common Implementation Challenges

1. Date-Effective Confusion

Most tables use:

  • EFFECTIVE_START_DATE

  • EFFECTIVE_END_DATE

2. Duplicate Records

Occurs due to:

  • Multiple assignments

  • Multiple name records

3. Secured Views

You may not see all data due to:

  • Role-based security


Best Practices (Consultant Tips)

1. Always Use Date Filters

Never query without:

 
SYSDATE BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
 

2. Avoid Base Tables

Use:

  • Secured Views

  • OTBI


3. Use Aliases Clearly

Example:

 
papf → person
paam → assignment
 

4. Validate with UI

Always cross-check:

  • Frontend data

  • Backend query


5. Use Incremental Logic in Integrations

For OIC Gen 3:

  • Use last update date filters


Frequently Asked Interview Questions

1. What is PER_ALL_PEOPLE_F?

It stores core person data and is date-effective.


2. Difference between PER_ALL_PEOPLE_F and PER_PERSONS?

  • PER_ALL_PEOPLE_F → date-effective

  • PER_PERSONS → static data


3. What is PER_ALL_ASSIGNMENTS_M?

Stores employee assignment data.


4. What is date-effective table?

A table where records have start and end dates.


5. How to get active employee data?

Use:

 
SYSDATE BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
 

6. What is secured view?

A view that enforces data security.


7. Which tables store payroll data?

PAY_RUN_RESULTS, PAY_ELEMENT_ENTRIES_F


8. How to get manager details?

Use PER_ASSIGNMENT_SUPERVISORS_F


9. What is PERSON_ID?

Unique identifier for employee


10. Difference between JOB and POSITION?

  • Job → generic role

  • Position → specific role instance


Real Implementation Scenarios

Scenario 1: Data Correction

Fix employee data mismatch by checking PER tables.

Scenario 2: Integration Failure

Missing assignment data → check PER_ALL_ASSIGNMENTS_M.

Scenario 3: Reporting Issue

Duplicate records → improper joins.


Expert Tips

  • Always understand business flow before querying tables

  • Avoid hardcoding values

  • Use views instead of tables wherever possible

  • Practice SQL on real scenarios


Summary

Understanding Oracle Fusion HCM Tables is not optional — it is a core skill for consultants.

Key takeaways:

  • Tables are the foundation of reporting and integrations

  • Date-effectivity is critical

  • Assignments drive employee structure

  • Always use secured views and filters

For more details, refer to Oracle documentation:
https://docs.oracle.com/en/cloud/saas/human-resources/index.html


FAQs

1. Can we directly access HCM tables in Fusion?

No, access is through secured views or reporting tools.


2. Which table is most important?

PER_ALL_PEOPLE_F and PER_ALL_ASSIGNMENTS_M.


3. Why do we get duplicate records?

Due to multiple date-effective entries or jo


Share

Leave a Reply

Your email address will not be published. Required fields are marked *