Oracle Fusion HCM : HDL
Showing posts with label HDL. Show all posts
Showing posts with label HDL. Show all posts

Saturday, 21 March 2026

🧾 Element Eligibility Costing in Oracle HCM Using HDL (Complete Guide with Example)

Element Eligibility Costing in Oracle HCM | HDL Step-by-Step Guide

πŸ“Œ Overview

Element Eligibility Costing in Oracle HCM Cloud allows organizations to define how payroll costs are distributed to accounting segments at the element level.

Using HCM Data Loader (HDL), you can:

  • Assign costing to element eligibility
  • Define cost and offset accounts
  • Distribute costs across earning elements
  • Transfer costing to General Ledger

This is critical when payroll results impact:
✔ Net Pay
✔ Employer Liabilities
✔ Financial Reporting


🎯 When to Use Element Eligibility Costing?

Use this method when:

  • Costs must be controlled at element level
  • You want distributed costing
  • Employer liabilities need tracking (e.g., pension, insurance)
  • Finance requires GL integration

⚙️ Prerequisites

Before loading costing via HDL, ensure:

  • ✔ Cost Allocation Key Flexfield is configured
  • ✔ Element eligibility is created
  • ✔ Distribution Group is defined
  • ✔ Earning elements (Regular, Overtime) exist
  • ✔ Payroll setup is complete

πŸ—️ Costing Architecture Explained

πŸ”Ή Key Components

  • CostInfoV3 → Defines costing behavior
  • CostAllocationV3 → Creates costing structure
  • CostAllocationAccountV3 → Defines accounts

πŸ“Š Example Scenario 

A company wants to:

  • Cost Employer Pension Expense
  • Distribute cost across Pensionable Wages
  • Send results to General Ledger

πŸ“ HDL File 1: Cost Info

METADATA|CostInfoV3|EffectiveEndDate|EffectiveStartDate|SourceType
|ElementEligibilityName|ElementCode|LinkInputName|LegislativeDataGroupName
|CostableType|CostedFlag|TransferToGlFlag
MERGE|CostInfoV3|4712/12/31|2020/01/01|EL|EMP_PENSION_EXP_ELIG|EMP_PENSION_EXP
||CORP_US_LDG|F||N
MERGE|CostInfoV3|4712/12/31|2020/01/01|LIV|EMP_PENSION_EXP_ELIG|EMP_PENSION_EXP
|Pay Value|CORP_US_LDG||Y|Y

πŸ“ HDL File 2: Cost Allocation

METADATA|CostAllocationV3|EffectiveEndDate|EffectiveStartDate|SourceType
|ElementEligibilityName|ElementCode|LegislativeDataGroupName
MERGE|CostAllocationV3|4712/12/31|2020/01/01|EL|EMP_PENSION_EXP_ELIG
|EMP_PENSION_EXP|CORP_US_LDG

πŸ“ HDL File 3: Cost Allocation Accounts

πŸ”Ή Cost Account (Expense)

METADATA|CostAllocationAccountV3|SourceType|ElementEligibilityName|
ElementCode|LegislativeDataGroupName|EffectiveDate|SourceSubType|Proportion
|SubTypeSequence|Segment3|Segment4|Segment5
MERGE|CostAllocationAccountV3|EL|EMP_PENSION_EXP_ELIG|EMP_PENSION_EXP
|CORP_US_LDG|2020/01/01|COST|1|1|6000|1100|2000

πŸ”Ή Offset Account (Liability)

METADATA|CostAllocationAccountV3|SourceType|ElementEligibilityName|
ElementCode|LegislativeDataGroupName|EffectiveDate|SourceSubType|Proportion
|SubTypeSequence|ConcatenatedSegment
MERGE|CostAllocationAccountV3|EL|EMP_PENSION_EXP_ELIG|EMP_PENSION_EXP|
CORP_US_LDG|2020/01/01|BAL|1|1|01.100.2150

πŸ”„ Costing Flow (Simplified)

Costing flow in Oracle HCM
Costing flow in Oracle HCM



πŸ”— Internal Links 


❗ Key Notes

  • Higher-level costing overrides element-level values
  • Distributed costing generates multiple costing lines
  • Always validate segments before loading
  • Costed input value (e.g., Pay Value) is mandatory


❓ FAQ Section

1. What is element eligibility costing?

