Tenter de modifier un objet système ou une table d'audit dans Database Configuration peut soulever le code BMXAA0596E. Découvrez les règles de modification des objets.
Symptômes dans Database Configuration
Lorsqu'un administrateur tente de modifier les propriétés d'un attribut système ou d'activer l'audit sur une table protégée depuis l'application Database Configuration (MAXATTRIB / MAXOBJECT), le système refuse l'action et affiche l'erreur BMXAA0596E.
| Fiche technique BMXAA0596E | |
| Module | System Configuration / Database Configuration |
| Code d'erreur | BMXAA0596E |
| Message | The object or attribute is a system object and cannot be modified. |
| Tables cibles | MAXOBJECT, MAXATTRIBUTE, A_ (Tables d'audit) |
Cause racine
Pour garantir la stabilité du dictionnaire de données et des mises à niveau automatiques (Updatedb), le dictionnaire Maximo protège certains objets natifs en positionnant la colonne ISINTERNAL = 1 ou USERDEFINED = 0. Toute tentative de modification via l'interface UI est interceptée et rejetée.
⚠️ Avertissement sur la modification en base de données Modifier directement la table
MAXOBJECTvia une requête SQLUPDATEpour forcer le drapeauUSERDEFINEDpeut rendre les mises à jour ultérieures de MAS Manage totalement inopérantes.
Procédure recommandée
Option A : Utiliser des extensions de tables personnalisées (Vue/Relation)
Au lieu de modifier un attribut système natif non modifiable, créez un champ personnalisé (Custom Attribute) avec le préfixe de votre organisation (ex: PLUSC, XX ou CUST) :
- Dans Database Configuration, sélectionnez l'objet cible.
- Ajoutez un nouvel attribut nommé
CUST_DESCR.
- Configurez les types de données et longueurs souhaités.
- Exécutez la mise à jour de la structure de base de données (Apply Database Changes).
Option B : Script d'automatisation sur la couche d'accès MBO
Pour altérer la valeur ou le comportement d'un champ système restreint, passez par un script d'automatisation au point d'extension de validation :
# Script sur l'événement INIT d'un MBO pour forcer la lecture seule
mbo = scriptWithParam.getMbo()
if mbo:
mbo.setFieldFlag("SYS_ATTR_NAME", mbo.READONLY, True)
💡 Bonne pratique Ne modifiez jamais la taille ou le type de données des clés primaires système (
WOID,ASSETID,PERSONID).
Résumé
- L'erreur
BMXAA0596Eprotège les objets du dictionnaire de données natifs contre les altérations.
- La modification directe des objets internes (
ISINTERNAL=1) est strictement proscrite par IBM.
- Privilégiez la création d'attributs personnalisés ou l'utilisation d'Automation Scripts.
Commentaires
Une question ou un retour d’expérience sur cette procédure ? Partagez-le ici.
Connectez-vous pour participer à la discussion.
Se connecter