Extending Maximo 7 Business Objects

At times it is necessary to override or extend the functionality in core MAXIMO. This can be achieved by ‘extending’ methods in the Maximo business objects. The following section outlines the process involved in extending the add() method in the Items application. This same approach can be used to extend any add() method from the core Maximo business objects. Review the javadocs for more details on methods available.

Scenario: On insert of an item in the Item Master application, we would like an extra field to be set to a specific value on the Item table. In order to perform this functionality, follow the steps below to extend the add() method on the Item package.

By reviewing the javadocs, the add method can be located in the Item object. We will need to create two new files, ItemTest and ItemTestSet. ItemTest will extend the add() method in the Item class and ItemTestSet will return the reference of our new object ‘ItemTest’.

This text is available for purchase but you need to login or register first. Please Login here.
About Chon

I am a Senior Software Engineer at InterPro Solutions, LLC located in Wakefield, MA.

  • Mikhail Fedorenko

    Hi! Thank you for your post, usefull as always) I have one question. In application designer I added pushbuttons. For each pushbutton I defined specific mxevent and saved the configuration.
    After I pushed the button in application maximo executes mxevent.
    Can you explain, how maximo realize what java method should be executed?
    From your post I figered out that maximo implements methods from MBO class. Every application manage related MBO. Is it right that full list of available for implementation methods in specific application defined in java class of related MBO?

    • http://interprosoft.com Chon

      Have a look at this Application Designer quick start guide, it might give you some insite.

      • Mikhail Fedorenko

        Thank you for reply!
        I already checked app development guide for maximo 7.1. There’re minor differences from guide for maximo 6.2 in event processing question) Guide explains event processing like:
        “Events defined in a presentation file are tied to a method in the code or an event tag in the JSP pages. Maximo is an event driven product. When you perform an action, Maximo sends an “Event” to the back end which invokes and runs a method associated with the event.”
        But guide give’s no explanation about where’s defined the linkage “specific mxevent”-”specific method”?
        For example, i have pushbutton with predefined mxevent=”startcenter” in application. When i push that button maximo sends me to the Start Center application. If I want to change system behaviour I have to modify underlying logic. In other words i must “extend” methods associated with that event. But i can’t find where) What java class i have to modify? It’s the question.
        I think that all interactions with business objects (add, delete, attribute chages and others) must be defined in object main class and classes which extends main class. Like psdi.app.item.ItemTestSet for psdi.app.item.

        • http://interprosoft.com Chon

          That is a good question. I am not sure myself. I’d have to do more research.

          • MuriloCruz

            I’m not sure about it, but I believe that maximo sends the event to the method “CallMethod(event)” to the parent object of the button.
            the CallMethod method of a DataBean (probably the bean of a dialog or a table that is parent of the button) calls the CallBeanMethod that tries to call the method that has the name that is written in the mxevent tag in your button.
            if it doesn’t find the method, it gets the parent of this object (the parent of the dialog is the active Mbo) and tries to call the method again.

            finding the method or not, if there is a dialog or an application or a menu that the ID is the same as the string defined in the mxEvent property, maximo will show it.

  • Pingback: Creating an Attribute customization using custom classes in Maximo « openmaximo