It defines how payroll costs are assigned at the element level.

2. What is distributed costing?

It spreads costs across multiple elements using a distribution group.

3. Can costing be overridden?

Yes, higher-level costing overrides lower levels.

4. What is CostInfoV3?

It defines costing behavior and flags like costing and GL transfer.

5. Is Pay Value required?

Yes, it is the most common costed input value.


πŸ’¬ Feedback Section (Add in Blog)

Did this guide help you?
πŸ‘ Yes | πŸ‘Ž No

πŸ’‘ Suggestions:

  • More HDL examples
  • Video tutorial
  • Real-time project scenarios


πŸ§‘‍πŸ’Ό Oracle HCM: Load Contingent Worker Using HDL (Complete Guide with Example)

 

Oracle Worker.dat HDL Template with Example | Oracle Fusion HCM Guide

πŸ“Œ Overview

In Oracle HCM Cloud, contingent workers (contractors, freelancers, temporary staff) are managed as non-payroll resources. These workers are:

  • Identified with “C” (Contingent Worker type)
  • Not processed through payroll
  • Can submit expenses
  • Can be converted into employees

Using HCM Data Loader (HDL), you can efficiently load contingent worker data in bulk.


🎯 When to Use Contingent Worker HDL Load?

Use HDL when:

  • Migrating contractor data from legacy systems
  • Hiring bulk contingent workforce
  • Integrating third-party vendor workers
  • Managing project-based workforce

🎯 Employee Vs Contingent Worker Comparison

Employee Vs Contingent Worer



πŸ”Ή Prerequisites 

Before you start:

  1. Work structure must be loaded

    Click here for a sample Work Structure

  2. You must have a Source Key defined. In earlier blogs, we created “XXTEST” as our source key.

  3. Download the object templates from your instance:

Navigator → My Client Group → Data Exchange → View Business Objects

🎯 When to Use Contingent Worker HDL Load?🧩 Key HDL Components for Contingent Worker

To successfully load a contingent worker, you must include:

ComponentPurpose
WorkerCore person record
PersonNameWorker name details
PersonEmailEmail information
PersonNationalIdentifierID (SSN, PAN, etc.)
PersonLegislativeDataGender, marital status
WorkRelationshipEmployment relationship
WorkTermsTerms of work
AssignmentJob assignment

πŸ“„ Sample HDL File For Contingent Worker

Below is a ready-to-use HDL template for loading a contingent worker:

METADATA|Worker|SourceSystemOwner|SourceSystemId|EffectiveStartDate
|EffectiveEndDate|PersonNumber|ActionCode|StartDate|DateOfBirth MERGE|Worker|XXTEST|XXTEST_PER2|2018/01/01|4712/12/31|XXTEST2|HIRE
|2018/01/01|1975/01/01

METADATA|PersonName|SourceSystemOwner|SourceSystemId|PersonId(SourceSystemId)
|EffectiveStartDate|EffectiveEndDate|LegislationCode|NameType|FirstName
|MiddleNames|LastName|Title
MERGE|PersonName|XXTEST|XXTEST_PERNAME2|XXTEST_PER2|2018/01/01
|4712/12/31|US|GLOBAL|AdamCWK||Baro|MR.

METADATA|PersonNationalIdentifier|SourceSystemOwner|SourceSystemId
|PersonId(SourceSystemId)|LegislationCode|IssueDate|ExpirationDate
|NationalIdentifierType|NationalIdentifierNumber|PrimaryFlag MERGE|PersonNationalIdentifier|XXTEST|XXTEST_NID2|XXTEST_PER2|US
|||SSN|456-24-4167|Y

METADATA|PersonEmail|SourceSystemOwner|SourceSystemId|
PersonId(SourceSystemId)|DateFrom|DateTo|EmailType|EmailAddress
|PrimaryFlag MERGE|PersonEmail|XXTEST|XXTEST_EMAIL2|XXTEST_PER2|2018/01/01|
4712/12/31|W1|AdamCWK.baro@ha.com|Y
METADATA|PersonLegislativeData|SourceSystemOwner|SourceSystemId
|EffectiveStartDate|EffectiveEndDate|PersonId(SourceSystemId)|
LegislationCode|MaritalStatus|MaritalStatusDate|Sex MERGE|PersonLegislativeData|XXTEST|XXTEST_LEG2|2018/01/01|4712/12/31
|XXTEST_PER2|US|M|1998/05/12|M

