Oracle Fusion HCM

Thursday, 25 June 2026

Oracle HDL Error "The Combination Is Not Valid" – Complete Troubleshooting Guide

 

Oracle HCM HDL Error: "The Combination Is Not Valid" – Complete Troubleshooting Guide

Introduction

While loading data using Oracle HCM Data Loader (HDL), Payroll Data Loader, Spreadsheet Loader, or performing worker transactions, consultants frequently encounter the following error:

Error:

An error occurred. To review details of the error run the HCM Data Loader Error Analysis Report diagnostic test.

Message details:

The combination is not valid.

This error can be frustrating because Oracle doesn't always identify the exact segment or flexfield combination causing the issue.

In this article, we'll discuss the most common root causes, troubleshooting steps, and proven solutions that Oracle HCM consultants can use to resolve this error quickly.


Understanding the Error

The error generally indicates that Oracle Fusion is trying to validate a combination of values against a configured flexfield structure and the combination fails validation.

Common areas where this occurs include:

  • Worker Loads

  • Assignment Loads

  • Payroll Loads

  • Cost Allocation Loads

  • HDL Data Conversions

  • Element Entries

  • Payroll Costing

The system validates combinations against configured setups before allowing data creation.


Actual Error Message

An error occurred.

To review details of the error run the HCM Data Loader Error Analysis Report diagnostic test.

Message details:

The combination is not valid.

Root Cause #1 – People Group Flexfield Enabled

One of the most common causes of this error is People Group configuration.

Many organizations enable People Group segments but forget to populate valid values during HDL loads.

When Oracle validates the People Group combination, it fails and generates the error.


How to Verify

Navigate to:

Setup and Maintenance
→ Manage Key Flexfields

Search for: PPG as Key Flexfield Code

Name - People Group Flexfield.

Example Scenario

Your implementation contains People Group Segments:

SegmentValue
RegionUS
Employee TypeFull Time
Cost CenterIT

If HDL attempts to load:

Region = USA
Employee Type = Permanent
Cost Center = 100

and the combination doesn't exist, Oracle returns:

The combination is not valid

Solution

Verify:

✔ People Group enabled

✔ Segment values exist

✔ Combination exists

✔ HDL contains valid segment values


Root Cause #2 – Expense Account Flexfield Enabled

Another frequent cause is Expense Account validation.

Organizations often enable accounting flexfields such as:

  • Cost Center

  • Department

  • Natural Account

  • Company

  • Business Unit

If one segment value is invalid, Oracle rejects the entire combination.


Example

Valid Account:

01.100.5000.000

Invalid Account:

01.999.5000.000

If segment 999 doesn't exist, Oracle returns:

The combination is not valid

Root Cause #3 – Cost Allocation Flexfield Validation

This issue commonly appears during:

  • Payroll Costing Loads

  • Cost Allocation HDL Loads

  • Element Eligibility Costing

  • Department Costing

Oracle validates:

Cost Allocation Key Flexfield

before processing.


Root Cause #4 – Cross Validation Rules

Sometimes all segment values exist but the combination itself is restricted.

Example:

Allowed:

Company = 01
Cost Center = 100

Blocked:

Company = 01
Cost Center = 900

due to Cross Validation Rules.

Oracle therefore throws:

The combination is not valid

Root Cause #5 – Suspense Account Missing

Payroll costing loads often fail because:

  • Default Account missing

  • Suspense Account missing

  • Offset Account missing

Oracle validates account combinations during payroll costing generation.


Troubleshooting Checklist

Before raising an SR, verify the following:

People Group

✔ Is People Group enabled?

✔ Are all People Group segments populated?

✔ Are values valid?

✔ Does the combination exist?


Expense Account

✔ Is Expense Account enabled?

✔ Are all account segments valid?

✔ Are segment values active?

✔ Are values end-dated?


Cost Allocation

✔ Cost Allocation Flexfield configured?

✔ Cost Account valid?

✔ Offset Account valid?

✔ Suspense Account configured?


