En cas d'émission d'un article rotatif à stock nul, IBM Maximo Manage peut déclencher une erreur système générique BMXAA4214E. Cet article explique l'origine du dysfonctionnement lié à l'instanciation des MBOs et détaille les étapes de résolution.

Synthèse du problème et cas d'usage

Lors de la validation d'un mouvement d'article rotatif (Rotating Item) depuis l'application Inventory Usage, le système interrompt la transaction de manière inattendue sans message explicatif pour l'utilisateur.

Détails techniques de l'anomalie BMXAA4214E
Application impactée Inventory Usage (ISSUE)
Code d'erreur BMXAA4214E
APAR associé DT499752
Composant MboSet / Object Framework

Cause racine et diagnostic

L'erreur survient lors du contrôle de disponibilité de l'article en magasin. Lorsque la quantité disponible (curbal) est égale à zéro, le framework instancie un MboSet d'actifs liés qui génère une exception NullPointerException non interceptée au lieu d'afficher un avertissement d'inventaire classique.

⚠️ Attention aux scripts personnalisés Si vous utilisez un script d'automatisation sur la table MATUSETRANS au point d'extension Save, l'erreur système peut être masquée ou provoquer un échec silencieux du tuteur (Cron Task).

Procédure de résolution

Option A : Application du patch MAS (Recommandé)

La solution définitive consiste à appliquer le patch de l'opérateur Manage sur votre cluster Red Hat OpenShift.

# Extrait du Custom Resource ManageApp (MAS 9.2)
spec:
  version: 9.2.5
  settings:
    deploymentMode: Managed

Option B : Script de contournement (Automation Script)

En l'absence de possibilité d'appliquer le patch immédiatement, vous pouvez intercepter la condition via un script Jython/Python sur l'événement MATUSETRANS.ADD :

# Script d'automatisation : MATUSETRANS.ADD
# Évite le crash système si le solde de l'article rotatif est nul

mbo = scriptWithParam.getMbo()
if mbo and mbo.getBoolean("ITEM.isrotating"):
    invSet = mbo.getMboSet("INVENTORY")
    inv = invSet.moveFirst()
    if inv and inv.getDouble("curbal") <= 0:
        service.log("Avertissement : Tentative d'émission sur un stock rotatif nul.")

💡 Bonne pratique Ne tentez pas de forcer la modification du champ curbal par script. Utilisez systématiquement les réajustements de stock réglementaires via l'application Inventory.

Résumé

  • L'erreur BMXAA4214E lors des émissions à stock nul provient d'une exception système non gérée dans le MboSet.
  • Le correctif officiel est disponible à partir du Patch Operator 9.2.5 de MAS Manage.
  • Un script d'automatisation sur MATUSETRANS permet d'anticiper la vérification en attendant la mise à jour du cluster.

Articles liés