Creating and maintaining the hierarchy of failure codes in Maximo can be quite long and boring task using the standard Failure Codes application. The easiest and fastest way of importing Failure codes and the corresponding hierarchy is using MxLoader.
The example described in this post is available in this tailored in this sample MxLoader file. Please download it before proceeding.
Since there is no out-of-the-box object structure in Maximo to import failure codes, you first have to create the MxLoader custom object structures. This can be easily accomplished by clicking on the Create Custom Object Structures in the MxLoader ribbon in Excel.
The second step is to load the failure codes IDs and descriptions.
The FailureCodes worksheet on the example will load one failure class, two problems, two causes and three remedies.
Note that in the last column we have the language code. This is helpful if you want to transalate the failure codes in multiple languages.
We have just loaded a flat list of failure codes so now we need to create the hierarchical structure. The Failure Hierarchy template allows you to load failure class hierarchy using the custom MXL_FAILURELIST Object Structure. The example in the FailureHierarchy worksheet loads a small hierarchy using the failure codes defined previously.
Note how the failure hierarchy is specified in a flat table.
The object IDs in the square brackets will be generated dynamically by MxLoader during the import process. Do not enter those IDs manually.
This is how this failure tree will look in Maximo.
Note that the Failure Hierarchy template does not allow querying existing failure hierarchy. This can be a limitation if you want to copy a failure class hierarchy from one organization to another or from one server to another.
To extract an existing failure hierarchy you have use an SQL query like this.
SELECT f.orgid, f.failurelist classid, f.failurecode class, p.failurelist problemid, p.failurecode problem, c.failurelist causeid, c.failurecode cause, r.failurelist remedyid, r.failurecode remedy FROM failurelist f LEFT OUTER JOIN failurelist p ON p.parent=f.failurelist AND p.type='PROBLEM' LEFT OUTER JOIN failurelist c ON c.parent=p.failurelist AND c.type='CAUSE' LEFT OUTER JOIN failurelist r ON r.parent=c.failurelist AND r.type='REMEDY' WHERE f.parent IS NULL ORDER BY f.failurecode, p.failurecode, c.failurecode, r.failurecode;
MxLoader is also able to upload custom levels of failure codes in the hierarchy. For example, if you have a custom level called SYSTEM, you can simply add it to the columns and MxLoader will handle it.