Erreurs de chargement Maximo les plus courantes : diagnostic et corrections
Mis à jour le · VAGANET EAM
En bref. Presque tous les rejets de chargement Maximo tombent dans six familles : accès refusé, valeur hors domaine, référence absente (parent, site, organisation), champ obligatoire ou longueur, format (dates, décimales) et doublon ou verrou. Lisez le message complet de la réponse, classez l'erreur, corrigez à la source, puis rejouez uniquement les lignes rejetées.
Un chargement ne « plante » presque jamais pour une raison mystérieuse. Maximo applique ses règles métier ligne par ligne et renvoie un code BMXAA… avec un message qui nomme l'objet, le champ ou la valeur. La difficulté est d'abord de lire ce message, ensuite de décider si la correction se fait dans le fichier ou dans la configuration de l'environnement.
Lire une erreur avant de la corriger
Trois informations suffisent pour diagnostiquer : l'objet concerné (asset, location, item…), le champ ou la valeur cités, et la ligne du fichier. Notez-les avant toute modification. Deux réflexes évitent des heures perdues :
- Traiter la première erreur d'un objet parent d'abord. Si un emplacement échoue, tous les actifs qui le référencent échoueront ensuite : ce sont des erreurs en cascade, pas des problèmes distincts.
- Reproduire à la main. Saisissez la même valeur dans l'application Maximo concernée. Si la saisie échoue aussi, la cause est la configuration ; sinon elle est dans le fichier.
Les six familles d'erreurs
| Famille | Symptôme typique | Cause fréquente | Correction |
|---|---|---|---|
| Accès refusé | 401, 403 ou message « not authorized » | Identifiant ou clé invalide, object structure non accordée au groupe de l'utilisateur | Vérifier l'authentification, puis les droits (voir plus bas) |
| Valeur hors domaine | Valeur « not valid » pour un champ à liste | Statut, type, unité de mesure absents du domaine de l'environnement cible | Aligner le fichier sur le domaine, ou ajouter la valeur après décision métier |
| Référence absente | Objet parent, site ou organisation introuvable | Ordre de chargement non respecté, ou clé écrite autrement | Charger les référencés avant les référençants ; contrôler la casse et les espaces |
| Obligatoire / longueur | Champ obligatoire vide, valeur trop longue | Colonne vide dans le fichier, valeur plus longue que le champ Maximo | Renseigner ou raccourcir à la source ; ne jamais tronquer silencieusement |
| Format | Date ou nombre refusé | Format de date, séparateur décimal ou encodage non attendus | Normaliser avant chargement |
| Doublon ou verrou | Enregistrement existant, ou modifié par un autre utilisateur | Clé répétée dans le fichier, rechargement en création pure, traitement concurrent | Dédoublonner ; charger en AddChange ; éviter les chargements simultanés sur un même objet |
Accès refusé : authentification ou autorisation ?
Distinguez les deux. Une authentification en échec (401) signifie que Maximo ne reconnaît pas l'appelant : clé ou jeton expiré, mauvais environnement. Une autorisation en échec (403 ou « not authorized ») signifie que l'appelant est connu mais n'a pas le droit sur l'objet. Sur MAS 9, ce second cas est typique pour les object structures qui n'ont pas de nom d'autorisation ; il est détaillé dans le guide BMXAA9301E sur Maximo MAS 9.
Valeur hors domaine : le rejet le plus fréquent
Un champ gouverné par un domaine n'accepte que les valeurs de ce domaine, et celles-ci diffèrent d'un environnement à l'autre. Un statut d'actif valide en développement peut être absent de la recette. Avant de charger, extrayez les valeurs distinctes de chaque colonne à liste et comparez-les au domaine de l'environnement cible. Quand une valeur manque, la question n'est pas technique : c'est au métier de décider s'il faut mapper la valeur source vers une valeur existante ou créer la valeur dans le domaine, et dans ce cas de le faire dans la configuration avant le chargement.
Les domaines de synonymes ont leur propre piège : le fichier porte la valeur affichée, Maximo en déduit la valeur interne. Contrôlez les deux.
Références absentes et erreurs en cascade
La cause numéro un est l'ordre de chargement : un actif ne peut pas référencer un emplacement qui n'existe pas encore. Respectez l'ordre décrit dans le guide data init Maximo : organisation et site, listes de valeurs, emplacements (parents avant enfants), puis actifs. Si l'ordre est bon, cherchez les différences de saisie : espace en fin de valeur, casse, zéros de tête perdus par un tableur (« 00123 » devenu « 123 »).
Champs obligatoires, longueurs et formats
- Obligatoire : le caractère obligatoire peut dépendre de la configuration de l'environnement (champ rendu obligatoire localement). Comparez le fichier à la configuration de la cible, pas à celle de la source.
- Longueur : une description plus longue que le champ est rejetée. Mesurez les longueurs maximales dans le fichier avant le chargement ; décidez avec le métier de raccourcir ou d'utiliser le champ de description longue.
- Dates et nombres : un tableur réécrit silencieusement les dates et les décimales selon la langue du poste. Fixez un format unique, de préférence ISO pour les dates, et un séparateur décimal unique.
Doublons, verrous et rejeu
Une clé présente deux fois dans le fichier produit un conflit ; un rechargement en création pure d'objets
déjà chargés aussi. L'action AddChange crée ou met à jour selon la clé et rend le rejeu sûr.
Attention toutefois aux objets sans clé fonctionnelle unique : rejouer la même feuille peut dupliquer les
lignes, comme décrit dans le guide sur les
hiérarchies de défaillances. Quant aux messages
d'enregistrement modifié par un autre utilisateur, ils signalent un traitement concurrent : ne chargez pas
deux fichiers touchant le même objet en parallèle.
Méthode de reprise après rejets
- Exportez la liste des rejets avec objet, champ, valeur et message.
- Regroupez par cause, pas par ligne : une valeur de domaine manquante peut expliquer des milliers de rejets.
- Corrigez à la source et conservez le fichier corrigé comme version de référence.
- Rejouez les lignes rejetées en AddChange.
- Relisez Maximo et comparez avec le fichier : voir contrôler et prouver une reprise.
Ces rejets se découvrent le plus tôt possible sur un chargement d'essai (mock load), jamais le jour de la bascule (cutover). MAS9 vérifie les fichiers face à la configuration de chaque environnement avant chargement, de façon à faire remonter ces familles d'erreurs avant le premier envoi.
Questions fréquentes
Pourquoi mon chargement Maximo renvoie-t-il « Bad Request » sans détail ?
« Bad Request » est l'enveloppe HTTP : la raison précise est dans le corps de la réponse, sous la forme d'un code BMXAA… et d'un message. Lisez ce message en entier, il nomme presque toujours l'objet, le champ ou la valeur en cause. Si votre outil n'affiche que l'enveloppe, interrogez la réponse brute ou le suivi des messages d'intégration de Maximo.
Comment savoir si l'erreur vient du fichier ou de la configuration de Maximo ?
Rejouez la même ligne sur un autre environnement, ou saisissez la valeur à la main dans l'application. Si la saisie manuelle échoue aussi, la cause est la configuration de l'environnement (domaine, droit, paramètre). Si elle passe, la cause est dans le fichier : format, valeur ou ordre de chargement.
Faut-il relancer tout le fichier après avoir corrigé quelques lignes rejetées ?
Non, à condition de charger avec une action de type AddChange, qui crée ou met à jour selon la clé de l'objet. Rejouer les seules lignes rejetées, ou même tout le fichier, ne crée alors pas de doublon. Sans cette garantie, rejouer un fichier entier est risqué.
Une ligne chargée sans erreur est-elle forcément dans Maximo ?
Non. Un accusé de réception de l'outil n'est pas une preuve : une règle métier, un traitement différé ou une coupure peuvent laisser une ligne absente. La seule preuve est de relire Maximo après chargement et de comparer avec le fichier.
Charger vos données Maximo sans erreur silencieuse
MAS9 vérifie vos fichiers face à la configuration de chaque environnement, charge en reprise sans doublon après une coupure, puis relit Maximo pour prouver que chaque ligne est arrivée.
Découvrir MAS9