HCM Data Loader fails to import resource assignments in resource management

We’re trying to onboard 200+ contractors using HCM Data Loader for resource assignments in our 23b instance, but the import keeps failing with validation errors. The same FBDI template worked fine in our previous quarterly update.

Error from HDL import:


ERROR: Invalid value for ProjectId
ERROR: ResourceOrganizationId is required
Row 45: Assignment validation failed

We’re using the ResourceAssignment.dat file format that’s documented in the 23a template guide. Did Oracle change the HDL template structure or field requirements in 23b? Our IT team suspects the quarterly patch modified validation rules but we can’t find clear documentation on what changed.

Excellent! Let me provide a comprehensive solution covering all three critical areas:

HDL Import Process (23b Enhancements): The HCM Data Loader in 23b underwent significant validation improvements. For resource assignments, follow this updated process:

  1. File Structure: Use the latest ResourceAssignment.dat format:

METADATA|ResourceAssignment|ResourceId|ProjectId|ResourceOrganizationId|StartDate|EndDate
MERGE|ResourceAssignment|RES_12345|PRJ_2024_001|ORG_300000001234567|2024-05-01|2024-12-31
  1. Validation Sequence: 23b validates in this order:

    • Resource existence check (must be pre-loaded)
    • Project reference validation (new in 23b: uses project number)
    • Organization hierarchy validation (stricter in 23b)
    • Date range business rule validation
    • Assignment conflict detection (enhanced)
  2. Error Handling: Enable detailed logging by adding this parameter:


#HDL_IMPORT_OPTIONS
VALIDATION_LEVEL=STRICT
ERROR_LIMIT=100

FBDI Template Versioning (Quarterly Patch Impacts): This is where most 23b upgrade issues occur. Oracle made breaking changes to the ResourceAssignment template:

New Required Fields in 23b:

  • ResourceOrganizationId (was optional in 23a)
  • AssignmentType (contractor/employee classification)
  • CostCenter (for financial tracking)
  • PrimaryAssignmentFlag (for multi-project resources)

Changed Field Formats:

  • ProjectId: Now accepts PROJECT_NUMBER (alphanumeric) instead of internal numeric ID
  • ResourceId: Must match HCM worker number format exactly
  • Dates: ISO 8601 format strictly enforced (YYYY-MM-DD)

Template Download Process:

  1. Navigate to: Setup and Maintenance > Search: “Import Resource Assignments”
  2. Click “Download Template” - this gets the 23b-specific version
  3. Compare with your existing template using a diff tool
  4. Map new fields in your source data extraction

Quarterly Patch Impacts (23b Specific Changes): The 23b quarterly update introduced several breaking changes that affect resource onboarding:

1. Organization Validation Enhancement: 23b cross-references ResourceOrganizationId against the business unit hierarchy. For contractors:

  • Create a dedicated “Contingent Workforce” business unit
  • Assign all contractors to this BU initially
  • Use project assignments for actual work allocation

2. Project Reference Architecture: Major change - Oracle moved from internal IDs to business keys:


// Old 23a approach (no longer works):
ProjectId: 300000123456789

// New 23b approach (required):
ProjectNumber: PRJ-2024-IMPL-001

3. Data Validation Rules: 23b enforces referential integrity during import (not post-import):

  • All referenced projects must exist before resource assignment import
  • Organization must be active and in correct hierarchy
  • Resource must have valid worker assignment in HCM

4. Template Compatibility Matrix:

  • 23a templates: NOT compatible with 23b (will fail validation)
  • 23b templates: Backward compatible with 23a IF you populate new required fields
  • Recommendation: Maintain version-specific templates in your data migration repository

Practical Implementation Steps:

  1. Pre-Import Validation Script:
-- Validate project numbers exist
SELECT project_number FROM pjf_projects_all_vl
WHERE project_number IN (SELECT DISTINCT project_id FROM staging_table);

-- Validate organization IDs
SELECT organization_id FROM hr_organization_units
WHERE organization_id IN (SELECT DISTINCT resource_org_id FROM staging_table);
  1. Update Your ETL Process:
  • Add ResourceOrganizationId mapping (use default BU if not specified)
  • Convert Project IDs to Project Numbers in extraction query
  • Add AssignmentType logic (employee vs contractor)
  1. Phased Import Approach:
  • Batch 1: Internal employees (simpler validation)
  • Batch 2: Contractors with single project assignments
  • Batch 3: Cross-functional contractors (complex scenarios)
  1. Post-Import Verification: Run this query to confirm successful imports:
SELECT person_number, project_number, assignment_status
FROM pjf_res_assignments_v
WHERE creation_date >= TRUNC(SYSDATE);

Troubleshooting Common 23b Issues:

  • “Invalid ProjectId”: Use project_number, not project_id
  • “ResourceOrganizationId required”: Map to business unit (create default if needed)
  • “Assignment validation failed”: Check date ranges don’t overlap with existing assignments

The key lesson from 23b: Oracle is moving toward business-key-based imports rather than internal technical keys. This improves data portability but requires template updates with each quarterly release. Always test with a small batch first after any quarterly update.


This draft is based on general Oracle Fusion Cloud knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.

Yes, 23b introduced stricter validation for resource assignments. The ResourceOrganizationId field became mandatory even for contractor assignments, whereas it was optional in 23a. You need to map this to the business unit’s organization ID.

Also check your ProjectId values. In 23b, Oracle changed how project references work in HDL imports. You now need to use the project number instead of the internal project ID for cross-module imports. This was part of the data integrity improvements in the quarterly update. Try using PROJECT_NUMBER field instead of PROJECT_ID in your template.

Thanks, I’ll try the project number approach. But I’m confused about ResourceOrganizationId - our contractors aren’t tied to specific business units, they’re cross-functional resources. What value should we use for them?

For cross-functional contractors, use the primary business unit that manages the contractor pool. Even though they work across departments, you need to assign them to an organizational home for compliance tracking. In our implementation, we created a dedicated “Contractor Resources” business unit specifically for this purpose. This also helps with cost allocation and reporting in resource management.

Don’t forget to validate your FBDI template version matches 23b. Oracle releases updated templates with each quarterly patch, and they’re not always backward compatible. Download the latest ResourceAssignment template from the Import and Export page in Setup and Maintenance.

I downloaded the 23b template and noticed several new required fields. Running a test import now with updated mappings.