Cross Validation Rules

✔ Any restrictions defined?

✔ Combination allowed?


HDL Mapping

✔ Source values mapped correctly?

✔ No blank mandatory segments?

✔ Segment lengths valid?


Recommended Resolution Process

Resolution Process Image


Real-Life Example

A customer was loading employee assignments through HDL.

Error received:

The combination is not valid

Investigation revealed:

  • People Group Flexfield enabled

  • New People Group Segment added

  • HDL file not populating the new segment

After updating the HDL mapping and loading the correct segment value, the worker load completed successfully.


Best Practices

Before Data Conversion

✔ Review all enabled flexfields

✔ Document segment values

✔ Validate source data


Before HDL Load

✔ Verify People Group values

✔ Verify Expense Account values

✔ Validate Cost Center combinations


During Testing

✔ Load small sample data

✔ Review HDL Error Analysis Report

✔ Validate costing combinations


Conclusion

The Oracle HDL error:

The combination is not valid

usually points to a failed flexfield validation.

In most Oracle HCM implementations, the issue is caused by:

  1. People Group Flexfield enabled but invalid segment values.

  2. Expense Account combinations not configured.

  3. Cost Allocation Key Flexfield issues.

  4. Cross Validation Rule restrictions.

  5. Missing Suspense or Default Accounts.

Always start troubleshooting by checking:

✔ People Group Configuration

✔ Expense Account Setup

✔ Cost Allocation Flexfield

✔ Cross Validation Rules

These checks resolve the majority of cases without requiring an Oracle Service Request.


Frequently Asked Questions (FAQ)

Q1. What does "The combination is not valid" mean in Oracle HDL?

It means Oracle failed to validate a flexfield combination such as People Group, Expense Account, or Cost Allocation Account.


Q2. Where should I check first?

Start with:

  • People Group Flexfield

  • Expense Account Flexfield

These are the most common causes.


Q3. Can Cost Allocation setup cause this error?

Yes. Invalid costing combinations frequently trigger this error.


Q4. What report should I run?

Run:

HCM Data Loader Error Analysis Report

to get detailed diagnostic information.


Q5. Can Cross Validation Rules cause this error?

Yes. Even valid segment values can fail if Cross Validation Rules restrict the combination.


Related Articles


Feedback Section

Did this article help resolve your issue?

✔ Yes, People Group was the problem

✔ Yes, Expense Account caused the issue

✔ Yes, Cost Allocation setup was incorrect

✔ Need help with another variation of this error

Share your scenario in the comments and help other Oracle HCM consultants learn from real project experiences.

Oracle HDL Error: Work Terms or Assignment Can't Be Specified When Terminating a Work Relationship

 

Oracle HCM HDL Error: "Work Terms or Assignment Can't Be Specified When Terminating a Work Relationship" – Causes and Solutions

Introduction

While loading worker data using Oracle HCM Data Loader (HDL), one of the most common errors consultants encounter is:

"Work terms or assignment can't be specified when terminating a work relationship."

This error typically occurs when loading employee termination data, historical records, or worker conversion transactions.

In this article, we will explain the root cause of the error, common scenarios where it occurs, and practical solutions to resolve it successfully.


Understanding the Error

Oracle Fusion HCM follows a hierarchical worker structure:

  • Worker

  • PersonName

  • Work Relationship

  • Work Terms

  • Assignment

When a work relationship is terminated, Oracle automatically ends all associated Work Terms and Assignments.

Because of this behavior, Oracle does not allow you to explicitly load Work Terms or Assignment records along with a termination transaction.

Therefore, HDL throws the error:

Work terms or assignment can't be specified when terminating a work relationship.


Root Cause Analysis

The issue usually occurs due to one of the following reasons:

1. Incorrect Effective Dates

The termination date may be earlier than:

  • Work Terms effective date

  • Assignment effective date

  • Worker effective date

Oracle validates date sequences and rejects invalid records.

Example

Termination Date = 31-Dec-2024

Assignment Effective Date = 01-Jan-2025

