Méthode

La migration de données SuccessFactors, dans le bon ordre

Sur un projet SuccessFactors, la migration de données est le chantier dont tout le monde connaît l'importance et que tout le monde démarre trop tard. Coincée entre la configuration et la recette, repoussée parce que « les données du legacy seront propres, promis », elle finit en sprint la veille du chargement. Pourtant, c'est elle que vos utilisateurs jugeront au premier matin : personne ne remarquera votre configuration, tout le monde verra une date d'ancienneté fausse ou un manager manquant.

Et dans Employee Central, tout se tient : un emploi pointe vers des référentiels, une rémunération pointe vers un emploi, un manager pointe vers un autre emploi. Charger dans le mauvais ordre, c'est garantir des rejets en cascade et des journées perdues à rejouer des fichiers.

Voici l'ordre qui fonctionne, étape par étape. Cliquez sur chacune pour voir ce qu'on charge, ce qui doit exister avant, et les pièges qui nous ont tous eus au moins une fois.

Pas à pas

Les onze étapes du chargement

Du socle vers le détail : chaque étape suppose que les précédentes sont chargées et validées. À partir du Basic Import, l'ordre des fichiers collaborateurs est celui documenté par SAP.

Sources SAP : KBA 2080146, ordre des imports collaborateurs · KBA 2315276, Employee Data Imports · SAP Learning, Importing Employee Data

  1. 1

    Picklists

    Les listes de valeurs›
    Ce qu'on charge

    Toutes les listes de valeurs utilisées par les champs : types de contrat, genres, motifs, statuts marital… Sans elles, le moindre import de données échoue sur la première colonne à liste.

    Picklists standardPicklists customPicklists en cascade
    Ce qui doit exister avant
    Rien, c'est le point zéro. Mais le mapping des valeurs sources vers les codes cibles doit être figé et validé par le métier.
    Les pièges
    Mapper les libellés au lieu des codes (external_code) : un libellé traduit ou corrigé et tout se décale.
    Oublier les picklists en cascade : la valeur enfant doit exister sous le bon parent, pas seulement exister.
  2. 2

    Référentiels : FO et MDF

    La structure de l'entreprise›
    Ce qu'on charge

    Entités légales, business units, divisions, départements, centres de coûts, sites, classifications d'emploi, grades, composants de paie, motifs d'événement. Tout ce que les emplois vont pointer par clé étrangère.

    Legal EntityBusiness UnitDivisionDepartmentCost CenterLocationJob ClassificationPay ComponentEvent Reason
    Ce qui doit exister avant
    Les picklists. Et un ordre interne : les parents avant les enfants (business units avant divisions, divisions avant départements), les associations en dernier.
    Les pièges
    Des dates d'effet de référentiels qui commencent trop tard : un référentiel créé au 01/01/2020 fait rejeter l'embauche reprise de 2015. La date de début doit couvrir la plus ancienne donnée reprise.
    Charger les associations (division vers business unit…) avant que les deux côtés existent.
    Laisser les codes évoluer pendant le projet : un référentiel se gèle, sinon tous les fichiers suivants sont à refaire.
  3. 3

    Positions

    Si Position Management est activé›
    Ce qu'on charge

    Le référentiel des positions : codes, intitulés, rattachement à la classification d'emploi, hiérarchie de positions, FTE cible.

    PositionHiérarchie de positions
    Ce qui doit exister avant
    Les référentiels, en particulier les classifications d'emploi et la structure organisationnelle.
    Les pièges
    La hiérarchie de positions se charge parents d'abord, ou en deux passes : d'abord les positions, ensuite les liens de parenté.
    Des positions occupées dans la cible avant que les emplois soient chargés : décidez si la synchronisation position vers emploi est active pendant la migration, ou coupée puis rejouée.
  4. 4

    Basic Import : la table User

    Premier fichier collaborateur, ordre SAP›
    Ce qu'on charge

    Le Basic Import crée les comptes dans l'annuaire utilisateurs (la table User) : userId, username, statut. C'est lui qui réserve le userId de chaque emploi, avant toute donnée RH. À partir d'ici, l'ordre des fichiers est imposé par SAP.

    USERIDUSERNAMESTATUS
    Ce qui doit exister avant
    Les picklists et les référentiels. Côté collaborateur, rien : c'est la toute première brique, tous les imports EC suivants s'y rattachent.
    Les pièges
    Le userId s'attribue ici et ne se change plus jamais : la règle de codification se valide avant ce fichier, pas après.
    Un Basic Import seul ne fait pas un « EC user » : sans les imports qui suivent (Biographical, Employment, Job), l'utilisateur existe mais reste invisible de la synchro et des rapports.
  5. 5

    Biographical Information

    La personne›
    Ce qu'on charge

    Crée la personne : person_id_external, date de naissance, pays de naissance. C'est l'ancre de toutes les données Per* qui viendront ensuite.

    Biographical Information (PerPerson)
    Ce qui doit exister avant
    Le Basic Import : l'ordre SAP est strict, le user d'abord, la personne ensuite.
    Les pièges
    Le person_id_external prend souvent la même valeur que le userId du premier emploi : pratique, mais documentez la règle pour les réembauches, là où les deux divergent.
    Les formats de date : un fichier en MM/JJ/AAAA chargé en JJ/MM/AAAA passe sans erreur pour les 12 premiers jours du mois. Le pire rejet est celui qui ne se produit pas.
  6. 6

    Employment Details

    La relation de travail›
    Ce qu'on charge

    Relie la personne (person_id_external) au user (userId) et porte les dates structurantes du contrat : embauche, ancienneté, assignment.

    Employment Details (EmpEmployment)
    Ce qui doit exister avant
    La personne (Biographical) et le user (Basic Import) doivent exister tous les deux.
    Les pièges
    Confondre date d'embauche et date d'ancienneté (originalStartDate) : l'écart se paie des années plus tard sur les droits et les calculs.
    Cas de la réembauche : SAP précise que pour mettre à jour l'Employment Information d'un rehire, l'import Job Information doit passer avant l'import Employment Details (KBA 2080146).
  7. 7

    Job History

    L'historique de poste›
    Ce qu'on charge

    Les tranches datées de Job Information : poste, organisation, manager, statut, à la date d'effet de chaque événement repris.

    Job History (EmpJob)
    Ce qui doit exister avant
    Employment Details, les référentiels et les positions. C'est ici que tout converge : chaque ligne pointe vers une dizaine d'objets déjà chargés.
    Les pièges
    Le manager n'est pas encore chargé : classique des références circulaires. La parade standard : charger tout le monde avec NO_MANAGER, puis une seconde passe qui pose les vrais managers.
    Deux tranches le même jour exigent un numéro de séquence : sans lui, la seconde écrase la première.
    Utiliser un motif d'événement métier au lieu du motif de reprise dédié : vos statistiques d'embauches de l'année explosent.
    Oublier les inactifs : les salariés partis doivent souvent être repris aussi (ancienneté, réembauche, légal), avec leur statut final correct.
  8. 8

    Personal Information et coordonnées

    État civil et contact›
    Ce qu'on charge

    L'état civil (Personal Information), puis les identifiants nationaux, adresses, e-mails et téléphones. Dans l'ordre minimal SAP, Personal Information vient après Job History.

    Personal InformationNational IDAdressesE-mailTéléphone
    Ce qui doit exister avant
    La personne (Biographical). Pour les adresses et identifiants nationaux, les formats par pays doivent être configurés.
    Les pièges
    L'encodage : les accents et caractères spéciaux exigent de l'UTF-8 de bout en bout, sous peine de prénoms défigurés.
    Les adresses : chaque pays a son format ; une adresse allemande chargée dans le gabarit français perd des champs en silence.
    Les identifiants nationaux ont un format contrôlé par pays : un NIR avec espaces là où le système attend du compact, et tout le fichier tombe.
  9. 9

    Rémunération

    Compensation et composants›
    Ce qu'on charge

    L'en-tête de rémunération puis les composants : Compensation Information d'abord, ensuite les composants récurrents (salaire de base, primes régulières), enfin les versements ponctuels si repris.

    Compensation InformationPay Component RecurringPay Component Non Recurring
    Ce qui doit exister avant
    Job History chargé (la rémunération se cale sur les tranches d'emploi) et les composants de paie côté référentiels.
    Les pièges
    Devise ou fréquence incohérente avec le composant : des annuels chargés en mensuels donnent des compa-ratios à 1200 % qui sautent aux yeux du premier manager venu.
    Les arrondis de conversion entre système source et cible : fixez la règle (combien de décimales, qui arrondit) avant le premier fichier.
  10. 10

    Compléments

    Tout ce qui se rattache à l'emploi›
    Ce qu'on charge

    Relations hiérarchiques additionnelles (HR manager, manager matriciel), coordonnées bancaires, contacts d'urgence, personnes à charge, et le cas échéant les documents.

    Job RelationshipsPayment InformationContacts d'urgencePersonnes à charge
    Ce qui doit exister avant
    Les emplois chargés et les managers posés : une relation HR manager pointe vers un emploi qui doit exister.
    Les pièges
    Les coordonnées bancaires passent par un moteur de validation : un IBAN mal formé est rejeté, prévoyez un nettoyage source dédié.
    Les relations qui pointent vers des emplois terminés ou non repris : à filtrer en amont, pas à corriger en aval.
  11. 11

    Contrôles et réconciliation

    La preuve que c'est juste›
    Ce qu'on charge

    Rien : on compte, on compare, on prouve. Volumes par entité et par population, contrôles ciblés sur les cas à risque, recette métier sur échantillon, rapport de réconciliation signé.

    Comptages source vs cibleÉchantillons ciblésRecette métierRapport de réconciliation
    Ce qui doit exister avant
    Tout le reste. Et des critères d'acceptation définis avant le chargement, pas après.
    Les pièges
    Réconcilier en volume mais pas en contenu : 10 000 lignes chargées sur 10 000 ne disent rien de la qualité des valeurs.
    Échantillonner au hasard plutôt que sur les populations à risque : multi-emplois, expatriés, temps partiels, retours de congé, réembauchés. C'est là que ça casse.
    Ne pas garder de trace : le rapport de réconciliation signé est votre meilleure défense au premier écart de paie.
Fichiers et formats

Le fichier lui-même est un risque

Avant même le contenu, le contenant fait échouer des chargements entiers. Six classiques à neutraliser dès la préparation des gabarits.

Les zéros de tête disparaissent

Ouvert dans Excel, l'identifiant 00123 devient 123, le matricule paie 00010231 devient 10231, le code postal 01000 devient 1000. Le fichier se charge sans erreur, avec les mauvaises clés. Évitez si possible les codifications qui démarrent par zéro.

La paradeColonnes typées en texte, jamais en nombre, et contrôle de longueur systématique sur les identifiants. Et surtout : ne pas ouvrir ces fichiers dans Excel (voir notre recommandation plus bas).

Le CSV n'est pas un format unique

Séparateur virgule ou point-virgule selon la locale, guillemets non échappés, retours à la ligne dans une cellule : le même fichier se lit différemment selon la machine qui l'a produit.

La paradePartir du gabarit téléchargé depuis SuccessFactors, fixer le séparateur une fois pour toutes, et bannir les retouches manuelles de dernière minute.

L'encodage défigure les accents

Un fichier en ANSI chargé en UTF-8 transforme François en François. Pire : certains outils ajoutent un BOM invisible qui fait échouer la lecture de la première colonne.

La paradeUTF-8 de bout en bout, de l'extraction au chargement. Test express : vérifier un échantillon de noms accentués après chaque conversion.

Les dates ambiguës passent en silence

Un fichier en MM/JJ/AAAA chargé comme du JJ/MM/AAAA est accepté sans broncher pour les 12 premiers jours du mois : 03/04 et 04/03 sont tous deux valides. L'erreur ne se voit que des mois plus tard.

La paradeCaler tous les fichiers sur le format attendu par le gabarit, et contrôler un échantillon de dates dont le jour dépasse 12.

Excel passe en notation scientifique

Un identifiant long ou un IBAN numérique devient 1,02E+15 à l'ouverture, et la valeur d'origine est perdue dès l'enregistrement. Le rejet arrive au chargement, ou pas du tout.

La paradeNe jamais ré-enregistrer un CSV depuis Excel sans précaution : passer par l'import de données en texte, ou travailler les fichiers dans un éditeur dédié.

Décimales et montants

Virgule décimale française contre point anglo-saxon, séparateurs de milliers, symboles monétaires résiduels : 1 234,56 € peut devenir 123456 ou faire rejeter la ligne selon l'humeur de la conversion.

La paradeMontants bruts sans symbole ni séparateur de milliers, point décimal, devise dans sa propre colonne. La règle se valide sur le premier fichier de rémunération.

Notre recommandation, qui est aussi celle de SAP : LibreOffice ou OpenOffice

Pour ouvrir et retoucher les fichiers de migration, préférez LibreOffice ou OpenOffice Calc à Excel. À chaque ouverture d'un CSV, leur fenêtre d'import vous demande l'encodage (choisissez UTF-8), le séparateur et le type de chaque colonne : en passant les colonnes d'identifiants en Texte, les zéros de tête et les identifiants longs ressortent intacts. Excel, lui, décide tout seul et convertit sans prévenir. SAP le dit explicitement dans le KBA 2087490 : ne pas ouvrir les fichiers de données utilisateurs avec Excel.

Avant de charger quoi que ce soit

Les quatre règles d'or

1

Historique ou photo : décidez tôt

Reprendre tout l'historique ou une photo à date (avec une reprise d'ancienneté), c'est un arbitrage de coût, de qualité et de conformité. Il conditionne le format de tous les fichiers : on ne change pas d'avis à mi-projet.

2

Trois répétitions minimum

Une migration ne se réussit pas le jour J, elle se répète : au moins trois chargements à blanc complets, chronométrés, avec journal des anomalies et taux de rejet qui doit tendre vers zéro.

3

Un event reason dédié

Créez un motif « Reprise de données » pour toutes les tranches migrées. Vos analyses futures distingueront ainsi la donnée reprise de la donnée vivante, et le support saura immédiatement d'où vient une ligne.

4

Gel des saisies au cutover

Entre l'extraction finale et le go-live, plus personne ne saisit dans l'ancien système sans procédure de rattrapage. Chaque saisie sauvage pendant le gel est un écart à expliquer le lundi matin.

Une migration se joue avant le premier fichier

Cadrage de la reprise, qualité des données sources, stratégie de chargement et réconciliation : on a outillé chacune de ces étapes. Parlons de la vôtre.

Contactez-nous
Experts SAP SuccessFactors. Humains avant tout.