Comment créer un organigramme à partir de CSV
Comment transformer une exportation CSV SIRH en un graphique de la ligne hiérarchique : résolvez l'employé_id et le manager_id en numéros de ligne, inversez la direction vers laquelle pointe la colonne du responsable et gérez les…
Un export SIRH stocke la hiérarchie sous forme de pointeur (chaque ligne nomme son responsable et rien ne nomme ses rapports), donc la convertir en graphique est une recherche des identifiants aux numéros de ligne plus une inversion de direction.
En bref
- Employee_id et manager_id sont des identifiants ; La ligne vers prend les numéros de ligne basés sur 1. La conversion est une recherche.
- manager_id pointe vers le haut de l'arborescence, Line vers le bas du flux : inversez-le ou chaque flèche va vers l'arrière.
- Un manager_id sans employe_id correspondant signifie que l'exportation a été filtrée, et non que la personne n'a pas de patron.
- Deux rangées qui se nomment constituent un cycle : la montée ne se termine jamais. Trouvez-le dans le fichier, pas sur la toile.
- La profondeur de la ligne hiérarchique correspond à la colonne Voie horizontale, de sorte que chaque niveau d'autorité dispose de sa propre voie.
Ce que vous donne réellement une colonne manager_id
Un export SIRH est un fichier texte brut avec une ligne par personne : employé_id, manager_id, un nom, un titre de poste, un centre de coûts et généralement une ou deux colonnes décrivant ce que cette personne est autorisée à approuver. La hiérarchie est là, mais elle est stockée sous forme de pointeur. Chaque ligne nomme son gestionnaire et aucune ligne ne nomme ses rapports, ce qui est la bonne façon de conserver une arborescence dans un tableau et la raison pour laquelle le fichier ne devient pas un graphique en étant collé.
Il existe deux diagrammes différents que les gens entendent par « organigramme à partir de CSV ». L'un est l'arbre : une case par personne, les managers au-dessus de leurs rapports, lisent pour répondre à qui rend compte à qui. QueryChart dispose d'un éditeur d'organigramme dédié à cette forme et c'est le meilleur outil pour cela. L'autre est la ligne de reporting en tant qu'itinéraire (le chemin qu'emprunte une demande à mesure qu'elle monte de la personne qui l'a formulée à la personne autorisée à la signer), et c'est un organigramme, c'est le sujet de cette page.
La conversion consiste en deux opérations à l'exportation. La première est une recherche : la colonne Ligne vers prend en compte les numéros de ligne basés sur 1, pas les identifiants, donc E1042 situé dans une cellule ne connecte rien. La seconde est une inversion : manager_id pointe vers le haut de l'arborescence, d'un enfant vers son parent, tandis que Line to pointe vers le bas du flux, d'une ligne vers les lignes auxquelles il mène. La mise en forme du fichier qui survit au collage est abordée dans /fr/guides/comment-structurer-un-fichier-csv-pour-les-organigrammes, et la version parent-enfant simple des mêmes données se trouve dans /fr/templates/modele-de-hierarchie-csv-parent-enfant-repartition-du-catalogue-de-produits.
L’exemple ci-dessous est une chaîne d’approbation construite à partir d’une exportation exactement de ce type. Il contient les trois éléments qui rendent les données SIRH réelles gênantes : une ligne sans responsable, une protection contre un demandeur assis dans sa propre chaîne d'approbation et un approbateur en congé avec un délégué nommé sur sa ligne. Ouvrez le panneau de feuille de calcul en dessous et lisez la colonne Ligne vers à côté du canevas.
Comment cela fonctionne
Exporter les colonnes dont dépend le routage
Vous avez besoin d'employee_id, de manager_id et d'un nom lisible pour chaque personne. Ajoutez le titre du poste, le centre de coûts, la limite d'approbation et toute colonne de délégué, car ce sont eux qui décident où une demande cesse de grimper. Oubliez tout ce que le graphique n'affichera jamais (salaire, adresse, date de début), car un fichier plus restreint est beaucoup plus facile à vérifier à l'œil nu et une colonne non reconnue est transférée dans le collage et ignorée de toute façon.
Lire le fichier sous forme de texte avant une feuille de calcul
Ouvrez d'abord l'exportation dans un éditeur de texte. Vérifiez que le délimiteur est une virgule et non un point-virgule, que les noms contenant une virgule sont entourés de guillemets doubles, que le fichier est au format UTF-8 afin que les noms accentués survivent et que le premier en-tête est bien Employee_id plutôt qu'une marque d'ordre d'octet suivie de Employee_id. Chacun de ces éléments échoue silencieusement : les colonnes correspondent au nom de l'en-tête, donc un en-tête qui n'est pas exactement ce que vous pensez ne correspond à rien.
Décidez lequel des deux diagrammes vous construisez
Une case par personne, classée par qui rend compte à qui, est un arbre et appartient à l'éditeur d'organigramme. Le chemin parcouru par une demande à travers la ligne hiérarchique est un organigramme et appartient ici : une ligne par étape plutôt qu'une ligne par personne, l'exportation fournissant les niveaux, les limites et les délégués. Décidez-en avant de commencer à numéroter les lignes, car les deux formes ne se transforment pas l'une en l'autre.
Inverser manager_id en numéros de ligne
Triez les lignes dans l'ordre dans lequel vous souhaitez qu'elles soient numérotées en premier, car la ligne vers fait référence aux positions et la renumérotation ultérieure recâble tout. Ensuite, pour chaque personne, collectez les numéros de ligne de toutes les personnes dont le manager_id est égal à l'employee_id de cette personne et placez-les dans la ligne to de cette personne, séparés par des virgules. Les rapports deviennent des flèches sortantes ; manager_id n'est que la clé de recherche et n'est jamais collée dans Line sur elle-même.
Résoudre les orphelins et les cycles dans le fichier
Triez par manager_id et confirmez que chaque valeur apparaît sous la forme d'employe_id quelque part dans le même fichier. Ceux qui ne le sont pas sont orphelins, généralement parce que l’exportation a été limitée à un seul service ou au personnel actif uniquement. Ensuite, parcourez chaque chaîne vers le haut et arrêtez-vous si vous revisitez une ligne : une paire de lignes se nommant mutuellement est un cycle, et il s'agit soit d'un arrangement agissant que personne n'a clôturé, soit de deux lignes modifiées le même jour par des personnes différentes.
Collez-le, puis ajoutez des formes et des voies
Déposez le fichier .csv dans la zone de feuille de calcul d'un nouveau graphique ou collez-y le texte CSV. Définissez Forme sur Décision sur les lignes qui posent une question et Début, Succès et Rejet sur les terminateurs, placez les réponses dans le texte de ligne dans le même ordre que la Ligne vers les nombres et placez le niveau d'autorité dans la colonne Voie horizontale afin que chaque échelon de la ligne hiérarchique obtienne sa propre voie.
Erreurs à éviter
manager_id pointe vers le haut, la ligne vers le bas
La colonne manager nomme un parent ; la ligne vers la colonne nomme les successeurs. Déplacez-vous l'un dans l'autre sans changement et chaque flèche va d'une personne à son patron. Le tell est le sommet de l'organisation : il se termine par des flèches pointant vers lui de toutes les directions et aucune n'en sort.
Un Employee_id n'est pas un numéro de ligne
Ligne pour lire les positions dans la feuille (les chiffres en bas à gauche de l'éditeur), donc une cellule contenant E1042 ou 00147 ne connecte rien et ne génère aucune erreur. Effectuez la jointure lors de l'export, en remplaçant les identifiants par des positions, avant de coller. /fr/guides/comment-definir-des-connexions-d-organigramme-en-csv couvre cette colonne en détail.
Gestionnaires que l'export ne contient pas
Un manager_id sans ligne Employee_id correspondante est orphelin, et cela ne signifie presque jamais que la personne n'a pas de manager. Les exportations à l'échelle du département, les filtres actifs uniquement et un sortant dont le remplacement n'a jamais été enregistré le produisent tous. Le vide tout en haut de l’organisation est le seul cas légitime.
Le tableur a réécrit tranquillement les identifiants
Les nombres d'employés avec des zéros non significatifs sont la victime classique : ouvrez le CSV dans une feuille de calcul et 00147 devient 147, donc la moitié des jointures manager_id ne correspondent plus et vous obtenez une forêt d'arbres pour une seule personne. Travaillez à partir du texte brut ou importez les colonnes d'ID sous forme de texte et comparez le nombre de lignes de votre jointure avec le nombre de lignes du fichier.
Questions fréquentes
QueryChart peut-il importer directement un organigramme CSV ?
Vous obtenez les lignes en déposant le .csv sur la zone de la feuille de calcul ou en y collant le texte CSV, et les colonnes sont mises en correspondance par nom d'en-tête plutôt que par position, de sorte que l'ordre dans lequel elles se trouvent n'a pas d'importance et tout ce qui n'est pas reconnu est effectué et ignoré. Ce qu'il ne fera pas, c'est déduire une hiérarchie pour vous : il n'y a pas d'assistant d'importation, pas d'écran de mappage de colonnes et pas de connecteur vers un système RH. Le fichier doit déjà indiquer, dans la colonne Ligne vers, à quels numéros de ligne chaque ligne se connecte.
Dois-je utiliser l’éditeur d’organigramme ou l’éditeur d’organigramme ?
Si le résultat est un arbre d'effectifs (une case par personne, les managers au-dessus des rapports, à lire pour savoir qui relève de qui), utilisez l'éditeur d'organigramme dédié, qui est conçu pour cette forme et conserve un seul parent par personne. Utilisez l'éditeur d'organigramme lorsque la ligne hiérarchique est un itinéraire plutôt qu'une image : une approbation qui grimpe jusqu'à atteindre quelqu'un avec une limite suffisamment élevée, un chemin d'escalade, une demande qui doit contourner la Finance. Ceux-ci contiennent des décisions et des exceptions, et une décision n’est pas quelque chose qu’un arbre peut dessiner.
Que se passe-t-il si deux personnes se signalent ?
Le graphique le dessinera (une paire de flèches pointant l'une vers l'autre), mais tout ce qui parcourt la chaîne vers le haut ne se terminera pas, c'est pourquoi vous vérifiez les cycles dans le fichier plutôt qu'après le collage. En pratique, un cycle est un arrangement de jeu que personne n'a clôturé, ou deux lignes éditées le même jour par des personnes différentes. L'exemple de graphique protège contre la version de routage du même problème avec la décision « Le demandeur est-il à l'intérieur de sa propre chaîne d'approbation ? », qui saute un niveau au lieu de boucler.
Mon export est délimité par des points-virgules et certains noms contiennent des virgules.
Les deux sont normaux pour les exportations SIRH et les deux peuvent être corrigés dans le fichier. Une exportation délimitée par des points-virgules (courante lorsque le système a été configuré pour des paramètres régionaux européens) doit être réexportée ou convertie en virgules ; collez-le tel quel et toute la ligne d'en-tête atterrit dans une seule colonne, ce qui au moins échoue de manière évidente plutôt que subtile. Une valeur contenant une virgule est légale tant qu'elle est placée entre guillemets doubles, donc "Nakamura, Yuki" reste un champ tandis que le même texte sans guillemets devient deux.
Comment maintenir le graphique à jour lorsque le SIRH évolue ?
En réexportant et recollant, pas en connectant les deux : il n'y a pas de lien direct entre QueryChart et un système RH. Cela importe moins qu'il n'y paraît, car ce que vous avez dessiné est la règle de routage plutôt que la liste : "transmettre au chef de service lorsque le montant dépasse la limite du supérieur hiérarchique" survit à une réorganisation qui change chaque nom du dossier. Refaites l'export lorsque les niveaux ou les limites changent et laissez-le tranquille lorsque seules les personnes le font. /csv-to-flowchart contient la version courte de l'ensemble de la conversion.