This creates an invalid timeline.

Solution

Ensure:

Worker Date <= Assignment Date <= Termination Date

2. Terminate Work Relationship Flag = Y

If you pass:

TerminateWorkRelationshipFlag = Y

then Oracle expects only Work Relationship data.

Do not pass:

  • Work Terms

  • Assignment

for the same termination transaction.

Incorrect

MERGE|WorkRelationship|...|Y

MERGE|WorkTerms|...
MERGE|Assignment|...

Correct

MERGE|WorkRelationship|...|Y

Only terminate the Work Relationship.


3. Historical Data Load Scenario

Many organizations load historical employment records during implementation.

In such cases consultants often load:

  • Hire

  • Transfer

  • Promotion

  • Termination history

all together.

If historical records are being loaded, avoid terminating the relationship using:

TerminateWorkRelationshipFlag=Y

Instead use:

TerminateWorkRelationshipFlag=N

and load complete assignment history.

Recommended Approach

Historical Conversion:

TerminateWorkRelationshipFlag=N

Actual Termination Transaction:

TerminateWorkRelationshipFlag=Y

4. Assignment Status Mapping Issues

Incorrect assignment statuses may trigger validation failures.

Common status examples:

Worker TypeValid Status
EmployeeACTIVE_PROCESS
EmployeeSUSPENDED
EmployeeINACTIVE
Contingent WorkerACTIVE_PROCESS

If the status is not mapped correctly in HDL, Oracle may incorrectly interpret the transaction.

Verify

  • Assignment Status Type

  • User Status

  • Assignment Type

  • Person Type


HDL Validation Checklist

Before loading termination records verify:

✅ Worker exists

✅ Work Relationship exists

✅ Effective dates are correct

✅ Assignment dates are before termination date

✅ Work Terms dates are before termination date

✅ Assignment Status is valid

✅ Person Type is mapped correctly

✅ No duplicate termination transactions

✅ TerminateWorkRelationshipFlag value reviewed


Best Practices

During Employee Conversion

  • Load worker history first.

  • Validate assignment hierarchy.

  • Load termination separately.

During Historical Migration

  • Use termination flag carefully.

  • Load complete history before ending relationships.

During Production Support

  • Validate HDL object hierarchy.

  • Review effective dates.

  • Check assignment status mappings.


Conclusion

The error:

"Work terms or assignment can't be specified when terminating a work relationship"

occurs because Oracle Fusion automatically manages Work Terms and Assignments when a Work Relationship is terminated.

The most common fixes are:

  1. Validate effective dates.

  2. Remove Work Terms and Assignments when TerminateWorkRelationshipFlag = Y.

  3. Use TerminateWorkRelationshipFlag = N for historical loads.

  4. Verify assignment status mappings.

  5. Reprocess HDL after corrections.

Following these best practices will help you successfully load termination records and avoid HDL validation failures.


Frequently Asked Questions (FAQ)

Q1. What causes the error "Work terms or assignment can't be specified when terminating a work relationship"?

It occurs when Work Terms or Assignment records are included while terminating a Work Relationship.

Q2. Can I load Assignment records during termination?

No. Oracle automatically ends assignments when the work relationship is terminated.

Q3. Can historical terminations be loaded?

Yes. Use historical loading strategies and carefully manage the termination flag.

Q4. What should TerminateWorkRelationshipFlag be for historical loads?

Generally:

N

when loading worker history.

Q5. Does Oracle automatically terminate assignments?

Yes. Assignments and Work Terms are ended automatically when the Work Relationship is terminated.


Related Articles


Feedback Section

Have you encountered this HDL error in your Oracle Fusion implementation?

Share your experience:

  • What HDL object caused the issue?

  • Was it a historical conversion load?

  • Which solution worked for you?

Your feedback can help other Oracle HCM consultants resolve similar issues faster.

Monday, 22 June 2026

Oracle HCM Data Loader (HDL) Example: Loading Payroll Costing Using CostAllocationV3

 