METADATA|WorkRelationship|SourceSystemOwner|SourceSystemId
|PersonId(SourceSystemId)|LegalEmployerName|DateStart|
EnterpriseSeniorityDate|LegalEmployerSeniorityDate|ActualTerminationDate
|Comments|LastWorkingDate|NotifiedTerminationDate|PrimaryFlag|
ProjectedTerminationDate|RehireAuthorizerPersonId|RehireAuthorizor
|RehireReason|WorkerNumber|WorkerType|OnMilitaryServiceFlag|
RehireRecommendationFlag MERGE|WorkRelationship|XXTEST|XXTEST_PDSERVICE2|XXTEST_PER2|
US1 Legal Entity|2018/01/01|||||||Y|||||XXTEST2|C|N|Y
METADATA|WorkTerms|ActionCode|SourceSystemOwner|SourceSystemId
|EffectiveStartDate|EffectiveEndDate|EffectiveSequence|
EffectiveLatestChange|AssignmentName|AssignmentNumber|
AssignmentStatusTypeCode|AssignmentType|BusinessUnitShortCode|
PositionOverrideFlag|PrimaryWorkTermsFlag|PeriodOfServiceId(SourceSystemId)
|PersonId(SourceSystemId)|LegalEmployerName|SystemPersonType|
ProposedUserPersonType
MERGE|WorkTerms|HIRE|XXTEST|XXTEST_WRKTERM2|2018/01/01|4712/12/31
|1|Y||XXTEST_WRKTERM2|ACTIVE_PROCESS|CT|US1 Business Unit|Y|Y|
XXTEST_PDSERVICE2|XXTEST_PER2|US1 Legal Entity||Contingent Worker

METADATA|Assignment|ActionCode|SourceSystemOwner|SourceSystemId
|EffectiveStartDate|EffectiveEndDate|EffectiveSequence|
EffectiveLatestChange|AssignmentName|AssignmentNumber|
AssignmentStatusTypeCode|AssignmentType|BusinessUnitShortCode|
PositionOverrideFlag|PrimaryAssignmentFlag|PrimaryFlag|
SystemPersonType|LegalEmployerName|JobId(SourceSystemId)|
LocationCode|OrganizationId(SourceSystemId)|PositionId(SourceSystemId)
|GradeId(SourceSystemId)|PeriodOfServiceId(SourceSystemId)|
PersonId(SourceSystemId)|PersonTypeCode|ManagerFlag|
LabourUnionMemberFlag|WorkTermsAssignmentId(SourceSystemId)|
AssignmentCategory|Frequency|HourlySalariedCode|NormalHours|NoticePeriod
|ProbationPeriod|ProbationUnit|ReasonCode|WorkerType
MERGE|Assignment|HIRE|XXTEST|XXTEST_ASSIGN2|2018/01/01|
4712/12/31|1|Y|E-XXTEST2|XXTEST_ASSIGN2|ACTIVE_PROCESS|C|
US1 Business Unit|Y|Y|Y|CWK|US1 Legal Entity|XXTEST_JOB1|ComUSHQ|
XXTEST_DEPT1||XXTEST_GRADE01|XXTEST_PDSERVICE1|XXTEST_PER2||Y|N
|XXTEST_WRKTERM2|FR|W|S|40|0|||NEWHIRE|C



πŸ”Ή Steps to Load Worker.dat in Oracle Fusion

  1. Save all HDL objects as Worker.dat

  2. Create a zip file containing Worker.dat and all other HDL files

  3. Navigate to:

Navigator → My Client Group → Data Exchange → Import and LoadImport

  1. Upload the zip file

  2. Refresh page to verify load status

  3. Once successfully loaded, confirm work structure is updated correctly

πŸŽ₯ Step-by-step video guide is available here


⚠️ Important Considerations

  • WorkerType must be “C” (Contingent Worker)
  • AssignmentType must be “C” or “CT”
  • No payroll setup required
  • Ensure Legal Employer & Business Unit exist
  • Use unique SourceSystemId

πŸ”— Internal Links 

πŸ‘‰ Payroll Related Blogs:

πŸ‘‰ HDL Guides:


❓ FAQ Section 

1. What is a contingent worker in Oracle HCM?

