SAP SuccessFactors · HCM · Historical

    SAP SuccessFactors Job Information Migration

    Migrate job information into SuccessFactors Employee Central, covering effective-dated job_info records, event reasons, Foundation Object references, manager assignment and historical job change sequencing.

    Object overview

    job_info is the effective-dated heart of Employee Central. Every job change, transfer, position change, manager change and status change is a dated row, and the set of rows for a worker is their employment history.

    Two rules govern the object absolutely: rows must be chronologically sequenced and non-overlapping, and every Foundation Object a row references must already exist. Employee Central rejects the whole set for a worker rather than the offending row, which makes date reconstruction the dominant task.

    What data is typically migrated

    Scope is agreed in discovery; this is the shape of the object.

    Data areaTypical information
    Job informationEffective date, event, event reason, position, job classification
    Organisational assignmentLegal entity, business unit, division, department, location
    Employment detailsEmployee class, employment type, FTE, standard hours, pay group
    ManagerSupervisor reference, itself another worker
    Cost assignmentCost centre and cost distribution
    Event historyThe sequence of dated rows reconstructing the employment record

    Object relationships

    Dependency drives load sequence: a child cannot exist before its parent.

    Foundation Objects (legal entity, BU, department, location, job classification, pay group)
    └─ Position (where position management applies)
    └─ job_info row (dated)
    └─ Manager reference → another worker's job_info
    └─ Cost centre assignment

    Object migration flow

    Source Job InformationDataMoveMap & transformValidateSAP SuccessFactors Job InformationDataVault reconciliationSign-off

    Before you migrate this object

    Confirm each of these before the first migration cycle.

    Foundation Objects are configured and their effective dating covers the historical range
    Event and event reason picklists are configured
    History depth is agreed and signed off
    Position management scope is decided
    The manager second-pass approach is planned into the cycle
    Employment status mapping is approved

    Common source systems

    Production-proven means we have delivered this object from that source. Supported and custom-mapping describe capability, not delivery history.

    Oracle JD Edwards Production-provenPeopleSoft SupportedSAP HCM SupportedWorkday Supported

    Source-to-target mapping examples

    Object-level equivalence. Field-level mapping is produced per engagement.

    Source systemSource entityTarget object
    JD EdwardsEmployee Master + historyjob_info dated rows
    PeopleSoftJOB (effdt / effseq)job_info dated rows
    WorkdayStaged eventsjob_info dated rows

    Migration methods for this object

    Import Employee Data — job information template

    Full purge for the initial load; incremental for later cycles

    Manager assignment as a second pass once the full population exists

    Extraction considerations

    History depth is a scope decisionEvery historical change becomes a row. Deep history multiplies volume substantially and is often better archived than loaded.
    Event and event reasonEmployee Central expects an event and event reason on each row. Sources that record only the resulting values need the event type deriving from what changed.
    Effective sequence in PeopleSoftMultiple changes on the same date are distinguished by effective sequence, which must collapse into a single dated row or a defensible ordering.
    Manager as at the dateHistorical rows reference whoever managed the worker at that time, not the current manager.

    Transformation rules

    Date reconstructionSource history converted into contiguous, non-overlapping dated rows. Gaps and overlaps cause outright rejection.
    Event derivationComparing consecutive rows to determine what changed, and mapping that to the configured event and event reason.
    Foundation Object crosswalksDepartment, location, job classification and pay group values mapped to configured Foundation Objects.
    Employment status mappingSource status values mapped onto Employee Central's employment status model.
    Manager resolutionApplied in a second pass, resolving to the manager's Person ID External at the row's effective date.

    Data quality and validation

    No gaps or overlaps

    Per worker, across the whole dated set.

    Foundation Objects exist

    Every referenced object is configured and effective at the row date.

    Event and event reason valid

    Against the configured picklists.

    Manager exists at the effective date

    Not merely currently.

    First row aligns with the employment start

    job_info cannot begin before the employment record.

    Position exists and is valid

    Where position management is in scope.

    Load sequence and dependencies

    What has to exist before this object can load.

    1. 1Foundation Objects
    2. 2Positions
    3. 3Basic user information and person
    4. 4Employment information
    5. 5job_info dated rows in chronological order
    6. 6Manager assignment second pass
    7. 7Compensation information

    Common migration errors

    What actually fails on this object, and why.

    Overlapping effective datesThe whole job_info set for that worker is rejected.
    Foundation Object not foundThe referenced department, location or job classification does not exist.
    Foundation Object not effective at the row dateIt exists but its own effective dating starts later than the historical row.
    Manager not foundSelf-referential data loaded in a single pass instead of two.
    Invalid event reasonNot configured, or not valid for that event type.
    job_info before employment startThe dated row precedes the employment record it belongs to.

    Reconciliation

    Counts alone rarely prove this object migrated correctly.

    Row count per worker compared to the source change history

    Date span per worker against the agreed history depth

    Current-state comparison: the latest row per worker matches the source current values

    Manager coverage after the second pass

    Foundation Object distribution compared to source, which surfaces crosswalk gaps

    Workers rejected in full, categorised by reason

    Should all historical records be migrated?

    Deep job history is a strong archive candidate. Employee Central needs enough history to support HR operations and statutory reporting; decades of historical job rows inflate the instance and slow every migration cycle. Archiving the tail keeps it queryable without loading it.

    Frequently asked questions

    Why is a whole worker rejected instead of one job_info row?
    Employee Central validates the dated set as a unit. A gap or overlap anywhere in the sequence invalidates the set, so the worker's entire job history is rejected rather than the single offending row.
    What if a Foundation Object did not exist historically?
    Foundation Objects are themselves effective-dated. A historical job_info row referencing a department created last year will fail, so Foundation Object effective dating has to cover the historical range being loaded.
    How are managers assigned?
    In a second pass. A manager is another worker, so the full population must exist before manager references resolve — and historical rows must resolve to whoever held the role at that date.
    How much job history should be migrated?
    Enough for HR operations and statutory reporting. Every historical change is a row, so deep history multiplies volume; the usual pattern is to migrate a defined recent window and archive the rest.

    Planning a similar data migration?

    Tell us your source application, target system, object scope, volume and migration timeline. We can discuss the recommended migration approach and relevant Syntra ETL project experience.