Oracle HCM Data Loader (HDL) Example: Loading Payroll Costing Using CostAllocationV3

Introduction

Oracle Fusion HCM Payroll Costing enables organizations to allocate payroll expenses to General Ledger (GL) accounts for accurate financial reporting and accounting. Using HCM Data Loader (HDL), payroll costing can be loaded in bulk, making implementation and data migration activities significantly easier.

In this article, we'll walk through a complete HDL example for loading Payroll Costing, including:

  • Payroll Costing Overview

  • Cost Allocation Components

  • Mock HDL Templates

  • Payroll Costing Hierarchy

  • Validation Checklist

  • Troubleshooting Guide

  • Best Practices


What is Payroll Costing in Oracle HCM?

Payroll Costing determines how payroll expenses are distributed to accounting segments and eventually transferred to the General Ledger.

Costing can be configured at various levels:

  1. Payroll Level

  2. Department Level

  3. Position Level

  4. Element Eligibility Level

  5. Person Level

The Payroll Level is generally used for segments that rarely change across employees such as:

  • Company

  • Business Unit

  • Fund

  • Line of Business


Why Configure Costing at Payroll Level?

Organizations often maintain multiple payrolls such as:

  • Weekly Payroll

  • Biweekly Payroll

  • Monthly Payroll

Instead of assigning identical costing information to every employee, Payroll Level Costing allows common accounting segments to be configured once and inherited by all workers within that payroll.

Benefits

✔ Simplifies costing setup

✔ Reduces maintenance effort

✔ Supports General Ledger integration

✔ Improves payroll accounting accuracy

✔ Supports suspense and default accounts


Business Scenario

A fictional organization, GlobalTech Solutions, maintains a monthly payroll named:

GlobalTech Monthly Payroll

The Payroll team wants to:

  • Cost all payroll expenses to a predefined cost account.

  • Configure Default Account.

  • Configure Suspense Account.

  • Transfer payroll costing to General Ledger.


Payroll Costing Structure

Cost Account

SegmentDescriptionValue
Segment1Company2001
Segment2Cost Center3001
Segment3Fund4001
Segment4Department5001
Segment5Business Unit6001
Segment6Program7001
Segment7Natural Account8001
Segment8Project9001

Suspense Account

All segments:

0000.0000.0000.0000.0000.0000.0000.0000

Default Account

All segments:

0000.0000.0000.0000.0000.0000.0000.0000


Step 1: Create Cost Allocation Record

CostAllocationV3.dat

METADATA|CostAllocationV3|EffectiveEndDate|EffectiveStartDate|SourceType
|PayrollCode|LegislativeDataGroupName MERGE|CostAllocationV3|4712/12/31|2025/01/01|PAY|GlobalTech Monthly Payroll
|GlobalTech US LDG

Explanation

FieldDescription
SourceTypePAY = Payroll Level Costing
PayrollCodePayroll Name
LDGLegislative Data Group
EffectiveStartDateCosting Effective Date

Step 2: Load Payroll Costing Accounts

CostAllocationAccountV3.dat

METADATA|CostAllocationAccountV3|SourceType|PayrollCode|LegislativeDataGroupName
|EffectiveDate|SourceSubType|Proportion|SubTypeSequence|ConcatenatedSegment
|Segment1|Segment2|Segment3|Segment4|Segment5|Segment6|Segment7|Segment8 MERGE|CostAllocationAccountV3|PAY|GlobalTech Monthly Payroll|GlobalTech US LDG
|2025/01/01|COST|1|1||2001|3001|4001|5001|6001|7001|8001|9001 MERGE|CostAllocationAccountV3|PAY|GlobalTech Monthly Payroll|GlobalTech US LDG
|2025/01/01|SUSP|1|1|0000.0000.0000.0000.0000.0000.0000.0000|||||||| MERGE|CostAllocationAccountV3|PAY|GlobalTech Monthly Payroll|GlobalTech US LDG
|2025/01/01|DFLT|1|1|0000.0000.0000.0000.0000.0000.0000.0000||||||||