A contingent worker is a non-payroll worker such as a contractor or freelancer managed in Oracle HCM.


2. What is WorkerType “C” in HDL?

WorkerType “C” represents a Contingent Worker.


3. Can contingent workers be converted to employees?

Yes, Oracle HCM provides conversion flows to convert contingent workers into employees.


4. Do contingent workers run through payroll?

No, contingent workers are non-payroll resources.


5. What is AssignmentType for contingent workers?

AssignmentType is usually C (Contingent) or CT (Contingent Terms).


6. Is WorkTerms mandatory for contingent workers?

Yes, WorkTerms define the structure of assignment and must be included.


7. Can we load contingent workers using HSDL?

Yes, but HDL is preferred for bulk and complex loads.


8. What happens if WorkerType is incorrect?

The load will fail or create incorrect worker classification.

Wednesday, 4 February 2026

πŸ” How to Lock and Unlock User Accounts Using HDL in Oracle Fusion HCM (Step-by-Step Guide)

 Step-by-Step Instructions for Administrators

Locking and unlocking user accounts is a common requirement for Oracle Fusion HCM administrators. Whether an employee has left the organization, access must be temporarily restricted, or security compliance requires action, Oracle HCM provides a simple way to lock/unlock accounts using HCM Data Loader (HDL).

In this blog, you’ll learn how to lock and unlock user accounts using HDL, along with the required HDL file format, steps to load it, and the process required to apply changes.


✅ Prerequisites

Before you begin, make sure you have:

  • Access to perform HDL operations

  • Valid Person Numbers for users you want to lock/unlock

  • Access to run required ESS process (Send Pending LDAP Requests)

  • Admin privileges to verify the user status


πŸ”’ Locking a User Account Using HDL

To lock a user account in Oracle Fusion HCM, you need to set the Suspended flag = Y in the User HDL file.


Step 1: Prepare the HDL File (User.dat)

Use the following format:

METADATA|User|PersonNumber|Suspended MERGE|User|<Enter Person Number>|Y

Example:

METADATA|User|PersonNumber|Suspended MERGE|User|E12345|Y

Step 2: Save and Compress the File

  1. Save the file as: User.dat

  2. Compress it into a ZIP file:

    • Example ZIP name: LockUser.zip


Step 3: Upload the HDL File

Navigate to:

My Client Groups → Data Exchange → HCM Data Loader → Import and Load

Then:

  1. Click Import File

  2. Upload the ZIP file

  3. Submit the load


Step 4: Run Required Process (Very Important)

After HDL loads successfully, you must run:

Send Pending LDAP Requests

This process applies the account changes to the LDAP directory.


Step 5: Verify User is Locked

Go to:

Setup and Maintenance → Create Implementation User

Search using the person number / username and confirm the account is locked.


πŸ”“ Unlocking a User Account Using HDL

To unlock a user account, set the Suspended flag = N.


Step 1: Prepare the HDL File (User.dat)

METADATA|User|PersonNumber|Suspended MERGE|User|<Enter Person Number>|N

Example:

METADATA|User|PersonNumber|Suspended MERGE|User|E12345|N

Step 2: Save and Compress the File

  1. Save as User.dat

  2. Zip it:

    • Example ZIP name: UnlockUser.zip


Step 3: Upload the HDL File

Navigate to:

My Client Groups → Data Exchange → HCM Data Loader → Import and Load

  1. Click Import File

  2. Upload ZIP file

  3. Submit


Step 4: Run Required Process (Very Important)

After HDL loads successfully, you must run:

✅ Send Pending LDAP Requests

This process applies the account changes to the LDAP directory.


Step 5: Verify User is Unlocked

Go to:

Setup and Maintenance → Create Implementation User

Confirm the user is now active/unlocked.


⭐ Best Practices and Recommendations

  • Always double-check the Person Number before locking/unlocking

  • Keep an audit log of user account changes

  • Notify users when their account is unlocked (unless security policy says otherwise)

  • Regularly review locked accounts to avoid unnecessary access restrictions

  • Run Send Pending LDAP Requests after every HDL user suspension change


⚠️ Common Issues and Troubleshooting

Issue 1: HDL loads successfully but user is still active

✅ Solution:
Run Send Pending LDAP Requests process.


Issue 2: Person number not found

✅ Solution:
Confirm the person exists and has a user account created.


