Field Validation Classes in Maximo

In maximo there are three types of field validation classes which you can write depending on your circumstances:

1) Field validation class for a persistent field (normal field) in maximo

2) Field validation class for a persistent field (normal field) in maximo which needs to also have a lookup

3) Field validation class for a NON persistent field (normal field) in Maximo

Let’s consider the field we want to write a field validation class on is “LEADCRAFT”

Example Persistent field Scenario 1:

In this case, we will write a java class which extends “psdi.mbo.MboValueAdapter” core Maximo class. You will need to have a constructor of type below:

public FldValidationClass(MboValue mbv) {



There are three important methods:

INIT: This method you can write code to setup the field whenever it is displayed on the UI

VALIDATE: This method will be called whenever this field is modified. So, like if someone types something from the frontend and tabs out this class is called. Even if someone in some other class sets value to “LEADCRAFT” field and does not set the flag to not call validation (MboConstants.NOVALIDATION), then also the field validation class is called.

ACTION: You should use this method, if based on this field you want to set values on some other fields. One thing to note is that ACTION is only called if VALIDATE is successful.

Scenario 2) In this scenario you want to write a field validation class on a field which also has a look up attached to it. If you specify DOMAINID and CLASSNAME both in MAXATTRIBUTE table, the custom class or field validation class is never invoked.

So, if you want a lookup as well as some custom validation and action. You should write a field validation class which extends psdi.mbo.MAXTableDomain.

Apart from the three methods listed above, the other important method in this scenario which becomes available is:

public MboSetRemote getList() throws MXException, RemoteException

You should override this method and return the MboSet with the values which will be displayed in the lookup.

Scenario 3) This scenario is mostly the same as scenario №1 the only difference being, when you want to setup a non-persistent field to display on UI use the INITVALUE method instead of INIT in case of non-persistent fields.


— Maximo Technical Consultant at EAM360

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store