Understanding Source Sub Types

COST

Primary payroll expense account.

Used to charge payroll expenses.

Example:

2001.3001.4001.5001.6001.7001.8001.9001

SUSP (Suspense Account)

Used when payroll costing cannot determine a valid account combination.

Example:

0000.0000.0000.0000.0000.0000.0000.0000

DFLT (Default Account)

Used when account information is missing during payroll costing.

Example:

0000.0000.0000.0000.0000.0000.0000.0000

Payroll Costing Flow

Payroll costing process flow diagram




HDL Upload Steps

Step 1

Create CostAllocationV3.dat

Step 2

Create CostAllocationAccountV3.dat

Step 3

Zip HDL files

Payroll_Costing.zip

Step 4

Navigate to:

My Client Groups
→ Data Exchange
→ Import and Load Data

Step 5

Upload ZIP file.

Step 6

Submit HDL Process.

Step 7

Verify Status:

Completed Successfully

Validation Checklist

Before Upload

  • Cost Allocation Key Flexfield configured

  • Payroll exists

  • LDG exists

  • Accounting segments validated

  • Suspense account defined

  • Default account defined

After Upload

  • HDL completed successfully

  • Cost Allocation created

  • Cost Accounts loaded

  • Payroll Costing verified

  • GL Transfer validated


Common HDL Errors

Error: Payroll Not Found

Cause:

Incorrect Payroll Code.

Solution:

Verify Payroll Name exactly matches Oracle Payroll.


Error: LDG Not Found

Cause:

Invalid Legislative Data Group.

Solution:

Validate LDG configuration.


Error: Invalid Segment Combination

Cause:

GL account combination not valid.

Solution:

Validate accounting flexfield combinations.


Error: Cost Allocation Already Exists

Cause:

Duplicate costing record.

Solution:

Use MERGE instead of CREATE.


Best Practices

  • Always configure Suspense Account.

  • Always configure Default Account.

  • Validate account combinations before migration.

  • Test in lower environments first.

  • Reconcile payroll costing with Finance team.

  • Maintain version-controlled HDL templates.

  • Document all segment mappings.


Frequently Asked Questions (FAQ)

Can Payroll Costing be loaded using HDL?

Yes. Oracle supports payroll costing using CostAllocationV3 and CostAllocationAccountV3 business objects.

Why should I configure Suspense Accounts?

Suspense Accounts prevent payroll costing failures when valid costing information is unavailable.

Can multiple payrolls have different costing accounts?

Yes. Each payroll can have its own costing configuration.

What is SourceType PAY?

PAY indicates Payroll Level Costing.

What is the difference between COST, DFLT, and SUSP?

  • COST = Primary Cost Account

  • DFLT = Default Account

  • SUSP = Suspense Account

Can payroll costing be updated later?

Yes. Use HDL MERGE statements to update costing records.

Wednesday, 17 June 2026

Oracle HCM Data Loader (HDL) – Load Multiple Assignments for a Worker in Oracle Fusion HCM

Oracle HDL Multiple Assignment Load for Worker

Organizations often require employees to perform multiple jobs simultaneously. Oracle Fusion HCM supports Multiple Assignments, allowing a worker to hold more than one active assignment within the same legal employer or across different business functions.

Using HCM Data Loader (HDL), organizations can efficiently load primary and secondary assignments during implementation, mergers, acquisitions, or workforce restructuring projects.



🔹 What is Multiple Assignment?

A Multiple Assignment worker has:

  • One Person Record
  • One Work Relationship
  • Multiple Work Terms
  • Multiple Assignments

Example:

EmployeeAssignment
Adam Baro                HR Analyst (Primary)
Adam Baro                Project Coordinator (Secondary)

The employee receives separate assignment records while maintaining a single worker profile.


🔹 Business Scenario

Vision Corporation hires Adam Baro as a full-time employee.

Primary Assignment

  • HR Analyst
  • Effective Date: 01-Jan-2018
  • Primary Assignment = Yes

