Skip to content
Method

Loading a Failure Hierarchy (Failure Codes) into Maximo MAS 9

Updated on · VAGANET EAM

In short. Load the codes first (FAILURECODE), then the hierarchy (FAILURELIST) one level at a time: class, problem, cause, remedy. Attach each level to its parent with PARENTCODE in MXAPIFAILURELIST, never with the generated id. And do not rerun a sheet that already went through: FAILURELIST does not prevent duplicates.

The failure hierarchy is one of the trickiest objects in a Maximo data migration: four levels linked by ids that Maximo generates itself. On MAS 9 the old methods (dedicated MxLoader 6.x sheets, database inserts) no longer apply.

The data model

TableRole
FAILURECODEThe code and its description, one row per code, whatever its level
FAILURELISTThe hierarchy: each row places a code at a level (class, problem, cause, remedy) and points to its parent through PARENT, the FAILURELIST id of the parent row

That is the trap: FAILURELIST is a numeric id assigned at load time, so a source file cannot know it in advance.

The method that works on MAS 9

  1. Codes and descriptions: load every code (classes, problems, causes, remedies) into FAILURECODE. With MxLoader 8.5, the MXL_FAILURECODE object structure does this.
  2. Classes: create the top-level FAILURELIST rows through the standard MXAPIFAILURELIST object structure, without a parent.
  3. Problems, then causes, then remedies: one pass per level, filling the non-persistent PARENTCODE attribute with the parent's code. Maximo resolves the id itself.
  4. Check: read FAILURELIST back and compare row counts per level and per class with the source.

Rights matter: on MAS 9 the loading user must be authorized on every object structure used (see BMXAA9301E).

Pitfalls

  • Duplicates on reload: with no functional unique index, rerunning a sheet recreates the rows. Keep track of what went through, or delete the class and start over.
  • Same code in several places: a problem can exist under several classes. PARENTCODE must then point to the right parent in the right branch; load one class at a time if the source is ambiguous.
  • Database inserts and PARENT override: some teams force ids by changing the integration configuration directly in the database. That is impossible on MAS SaaS and fragile elsewhere.
  • Old sheets: MxLoader 6.x failure templates do not speak the REST API and do not work on MAS 9.

MHFAILURELIST (MAS 9.1)

Since MAS 9.1, the MHFAILURELIST object structure, from Maximo Health, groups FAILURELIST and FAILURECODE with an associated processing class. It can simplify the load. IBM development has however advised against depending on it in the medium term in core Manage, since Health updates may change it. An enhancement request is open at IBM (MASM-I-1482).

Place in the load order

Load the failure hierarchy before the assets and locations that reference it through their failure class, and before any work order history. See the full order in the IBM Maximo data init guide.

Frequently asked questions

In which order should a failure hierarchy be loaded?

First the codes and their descriptions (FAILURECODE), then the hierarchy (FAILURELIST) level by level: classes, then problems attached to their class, then causes attached to their problem, then remedies attached to their cause.

How do I attach a problem to its class without knowing the FAILURELIST id?

The standard MXAPIFAILURELIST object structure exposes the non-persistent PARENTCODE attribute on FAILURELIST: you provide the parent's code instead of the numeric id generated by Maximo.

Why does a second load create duplicates?

FAILURELIST has no functional unique index on code and parent: rerunning the same sheet adds new rows. Check before any reload, or delete the affected class and start over.

Should I use MHFAILURELIST on MAS 9.1?

MHFAILURELIST, shipped with Maximo Health, holds FAILURELIST and FAILURECODE in one object structure. It can help, but IBM development advised against relying on it in the medium term in core Manage, since Health updates may change it.

Load your Maximo data without silent errors

MAS9 checks your files against each environment's configuration, resumes an interrupted load without duplicates, then reads Maximo back to prove every row arrived.

Discover MAS9