Blog
Creating a custom dialog box to send a report via email
An outstanding tutorial from Daniel Ng explaining how to create a custom dialog box to send a report via email. The tutorial is very detailed and explains a lot of Maximo/TPAE stuff including: Create a custom XML dialog box Attach the dialog box to an application Associate a signature option to the dialog box Associate the custom dialog box to a custom toolbar button Create a custom AppBean class Create a custom message box Turn on debugging mode for the logger Deployment and testing. Many compliments Daniel!
June 6, 2012
I'm now a Certified Solution Designer for MAM 7.1
Few weeks ago I have achieved the IBM Certified Solution Designer certification for Maximo Asset Management V7.1. It’s now time for a little self-celebration. I strongly encourage you all to take a look at IBM Certify website and search for Maximo under Tivoli Software professional certifications.
June 5, 2012
Sample Action Class
This entry is part of the Maximo Java Development series. Sometimes you have to implement some complex logic in workflows or escalation and you feel limited by the out-of-the-box Maximo actions. In these cases you can unleash the Java power and code your algorithm in a custom action class. In order to create a custom action class, you must extend the psdi.common.action.ActionCustomClass class. package cust.actions;import java.rmi.RemoteException;import psdi.common.action.ActionCustomClass;import psdi.mbo.MboRemote;import psdi.util.MXException;public class SampleAction implements ActionCustomClass{ public SampleAction() { super(); } public void applyCustomAction(MboRemote mbo, Object[] params) throws MXException, RemoteException { // Write custom code here }} As usual… compile, rebuild EAR and redeploy. For a full example of a custom action class look here.
June 4, 2012
Grant access to an action menu or toolbar button conditionally
This entry is part of the Conditional Expressions HowTo. In Maximo/TPAE menu items are granted per security group in the Security Groups application. Every option available for an application has a corresponding signature option (aka sigoption) record in the SIGOPTION table. Those SigOptions can be configured in the Application Designer. In this article I will show how is it possible to hide an action menu or a toolbar button conditionally for a specific security group using a conditional expression and a signature option. As an example I will demonstrate how to hide the ‘View History’ action menu entry for all purchase orders that have a total cost higher than 100. Note that the same procedure can be used to show or hide a toolbar button.
June 2, 2012
How to make a field readonly using conditional expressions
This entry is part of the Conditional Expressions HowTo. One of the most common Maximo customization scenarios is to make a textbox readonly based on some business rules. This could be easily achieved using Maximo/TPAE Conditional UI. As an example, I will describe how to make readonly the Priority in the Asset application when the asset is in ‘OPERATING’ status. Define conditional expression Open Administration - Conditional Expression Manager application and Create the following conditional expression.
June 1, 2012
Retrieve multiple attribute values from an Mbo
This entry is part of the Maximo Java Development series. Maximo MBOs are not exactly lightweight, however there are some little tricks to improve performances and reduce system resources consumption. One of the most common mistakes that I have seen is the redundant use of getters methods of the psdi.mbo.Mbo class. In the following example three calls to getString/getInt methods are made to retrieve the attribute values from an Mbo object.
May 30, 2012
Maximo is Magic!
Few months ago Gartner has published its Magic Quadrant for Delivery Utility Enterprise Asset Management and guess what? IBM Maximo Asset Management (aka MAM) is positioned it the upper right corner. Download the Magic Quadrant for Delivery Utility Enterprise Asset Management from Gartner’s website for free.
May 29, 2012
Extending Maximo Business Objects
This entry is part of the Maximo Java Development series. Sometimes it is necessary to override or extend the functionality in Maximo. This can be achieved by extending methods in the Maximo Business Objects. This article outlines the process involved in extending the out-of-the-box psdi.app.item.Item class to initialize the description field to a specific value. Create Java Classes We will need to create two new files an Mbo and an MboSet. The cust.psdi.app.item.Item will extend the add() method in the psdi.app.item.Item class. It is a good common practice to use a well defined 1st level package name like ‘cust’ to group all the custom code. Now open Eclipse and create a new Java class named cust.psdi.app.item.Item and paste the following code.
May 28, 2012
Understanding Mbos and MboSets
This entry is part of the Maximo Java Development series. Maximo Business Objects (MBOs) are a set of Java classes that implements the data persistence layer and business rules in Maximo/TPAE infrastructure. Those Java class files are stored in the [SMPDIR]\maximo\applications\maximo\businessobjects directory and are packaged in the businessobjects.jar file. Roughly speaking there are two types of objects Mbo and MboSet. An Mbo represents a record in a table. It has business intelligence and persistence methods. It can be compared to a session/entity bean in J2EE. An MboSet is a collection of Mbo objects. It has methods to manipulate, iterate and query data.
May 26, 2012
Hide data conditionally for a specific group
This entry is part of the Conditional Expressions HowTo. A very typical customization task is to restrict the visibility of data within Maximo/TPAE applications based on certain conditions. For example you may wish to hide all the purchase orders that have a total costs higher than 1000$ for a specific group. Here is a small tutorial about how you can achieve this. Open Administration - Conditional Expression Manager application and create the following conditional expression.
May 22, 2012