Full transfer
Sequence a PeopleSoft-to-Fusion HCM migration: worker, job, and position data, with the effective-dated history that Fusion expects.
PeopleSoft is deeply effective-dated; Fusion HCM is too, but models history differently. Worker, assignment, and position objects must carry their effective-dated sequences across, or Fusion reporting and payroll retro-calculations break. This transfer sequences the load so history is preserved and reversible.
A working piece from this integration — no sign-up. The full build handles the edge cases, safeguards, and cutover.
PeopleSoft EMPLID/EFFDT maps to Fusion's PersonNumber/EffectiveStartDate. HDL payload structure (Worker first, then Assignment/WorkTerms):
/* METADATA: Worker */ METADATA|Worker|SourceSystemId|PersonNumber|EffectiveStartDate|ActionCode|WorkerType| MERGE|Worker|PS-emplid|emplid|2001-01-15|HIRE|E| /* DATA: Assignment (maps from PS_JOB) */ METADATA|Assignment|SourceSystemId|PersonId(SourceSystemId)|BusinessUnit| PositionId(SourceSystemId)|EffectiveStartDate|EffectiveSequence| AssignmentName|ActionCode|GradeCode|DeptId(SourceSystemId)| MERGE|Assignment|PS-JOB-emplid-001|PS-emplid|PS-BU| PS-POSITION_NBR|2001-01-15|0| PS-JOB.EMPL_RCD|HIRE|PS-GRADE|PS-DEPTID| /* Effective-dated history row */ MERGE|Assignment|PS-JOB-emplid-002|PS-emplid|PS-BU| PS-POSITION_NBR|2005-03-01|0| PS-JOB.EMPL_RCD|PROM|PS-GRADE|PS-DEPTID|
| PeopleSoft | Fusion HDL Field | Notes |
|---|---|---|
EMPLID | PersonNumber | External ID source |
EFFDT | EffectiveStartDate | ISO 8601 format |
EFFSEQ | EffectiveSequence | Defaults to 0 |
JOB.ACTION | ActionCode | HIRE, PROM, TRF, TERM |
EMPL_RCD | AssignmentName | Primary assignment = 0 |
POSITION_NBR | PositionId(SourceSystemId) | Load Position first |
How we'd take this from discovery to a production-safe cutover — the phases, the canonical mapping, and the edge cases that bite.
Migrating from PeopleSoft HCM to Oracle Cloud (Fusion) HCM requires a deliberate sequence that respects Fusion's effective-date architecture and HDL (HCM Data Loader) intake model. This pathway covers assessment, data extraction, transformation, validation, and cutover for worker, assignment, and position data.
PS_PERSONAL_DATA, PS_EMPLOYMENT, PS_JOB, PS_ASSIGNED_SUPSR, PS_POSITION_DATA, PS_DEPT_TBL, and PS_LOCATION_TBL. Document effective-date ranges, row-action patterns, and concurrency. Identify gaps: custom fields, conditional routing logic, and benefit-plan linkages that must be resolved pre-migration.Worker.dat, Assignment.dat, WorkTerms.dat, Position.dat, and Manager.dat. Align PS_JOB.EFFDT to Fusion Assignment.effectiveStartDate and Assignment.action codes (HIRE, ASG_CHANGE, CORRECTION, TERMINATION). Validate lookup values: PS_JOBCODE_TBL → JobCode metadata in Fusion must pre-exist or be loaded first via Job.dat.Position.dat and Organization.dat (Department, BusinessUnit) loads before any worker payload. Capture PS_POSITION_DATA.POSITION_NBR → Fusion Position.positionId cross-reference key to drive assignment mapping.PS_PERSONAL_DATA.EMPLID, PS_PERSONAL_DATA.NATIONAL_ID, and PS_EMPLOYMENT rows per effective-date snapshot. For each active assignment, generate a WorkTerms.dat header and one or more Assignment.dat entries per PS_JOB.EFFDT change. Denormalize PS_ASSIGNED_SUPSR into Manager.dat using the resolved PersonNumber cross-reference.LoadPlan in the HDL interface or via hcmRestApi/resources/loadTopologyData. Errors surface per row: duplicate PersonNumber, missing BusinessUnitId, invalid action on WorkTerms. Iterate: extract→fix→re-load. Maintain a defect log tracking PS_JOB.EMPLID + EFFDT + EFFSEQ to its Fusion error token.effectiveDate order. Validate that in-place corrections in PeopleSoft (same EFFDT, higher EFFSEQ) translate to action = CORRECTION in Fusion rather than spurious additional assignment rows.DELETE mode) and remediate. On go, decommission the PeopleSoft web service endpoints and switch LDAP/provisioning to Fusion Identity.| PeopleSoft Identifier | Fusion/HDL Identifier | Notes |
|---|---|---|
PS_PERSONAL_DATA.EMPLID |
Worker.PersonNumber |
Primary key; ensure uniqueness before load |
PS_NID.NATIONAL_ID |
Worker.BaseNID |
Prefer national ID type mapped to NIDCategory |
PS_JOB.EFFDT |
Assignment.effectiveStartDate |
Critical: load oldest dates first; Fusion rejects future-first history |
PS_JOB.JOBCODE |
Assignment.JobCode |
Job code metadata must be loaded via Job.dat prior to assignment load |
PS_JOB.DEPTID |
Assignment.ManagerId (department reference) |
Map to DepartmentName or OrganizationId via cross-reference |
PS_ASSIGNED_SUPSR.EMPLID |
Manager.ManagerPersonNumber |
Use resolved PersonNumber cross-reference; avoid SUPERVISOR_ID direct map |
PS_JOB.EMPL_STATUS |
Assignment.PrimaryFlag + Worker.LegislativeData.OriginalHireDate |
A (active) → PrimaryFlag = Y; T (terminated) → Assignment.TerminateDate |
PS_POSITION_DATA.POSITION_NBR |
Position.PositionId |
Load via Position.dat before any assignment that references it |
EFFSEQ rows per EFFDT; Fusion's assignment history accepts only one entry per effectiveStartDate. Collapse EFFSEQ variants into a single row with the highest-status EFFSEQ, or emit a CORRECTION action.Assignment.effectiveStartDate beyond a configurable horizon. Set Worker.HireDate and Assignment.effectiveStartDate to the actual hire date; suppress or suspend future rows until the horizon opens.PersonNumber conflicts arise. Resolve by either reassigning the incoming EMPLID suffix or purging the pre-existing Fusion record before the bulk load.Manager.dat. Detect cycles in PS_ASSIGNED_SUPSR pre-load and break cycles by demoting the secondary link to a non-manager role.PS_BEN_PROG_PART or PS_HEALTH_BEN. Fusion Benefit Groups are loaded via BenefitGroup.dat and must precede Worker.dat for enrollment inheritance. Missing this ordering causes enrollment records to orphan.Cutover must be reversible until the final DNS/SSO switch. Maintain a Fusion pre-load snapshot by exporting the Worker.dat baseline via hcmRestApi/resources/workers?limit=10000. On any critical failure, invoke the HDL DELETE mode on the loaded object set, re-import the baseline, and investigate. For delta reconciliation, compare PeopleSoft's final PS_JOB row counts (by EMPLID + EFFDT) against Fusion's Assignment endpoint counts within a 15-minute window post-load. No-go triggers: any headcount delta > 0, any missing reporting-manager link, or any position assignment without a valid PositionId. Only after zero-delta sign-off should the integration runtime point-of-no-return be crossed.
Reading the reference is free. Delivering it under liability — with the safeguards that keep production running through the cutover — is what we do.