Secondary Assignment

  • Project Coordinator
  • Effective Date: 01-May-2021
  • Primary Assignment = No

Both assignments exist under the same work relationship.


🔹 HDL Components Used

The HDL file contains the following business objects:

HDL ComponentPurpose
WorkerCreates person record
PersonNameWorker name details
PersonNationalIdentifierSSN/National ID
WorkRelationshipEmployment relationship
WorkTermsTerms of employment
AssignmentWorker assignments

🔹 Multiple Assignment HDL Structure

Worker
   |
   +-- PersonName
   |
   +-- PersonNationalIdentifier
   |
   +-- WorkRelationship
            |
            +-- WorkTerms 1
            |      |
            |      +-- Assignment 1 (Primary)
            |
            +-- WorkTerms 2
                   |
                   +-- Assignment 2 (Secondary)


🔹 HDL Sample 

Worker

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

Person Name

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

National Identifier

METADATA|PersonNationalIdentifier|SourceSystemOwner|SourceSystemId
|PersonId(SourceSystemId)|LegislationCode|IssueDate|ExpirationDate
|NationalIdentifierType|NationalIdentifierNumber|PrimaryFlag MERGE|PersonNationalIdentifier|XXTEST|XXTEST_NID1|XXTEST_PER1|US||
|SSN|456-23-4167|Y

Work Relationship

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_PDSERVICE1|XXTEST_PER1|US1 Legal Entity
|2018/01/01|||||||Y|||||XXTEST1|E|N|Y

Primary WorkTerms

METADATA|WorkTerms|ActionCode|SourceSystemOwner|SourceSystemId|EffectiveStartDate
|EffectiveEndDate|EffectiveSequence|EffectiveLatestChange|AssignmentName
|AssignmentNumber|AssignmentStatusTypeCode|AssignmentType|BusinessUnitShortCode
|PositionOverrideFlag|PrimaryWorkTermsFlag|PeriodOfServiceId(SourceSystemId)
|PersonId(SourceSystemId)|LegalEmployerName|SystemPersonType MERGE|WorkTerms|HIRE|XXTEST|XXTEST_WRKTERM1|2018/01/01|4712/12/31|1|Y|
|XXTEST_WRKTERM1|ACTIVE_PROCESS|ET|US1 Business Unit|Y|Y|XXTEST_PDSERVICE1
|XXTEST_PER1|US1 Legal Entity|EMP

Secondary WorkTerms

MERGE|WorkTerms|HIRE|XXTEST|XXTEST_WRKTERM2|2021/05/01|4712/12/31|2|Y|
|XXTEST_WRKTERM2|ACTIVE_PROCESS|ET|US1 Business Unit|Y|N|XXTEST_PDSERVICE1
|XXTEST_PER1|US1 Legal Entity|EMP

Primary Assignment

METADATA|Assignment|ActionCode|SourceSystemOwner|SourceSystemId|EffectiveStartDate
|EffectiveEndDate|EffectiveSequence|EffectiveLatestChange|AssignmentName
|AssignmentNumber|AssignmentStatusTypeCode|AssignmentType|BusinessUnitShortCode
|PositionOverrideFlag|PrimaryAssignmentFlag|PrimaryFlag|SystemPersonType
|LegalEmployerName|JobId(SourceSystemId)|LocationId(SourceSystemId)
|OrganizationId(SourceSystemId)|PositionId(SourceSystemId)|GradeId(SourceSystemId)
|PeriodOfServiceId(SourceSystemId)|PersonId(SourceSystemId)|PersonTypeCode
|ManagerFlag|LabourUnionMemberFlag|WorkTermsAssignmentId(SourceSystemId)
|AssignmentCategory|Frequency|HourlySalariedCode|NormalHours|NoticePeriod
|ProbationPeriod|ProbationUnit|ReasonCode MERGE|Assignment|HIRE|XXTEST|XXTEST_ASSIGN1|2018/01/01|4712/12/31|1|Y
|E-XXTEST1|XXTEST_ASSIGN1|ACTIVE_PROCESS|E|US1 Business Unit|Y|Y|Y|EMP
|US1 Legal Entity|XXTEST_JOB1|XXTEST_LOC65XXTEST_DEPT1||XXTEST_GRADE01
|XXTEST_PDSERVICE1|XXTEST_PER1|Employee|Y|N|XXTEST_WRKTERM1|FR|W|S|40|0|||NEWHIRE

