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.
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
Picklists
Les listes de valeurs›Ce qu'on chargeToutes 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 cascadeCe qui doit exister avantRien, 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ègesMapper 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
Référentiels : FO et MDF
La structure de l'entreprise›Ce qu'on chargeEntité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 ReasonCe qui doit exister avantLes picklists. Et un ordre interne : les parents avant les enfants (business units avant divisions, divisions avant départements), les associations en dernier.Les piègesDes 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
Positions
Si Position Management est activé›Ce qu'on chargeLe référentiel des positions : codes, intitulés, rattachement à la classification d'emploi, hiérarchie de positions, FTE cible.
PositionHiérarchie de positionsCe qui doit exister avantLes référentiels, en particulier les classifications d'emploi et la structure organisationnelle.Les piègesLa 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
Basic Import : la table User
Premier fichier collaborateur, ordre SAP›Ce qu'on chargeLe 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.
USERIDUSERNAMESTATUSCe qui doit exister avantLes 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ègesLe 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
Biographical Information
La personne›Ce qu'on chargeCré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 avantLe Basic Import : l'ordre SAP est strict, le user d'abord, la personne ensuite.Les piègesLe 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
Employment Details
La relation de travail›Ce qu'on chargeRelie 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 avantLa personne (Biographical) et le user (Basic Import) doivent exister tous les deux.Les piègesConfondre 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
Job History
L'historique de poste›Ce qu'on chargeLes 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 avantEmployment 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ègesLe 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
Personal Information et coordonnées
État civil et contact›Ce qu'on chargeL'é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éphoneCe qui doit exister avantLa personne (Biographical). Pour les adresses et identifiants nationaux, les formats par pays doivent être configurés.Les piègesL'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
Rémunération
Compensation et composants›Ce qu'on chargeL'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 RecurringCe qui doit exister avantJob 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ègesDevise 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
Compléments
Tout ce qui se rattache à l'emploi›Ce qu'on chargeRelations 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 à chargeCe qui doit exister avantLes emplois chargés et les managers posés : une relation HR manager pointe vers un emploi qui doit exister.Les piègesLes 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
Contrôles et réconciliation
La preuve que c'est juste›Ce qu'on chargeRien : 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éconciliationCe qui doit exister avantTout le reste. Et des critères d'acceptation définis avant le chargement, pas après.Les piègesRé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.
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.
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.
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.
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.
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.
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.
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.
Les quatre règles d'or
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.
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.
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.
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