Aller au contenu
Dépannage

BMXAA9301E sur Maximo MAS 9 : « not authorized for Object Structure »

Mis à jour le · VAGANET EAM

En bref. Sur MAS 9, la propriété système mxe.int.enableosauth vaut 1 par défaut : une object structure sans nom d'autorisation est refusée, et une object structure sécurisée doit être accordée à l'utilisateur par un groupe de sécurité. Corrigez en sécurisant l'object structure (ou utilisez son équivalent MXAPI), puis accordez-la au groupe de l'utilisateur qui charge.

Un chargement qui passait sur Maximo 7.6 échoue sur MAS 9 avec Bad Request et le message BMXAA9301E - The user of the transaction is not authorized for Object Structure MXASSET. Le même fichier passe avec MXAPIASSET. L'erreur touche MxLoader, les scripts REST et les outils de chargement : elle vient de la sécurité des object structures, pas de l'outil.

La cause : mxe.int.enableosauth à 1 sur MAS 9

Maximo contrôle l'accès aux object structures par la propriété système mxe.int.enableosauth :

ValeurComportement
0 (défaut avant MAS 9)Tout utilisateur authentifié peut appeler une object structure sans nom d'autorisation
1 (défaut sur MAS 9)Une object structure sans nom d'autorisation est bloquée ; une object structure sécurisée exige un droit explicite par groupe de sécurité

Les object structures MXAPI* livrées par IBM sont déjà sécurisées et accordées aux groupes standard : elles passent. Les classiques (MXASSET, MXITEM…), les object structures personnalisées et celles créées par MxLoader (MXL_*) n'ont souvent pas de nom d'autorisation : elles sont refusées, même pour MAXADMIN.

Diagnostiquer en deux minutes

  1. Dans l'application Object Structures, ouvrez l'object structure citée dans l'erreur et regardez sa sécurité (action de configuration de la sécurité de l'object structure).
  2. Dans Groupes de sécurité, onglet des object structures, vérifiez qu'elle apparaît. Si elle n'apparaît pas, elle n'est pas sécurisée.
  3. Faites le même appel avec l'équivalent MXAPI (par exemple MXAPIASSET) : s'il passe, la cause est confirmée.

Corriger proprement

Option 1 : utiliser l'object structure MXAPI

Quand elle couvre vos colonnes, l'object structure MXAPI est la voie la plus simple : elle est sécurisée et maintenue par IBM. Ne modifiez pas ses réglages : les applications et Maximo Mobile s'en servent.

Option 2 : sécuriser votre object structure

  1. Dans Object Structures, configurez la sécurité de l'object structure : soit en lui donnant comme nom d'autorisation une application que l'utilisateur possède déjà (par exemple ASSET pour MXASSET, ses droits suivent alors ceux de l'application), soit en l'utilisant comme son propre nom d'autorisation (libellé exact selon la version).
  2. Dans Groupes de sécurité, accordez l'object structure et les actions nécessaires (lecture, insertion, sauvegarde, suppression) au groupe de l'utilisateur qui charge.
  3. Déconnectez puis reconnectez l'utilisateur, ou attendez le rafraîchissement du cache de sécurité, avant de relancer.

Pour MxLoader : après la création des object structures MXL_*, la même démarche s'applique à chacune d'elles, sinon le rafraîchissement du dictionnaire échoue avec la même erreur sur MXL_MAXATTRIBUTECFG.

À éviter

  • Dupliquer une object structure sans contrôler son nom d'autorisation : la copie reprend celui de l'originale, qui ne convient pas forcément.
  • Charger en tant que MAXADMIN pour contourner : l'erreur persiste, et un utilisateur technique dédié, aux droits limités, est préférable pour l'audit.

Anticiper avant un chargement

Ces droits se règlent environnement par environnement : une object structure accordée en DEV peut manquer en recette ou en PROD. Listez les object structures que votre chargement utilise (écriture et lecture de suivi) et vérifiez-les sur chaque cible avant la bascule. MAS9 signale les droits manquants (BMXAA9301E, BMXAA0024E) en nommant l'object structure en cause. Voir aussi le guide charger par l'API REST de Maximo.

Questions fréquentes

Pourquoi MXAPIASSET fonctionne et pas MXASSET sur MAS 9 ?

Les object structures MXAPI livrées par IBM ont déjà un nom d'autorisation et sont accordées aux groupes standard. MXASSET, comme les object structures personnalisées ou MXL_ de MxLoader, n'en a souvent pas : avec mxe.int.enableosauth à 1, valeur par défaut sur MAS 9, Maximo refuse alors l'accès.

Peut-on remettre mxe.int.enableosauth à 0 ?

Sur MAS 9, la propriété n'est pas modifiable depuis l'interface de Maximo. Même lorsque c'est techniquement possible, la désactiver ouvre toutes les object structures à tout utilisateur authentifié : la correction propre consiste à sécuriser chaque object structure utilisée.

Faut-il modifier les object structures MXAPI ?

Non. Elles sont utilisées par les applications et par Maximo Mobile : modifier leurs réglages peut casser ces usages. Dupliquez plutôt l'object structure pour un usage de chargement, ou sécurisez vos propres object structures.

Cette erreur touche-t-elle aussi le MIF et les enterprise services ?

Oui, dès que l'appel est fait au nom d'un utilisateur qui n'a pas le droit sur l'object structure. Pour un outil de chargement, accordez à son utilisateur technique les object structures dont il a besoin, y compris celles de lecture (par exemple MXENTSRV ou MXAPIMSGTRACK pour suivre les messages).

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