Secondary Assignment

MERGE|Assignment|HIRE|XXTEST|XXTEST_ASSIGN2|2021/05/01|4712/12/31|2|Y
|E-XXTEST2|XXTEST_ASSIGN2|ACTIVE_PROCESS|E|US1 Business Unit|Y|N|N|EMP
|US1 Legal Entity|XXTEST_JOB1|XXTEST_LOC65XXTEST_DEPT1||XXTEST_GRADE01
|XXTEST_PDSERVICE1|XXTEST_PER1|Employee|Y|N|XXTEST_WRKTERM2|FR|W|S|40|0|
||NEWHIRE

🔹 Understanding Primary Flags

FieldPrimary AssignmentSecondary Assignment
PrimaryAssignmentFlagYN
PrimaryFlagYN
PrimaryWorkTermsFlagYN

Only one assignment can be primary.


🔹 Common Use Cases

Multiple Job Roles

Employee works as:

  • HR Analyst
  • Payroll Specialist

Project-Based Assignment

Employee receives temporary assignment on project.

Academic Institutions

Faculty member also serves as:

  • Professor
  • Department Coordinator

🔹 HDL Load Process

Worker HDL Process



🔹 Validation Checklist

Before Loading

✔ Worker does not already exist

✔ Legal Employer exists

✔ Business Unit exists

✔ Department exists

✔ Job exists

✔ Grade exists

✔ Location exists

✔ Source Keys are unique

✔ Work Terms references are correct


After Loading

✔ Worker created successfully

✔ Work Relationship created

✔ Primary Work Terms created

✔ Secondary Work Terms created

✔ Primary Assignment visible

✔ Secondary Assignment visible

✔ Assignment flags validated


🔹 Common HDL Errors

Q1 - Assignment Not Created

Cause: Incorrect WorkTermsAssignmentId

Resolution: Verify Work Terms source key.


Q2 - Multiple Primary Assignments

Cause: PrimaryAssignmentFlag = Y on multiple assignments

Resolution:Only one assignment should be primary.


Q3 - Invalid Department

Cause: Department Source Key Missing

Resolution: Load department before assignment.


Q4 - Invalid Job

Cause: Job not available

Resolution: Load workforce structures first.


🔹 Best Practices

Load Workforce Structures First

  • Jobs
  • Grades
  • Locations
  • Departments

Maintain Effective Dating

Ensure assignment dates follow business requirements.

Validate Primary Assignment Logic

Only one primary assignment should exist.


🔹 Frequently Asked Questions (FAQ)

What is a multiple assignment worker in Oracle Fusion HCM?

A multiple assignment worker is an employee who holds more than one active assignment under the same work relationship.


Can a worker have multiple work terms?

Yes. Oracle Fusion supports multiple work terms associated with a single work relationship.


Can both assignments be primary?

No. Only one assignment can have PrimaryAssignmentFlag = Y.


Can secondary assignments have different departments?

Yes. Secondary assignments can belong to different departments, jobs, grades, or locations.


Can HDL load multiple assignments in one file?

Yes. Multiple Work Terms and Assignment records can be loaded in a single HDL file.


What assignment type is used for employees?

Employee assignments typically use:

AssignmentType = E


Can payroll be attached to multiple assignments?

Yes, depending on payroll and enterprise configuration.

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 HDL Error "The Combination Is Not Valid" – Complete Troubleshooting Guide

  Oracle HCM HDL Error: "The Combination Is Not Valid" – Complete Troubleshooting Guide Introduction While loading data using Orac...