Issue 3: Changes not reflecting immediately

✅ Solution:
LDAP sync may take time. Wait 5–10 minutes after process completion.


πŸ“Œ FAQ

1. Can we lock a user account in Oracle Fusion HCM using HDL?

Yes. You can lock a user account using HDL by setting the field Suspended = Y in User.dat.


2. What HDL object is used to lock/unlock users?

The HDL object used is:

User


3. What does the Suspended flag mean in HDL?

  • Y = user is locked/suspended

  • N = user is active/unlocked


4. Do we need to run any process after loading HDL?

Yes. You must run:

Send Pending LDAP Requests


5. Where can we verify if a user is locked/unlocked?

You can verify in:

Setup and Maintenance → Create Implementation User


6. Can we lock multiple users in one HDL file?

Yes. Add multiple MERGE lines:

METADATA|User|PersonNumber|Suspended MERGE|User|E1001|Y MERGE|User|E1002|Y MERGE|User|E1003|Y

7. Is locking a user same as terminating an employee?

No. Locking only disables login access. Termination affects employment and HR records.


✅ Conclusion

Locking and unlocking user accounts using HDL is one of the fastest and cleanest methods available for Oracle Fusion HCM administrators. By updating the Suspended flag and running Send Pending LDAP Requests, you can manage user access securely and efficiently.

Thursday, 19 January 2023

HDL Template to Absence Entry of Worker


✅ Oracle HCM HDL: Load Worker Absence Entry (PersonAbsenceEntry.dat) – Template + Examples

Absence management is one of the most common business requirements in Oracle Fusion HCM. If you need to load absence entries for employees in bulk (Sick leave, Earned leave, Casual leave, etc.), Oracle provides the HDL object:

πŸ‘‰ PersonAbsenceEntry (and its child object PersonAbsenceEntryDetail)

This post provides a complete HDL template with real working examples, along with prerequisites, common issues, and FAQ.


⭐ What is PersonAbsenceEntry in Oracle HDL?

PersonAbsenceEntry is an HDL business object used to create or update worker absence entries in Oracle Fusion HCM.

It supports:

  • Absence Type (Sick, Annual Leave, etc.)

  • Absence dates and time

  • Absence status + approval status

  • Assignment-level detail (via PersonAbsenceEntryDetail)


✅ Prerequisites (Important)

Before loading absence entry using HDL, verify:

1) Worker must exist

The PersonNumber must be valid.

2) Absence Plan must be enrolled first

If the worker is not enrolled in the absence plan, the absence entry load may fail.

✅ Example errors:

  • Plan not enrolled

  • Absence type not eligible

  • No accrual available

3) Absence Type must exist

Absence Type should be configured in:
Absence Administration → Absence Types

4) Employer / Legal Entity should match worker

Use correct employer name.


πŸ“‚ HDL File Name

πŸ“Œ File Name:
PersonAbsenceEntry.dat


🧾 HDL Sample Template: PersonAbsenceEntry

This is the main absence entry record.

METADATA|PersonAbsenceEntry|Employer|PersonNumber|AbsenceType|AbsenceReason|AbsenceStatus|ApprovalStatus|StartDatetime|EndDatetime|StartDate|StartTime|EndDate|EndTime|SourceSystemOwner|SourceSystemId

MERGE|PersonAbsenceEntry|US3 Legal Entity|XXTEST2|Sick||SUBMITTED|APPROVED||2021/07/12 08:00:00|2021/07/12|08:00|2021/07/12|16:30|XXTEST|XXTEST2_SICK1



πŸ” Explanation of Key Fields

  • AbsenceType: Example: Sick, Annual Leave, etc.

  • AbsenceStatus: Usually SUBMITTED

  • ApprovalStatus: APPROVED / PENDING

  • StartDatetime / EndDatetime: Used for date+time entry

  • StartDate / EndDate: Used for date only entries

  • SourceSystemOwner / SourceSystemId: Must be unique per absence record


🧾 HDL Sample Template: PersonAbsenceEntryDetail 

This object is used when you want to load daily/time details and connect absence to assignment.

METADATA|PersonAbsenceEntryDetail|AbsenceDate|Employer|PersonNumber|AbsenceType|AssignmentNumber|AbsenceStartDate|AbsenceStartTime|RowSeq|StartTime|EndTime|SourceSystemOwner|SourceSystemId

