Reading and updating Mbo’s attributes

This entry is part of the Maximo Java Development series.

In this post I have explained how to query and fetch MBOs from the database. In this small article I will show how to get and set the attributes of an Mbo.

How to read attributes

To read the attributes of an Mbo you can use teh following getXxxx methods:

  • getBoolean
  • getByte
  • getBytes
  • getDate
  • getDouble
  • getFloat
  • getInt
  • getLong
  • getString

All these methods accept only one argument which is the name of the attribute to be retrieved from the Mbo.
Here is a a small example showing how to retrieve the ASSETNUM and ASSETID of an asset.

String assetnum = asset.getString("ASSETNUM");
int assetid = asset.getInt("ASSETID");

The is also a special technique to retrieve multiple attributes using the getMboValueData method as described in this post.

How to set attributes

To modify the value of a field you can use setValue methods. The setValueNull method can be used to set a null value. Here is a a small example showing how to set the DESCRIPTION and INSTALLDATE of an asset.

asset.setValue("DESCRIPTION", "New description");
asset.setValue("INSTALLDATE", new Date());

All setValue methods have a second version that accepts some flags. The valid flags are defined in the MboConstants class. Here are the most important ones:

  • NOVALIDATION: suppress validation
  • NOACTION: suppress action
  • NOVALIDATION_AND_NOACTION: suppress validation and action
  • NOACCESSCHECK: suppress access control checks

They can be merged with the bitwise OR operator ‘|’.

asset.setValue("DESCRIPTION", "d1", NOVALIDATION);
Reading and updating Mbo’s attributes

4 thoughts on “Reading and updating Mbo’s attributes

  1. Is there anything special to setting attribute values when the attribute type is a TABLEVALUE.
    For instance, to set an attribute that uses the People table, and the attribute specified for the attribute is DISPLAYNAME, can you just add a valid string for a DISPLAYNAME?

  2. hi Bruno in this article your title is Reading and updating Mbo's attributes but ı think you explained Reading and setting Mbo's attributes
    ı mean how can I update one record or can I? for example MboSetRemote assetMboSet = session.getMboSet("ASSET");

    MboRemote assetMbo;
    for(int j=0; ((assetMbo = assetMboSet.getMbo(j)) != null); j++)
    assetMbo.setValue("DESCRIPTION", "New description");

    Can I?

  3. Hi Bruno,
    I am trying to setValue for an attribute which is an ID of another object. This does not work. How can I set the value of an attribute which stores the foreign key of a related object?

  4. Hello Bruno,

    I’m trying to get what mbo’s attribute is marked as required, and I can’t see a clear clue how to have it. I’ve tried using methods from entities classes (e.g. ERMEntity tree), but they returned null value.

    Any thought will be welcome.
    Thanks for reading.


Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top