• Adi Jaradat

Classification Hierarchy

Updated: Feb 25

Maximo Classification are structured in the form of hierarchy and displayed hierarchically in Maximo UI. It is one of the most powerful yet under-used, to its full potential, features of Maximo.


What is Classification?


Classifications allows classifying different objects and assigning “Attributes” to further detail the classification in what Maximo refers to as Specifications.


Other systems may refer to Maximo Classifications as “Classes” and refer to Maximo Specifications as “Characteristics”. I am not sure which naming terminologies sounds more descriptive! for me, both are as clear and as vague as they could be.


Classification Structure


Classification is organized in hierarchical structure, which gives the user more control to organize and optimize. The following terms are common terminologies used when handling classifications:

  1. Parent: The next higher level in a classification hierarchy.

  2. Child: The next lower level in the classification hierarchy.

  3. Ancestor: All of the classifications that come before a classification within a hierarchy. Although a classification can have several ancestors, it can have only one parent.

  4. Descendent: All of the classifications that come after a classification within a hierarchy.

For practical reasons, you will probably construct a Classification hierarchy in Maximo. Never the less, you always need to construct similar structure from the database for many reasons such as reporting, analysis, integration, audit, integrity check, and so on.


… and the Code


If you are on Oracle DB, you can utilize Hierarchical Queries to do just that.

Keep in mind that Hierarchical queries are “heavy” query! The burn substantial amount of memory and processing power. Of course, you are on the most optimized side of the spectrum if you are using “built-in” function (… that’s what are doing).

WITH CLASSSTRUCTURE_SET AS (
     SELECT CS.*
       FROM CLASSSTRUCTURE CS
           ,CLASSUSEWITH CUW
      WHERE CS.CLASSSTRUCTUREID=CUW.CLASSSTRUCTUREID
        AND CUW.OBJECTNAME='ASSET'
 )
 , CLASSSTRUCTURE_HIERARCHY AS (
     SELECT DISTINCT LS.*
           ,LEVEL AS HIERARCHY_LEVEL
           ,SUBSTR(SYS_CONNECT_BY_PATH(CLASSIFICATIONID ||':'||LS.DESCRIPTION, ' -> '), 4) AS HIERARCHY_PATH
       FROM CLASSSTRUCTURE_SET LS
 START WITH LS.PARENT IS NULL
 CONNECT BY NOCYCLE PRIOR LS.CLASSSTRUCTUREID=LS.PARENT
 )
     SELECT *
       FROM CLASSSTRUCTURE_HIERARCHY
   ORDER BY HIERARCHY_PATH 

Links

https://adijaradat.com/post/locations-hierarchy/

https://www.ibm.com/support/knowledgecenter/en/SSKVFR_7.6.1/com.ibm.spr.doc/pluspclas/c_classification.html

https://docs.oracle.com/cd/E18283_01/server.112/e17118/queries003.htm

6 views0 comments

Recent Posts

See All

Maximo Where Clause

Where clauses are used in Maximo intensively, such as in relationships and search, with a few tricks where clauses can do more than just sea

 
  • LinkedIn
  • Twitter

©2021 by Adi Jaradat.