MERGE|PersonAbsenceEntryDetail|2021/07/12|US3 Legal Entity|XXTEST2|Sick|XXTEST_ASSIGN2-1|2021/07/12|08:00|1|06:00|16:30|XXTEST|XXTEST2_SICK1



⭐ Why PersonAbsenceEntryDetail is required?

You should use PersonAbsenceEntryDetail when:

✅ Absence is hourly
✅ Absence spans multiple dates
✅ You need assignment-level mapping
✅ You want exact daily breakdown


🧠 Recommended HDL Zip Structure

Your zip should look like this:

AbsenceEntryLoad.zip └── PersonAbsenceEntry.dat

Upload from:

Data Exchange → HCM Data Loader → Import and Load


⚠️ Common Errors and Fixes

❌ Error: Worker is not enrolled in absence plan

✅ Fix: Enroll the worker first in the plan.


❌ Error: Invalid Absence Type

✅ Fix: Verify Absence Type spelling and configuration.


❌ Error: SourceSystemId already exists

✅ Fix: Use unique SourceSystemId for each absence entry.


❌ Error: AssignmentNumber invalid

✅ Fix: Confirm assignment number from Person Management.


πŸ”— Internal Links 



πŸ’¬ Feedback & Comments

If this absence entry HDL template helped you, drop your feedback in the comment section πŸ™Œ

If you face any issue, share:

  • HDL error message

  • Absence Type name

  • Whether plan enrollment exists

  • Your sample Worker.dat snippet (remove sensitive data)


❓ FAQ

Q1. Can we load absence entries using HDL in Oracle HCM?

Yes. You can load worker absences using the HDL objects PersonAbsenceEntry and PersonAbsenceEntryDetail.


Q2. Is absence plan enrollment required before loading absence entry?

Yes. In most cases, the worker must be enrolled in the absence plan first.


Q3. Which file is used to load absence entry in HDL?

The commonly used HDL file is PersonAbsenceEntry.dat.


Q4. What is the purpose of PersonAbsenceEntryDetail?

It provides daily/hourly absence details and connects the absence entry to assignment.


Q5. Can we load hourly absences using HDL?

Yes. Hourly absences are supported by providing StartTime and EndTime in PersonAbsenceEntryDetail.


Q6. What should be the AbsenceStatus and ApprovalStatus?

Typically:

  • AbsenceStatus = SUBMITTED

  • ApprovalStatus = APPROVED (or PENDING depending on workflow)

HDL Template to Accrual Plan Enrollment of Worker

HDL Template to Accrual Plan Enrollment of Worker

Please find the below sample template :

File Name - PersonAccrualPlanEnrollment.dat


METADATA|PersonAccrualPlanEnrollment|PersonNumber|WorkTermAsgNum|PlanName|EnrtStDt|SourceSystemId|SourceSystemOwner

MERGE|PersonAccrualPlanEnrollment|XXTEST22|XXTEST_WRKTERM22|Sick|2021/01/01|XXTEST_SICK1|XXTEST

Wednesday, 18 January 2023

HDL Template for Salary of Worker


How to Load Worker Salary in Oracle Fusion HCM Using HDL (Salary.dat)

Learn how to create or update worker salary in Oracle Fusion HCM using HDL Salary.dat. Step-by-step guide with sample template, required fields, salary basis, action codes, approval flag, and common error fixes.

Oracle Fusion HCM allows you to load or update worker salary using HCM Data Loader (HDL).
This is useful when you need to migrate salary data during:

  • New implementation (initial data load)

  • Bulk salary updates

  • Salary corrections

  • Salary changes during hiring

In this blog, you will learn:

✅ Salary HDL file name and structure
✅ Required attributes
✅ Salary basis and approval flag
✅ Sample Salary.dat template
✅ Common errors and troubleshooting

You can see step by step video to load Salary data using this Click Here


πŸ“Œ HDL File Used

To load salary data, use:

Salary.dat


✅ Prerequisites (Very Important)

Before loading salary using HDL, make sure:

1) Worker & Assignment already exist

Salary is always tied to an assignment.

So these must exist first:

  • Worker record

  • AssignmentNumber


2) Salary Basis must exist

SalaryBasisName should already be configured.

Example:

  • US1 Annual Salary

  • Monthly Salary

  • Hourly Rate

Navigation:
My Client Groups → Salary → Salary Basis


3) Worker must have valid payroll / employment info

Salary often fails if assignment is missing:

  • legislation code

  • grade

  • payroll details (in some setups)


✅ Salary.dat Template (Sample)

Use the below sample:

METADATA|Salary|AssignmentNumber|DateFrom|DateTo|SalaryAmount|SalaryBasisName|ActionCode|SalaryApproved

MERGE|Salary|ORACLE_ASG12|1991/01/01||10000|US1 Annual Salary|HIRE|Y



✅ Field Explanation (Salary HDL)

1) AssignmentNumber

This is the unique assignment number of the worker.

Example:

ORACLE_ASG12

2) DateFrom / DateTo

  • DateFrom = salary effective start date

  • DateTo = keep blank unless you want to end-date salary

Example:

1991/01/01

3) SalaryAmount

Salary amount to load.

Example:

10000

4) SalaryBasisName

This must match exactly with configured Salary Basis.

Example:

US1 Annual Salary

5) ActionCode

Defines why salary is being loaded.

Common values:

  • HIRE

  • SALARY_CHANGE

  • PROMOTION

  • TRANSFER

Example:

HIRE

6) SalaryApproved

Salary approval flag.

Values:

  • Y = approved

  • N = not approved

Example:

Y

✅ Step-by-Step: Load Salary Using HDL

Step 1: Create Salary.dat file

Create a .dat file and add metadata + merge line.


Step 2: Create .zip file

Create a zip file:

Example:

Salary.zip

Inside zip:

Salary.dat

Step 3: Upload in HDL

Navigate to:

My Client Groups → Data Exchange → HCM Data Loader

Steps:

  1. Import and Load Data

  2. Upload Salary.zip

  3. Submit


Step 4: Monitor HDL Status

Check:

  • Import Status

  • Load Status

  • Completed Successfully / Error


Step 5: Validate Salary in UI

Navigate to:

My Client Groups → Person Management → Search Worker → Salary

Confirm:

  • Salary Amount

  • Salary Basis

  • Effective date


⭐ Example: Load Salary for Multiple Workers

METADATA|Salary|AssignmentNumber|DateFrom|DateTo|SalaryAmount|SalaryBasisName|ActionCode|SalaryApproved MERGE|Salary|ORACLE_ASG12|1991/01/01||10000|US1 Annual Salary|HIRE|Y MERGE|Salary|ORACLE_ASG13|1991/01/01||12000|US1 Annual Salary|HIRE|Y MERGE|Salary|ORACLE_ASG14|1991/01/01||15000|US1 Annual Salary|HIRE|Y

πŸ”₯ Common HDL Errors & Fixes

❌ 1) Salary basis not found

Error:
SalaryBasisName is invalid

✅ Fix:

  • Verify Salary Basis exists

  • Match exact name (case-sensitive)


❌ 2) Assignment number not found

Error:
AssignmentNumber doesn’t exist

✅ Fix:

  • Confirm assignment is created successfully

  • Load worker/assignment first


❌ 3) Salary overlaps existing salary

Error:
Overlapping salary records

✅ Fix:

  • End-date previous salary using DateTo

  • Or use correct DateFrom


❌ 4) Salary not approved

Error:
Salary not visible in UI

✅ Fix:

  • Set SalaryApproved = Y

  • Ensure approvals not required in workflow


πŸ”— Internal Links 



⭐ FAQs 

Q1. Which file is used to load salary using HDL?

Salary is loaded using Salary.dat in Oracle Fusion HCM.

Q2. What is required before loading salary using HDL?

Worker and Assignment must exist, and Salary Basis must be configured.

Q3. Can we update salary using MERGE?

Yes, MERGE can create or update salary records depending on the effective date.

Q4. What is SalaryApproved in Salary.dat?

SalaryApproved is a flag that indicates whether the salary record is approved (Y) or not approved (N).

Q5. What is the most common reason salary HDL fails?

The most common reasons are invalid SalaryBasisName and incorrect AssignmentNumber.

Featured post

Oracle Fusion Global Bank & Bank Branch Mapping by Country (65+ Countries) | Complete Reference Guide

  Introduction One of the most common challenges during Oracle Fusion HCM implementations is configuring employee bank accounts , supplier...