November 20, 2015

Overview of Maximo Industry Solutions and Extensions

After 2 years of blogging on MaximoDev and more than 100 posts to explain how to configure and customize Maximo I want to spend few minutes to explain how to NOT customize Maximo.
Customizing Maximo may be challenging and fun but should always taken carefully because it can inject problems and generate additional costs and risks when upgrading.

One of the most interesting features of Maximo is its ecosystem of extensions, add-ons, integration modules and industry solutions. This ecosystem is populated by many IBM and non-IBM products and solutions that allows to extend the product's core features.
The following picture describes the IBM portfolio of Maximo extensions and industry solutions.

Before starting to implement your own solution to a common problem, take a look at this list of the available Maximo Industry Solutions and Extensions.


Industry Solutions
  • Maximo for Transportation helps address stringent regulatory requirements and managing all transportation asset types, including fleets of cars, trucks, buses, locomotives and rail vehicles, aircraft and vessels.
  • Maximo for Aviation MRO is designed to transform the managing of maintenance, repair, and overhaul (MRO) activities for service providers working in the Aviation industry.
  • Oil & Gas provides oil & gas companies with best practices to help improve the productivity and efficiency of their critical assets.
  • Maximo for Utilities supports work and asset management for transmission and distribution in water, gas and electric utilities.
  • Maximo for Nuclear Power Supports industry-specific requirements by modeling nuclear objects and business processes, including tech specs, lineups, clearances, permits, surveillance testing, and corrective actions.
  • Maximo for Life Sciences Helps monitor, track and manage equipment, facilities, mobile and IT assets on a single platform and be fully FDA compliant. Consolidates solutions under one umbrella – asset and service management, calibration, mobile calibration, CAPA support – and integrates with RFID, SCADA systems, LIMS.

Mobile Solutions
  • Maximo Anywhere is the brand new mobile solution for Maximo built on IBM Mobile First platform..
  • Maximo Mobile Suite is a family of solutions to provide remote access to the Maximo Asset Management processes for work, asset and inventory management.
  • Maximo Everyplace provides the ability to use Maximo from supported mobile devices and smartphones using a web browser.

Free Integration Modules on ISM Library

November 13, 2015

Avoiding Java classes conflicts using a_customer.xml file

Consider this scenario (which I came across). You have extended out of the box MBO class with your own class to implement you own business logic for work orders. After a while you install the Maximo Scheduler extension and you soon discover that all your custom logic has gone because the WORKORDER object handler in Database Configuration is now instead of your custom class. This is because the Maximo Scheduler installation has overwritten your custom handler.

Lesson learned: If you have custom classes and extend the same classes which other products also are extending, then those classes will get overwritten when other products are installed and your customizations will be lost.

In order to maintain the customizations, you must define a_customer.xml file in the applications\maximo\properties\product folder. The following example shows a sample a_customer.xml file.

<?xml version="1.0" encoding="UTF-8" ?>
  <name>My custom classes</name>
    <mbo objectname='WORKORDER' extends=''></mbo>
    <mboset objectname='WORKORDER' extends=''></mboset>

Also, you need to create a directory called "a_customer" inside your tools\maximo\en directory. This directory can be left empty.

This will tell the Maximo installer to merge your custom code with the add-ons code.

For more details refer to the following articles:

October 22, 2015

Create attachments through MIF

Starting from Maximo it is possible to import an attachment (aka doclink) to an objects through MIF.
In this example I will show how to add a short text file to an asset record.

First of all you have to create an Object Structure with DOCLINKS as a child object of ASSET.

Now you can use HTTP or REST calls to add an attachment to an asset. If you are not familiar with this things I suggest you to take a look at this post.

After server attempts I have managed to find the minumum set of attributes to do the job.

<SyncMYASSET xmlns:xsi="" xmlns="">
<ASSET action="AddChange">

Modify the XML above for your case:
  • ASSETNUM and SITE uniquely identify the asset record
  • DOCTYPE is the folder where you want to put your attachment
  • DESCRIPTION is the descriptive name of the file
  • DOCUMENTDATA is the binary content of your file encoded with Base64 algorithm

May 20, 2015

Differentiate Maximo production, test, development environments

A common need is to differentiate Maximo production, test, development environments.
The easiest technique I know is to customize the login and header messages.
Open Database Administration application and select the Messages action. Search for 'welcome' and change the messages in the 'login' group as you wish.

The welcome message is displayed on the login page, the welcomeusername message is displayed in the upper left corner of the start center main page, the welcomemaximomessage ... I don't know :-)

If you want to automate the procedure you can use the following database updates.

update MAXMESSAGES set VALUE='Welcome to Maximo (TEST)'      where MSGKEY='welcome';
update MAXMESSAGES set VALUE='Welcome to Maximo (TEST), {0}' where MSGKEY='welcomeusername';
update L_MAXMESSAGES set VALUE='Welcome to Maximo (TEST)'      where ownerid=(select maxmessagesid from MAXMESSAGES where MSGKEY='welcome');
update L_MAXMESSAGES set VALUE='Welcome to Maximo (TEST), {0}' where ownerid=(select maxmessagesid from MAXMESSAGES where MSGKEY='welcomeusername');

If you wish to change tho logo and other elements of the login page you can look here.

February 17, 2015

Extract attachments (DOCLINKS)

This post explains how to extract a set of attachments from the server.
First of all you have to find the root folder where the attachments are stored. This can be found in mxe.doclink.doctypes.defpath system property (System Configuration - Platform Configuration - System Properties).

Unfortunately, from the file names you cannot understand to which records each file is linked to. In order to do this you have to run an SQL query. In this example I'm showing how to extract all the file names of work orders attachments.

SELECT wo.wonum, di.document, di.description, di.urlname
FROM docinfo di
JOIN doclinks dl ON dl.docinfoid=di.docinfoid
JOIN workorder wo ON wo.workorderid=dl.ownerid
WHERE dl.ownertable='WORKORDER';

This ERD shows you the relationships between the DOCLINKS tables.

January 27, 2015

Evolutionary Design explained

As I have already discussed in a previous post I always tend to adopt an Agile Development approach in my projects.
My own motto is: Start Small, Grow Fast. I always use this as a very simple guiding principle when working on customer projects.

Some months ago I came across this nice picture that perfectly explains the Evolutionary Design principle.

We have to admit that the evolutionary approach can introduce some form of waste because sometimes we cannot reuse the components built in the previous iterations (you can't use bicycle wheels on a car).
However, it definitely allows to minimize a large upfront design investment and allows to deeply understand the real customer needs and expectations during the project.
A better understanding of customer needs is most valuable return of the iterative approach.

There is nothing worse than developing "the wrong thing" and an iterative approach can be a great tool to solve this issue.
Using an iterative approach also helps to create a sort of "project rhythm" that has some other good side effects. Setting up monthly sprint demos, for example, will create a structure for managing customer feedback and change requests.

Last year I have presented a session name "Agile Project Management practices from the field" at the IBM Technical Academy where I have presented some Agile concepts and real life experiences. An extract of the presentation is available on SlideShare.
There is good (and free) book around named Scrum and XP from the Trenches if you want to learn more about Agile practices.

January 7, 2015

Maximo 7.6 installation

Maximo 7.6 has a lot of interesting features. One of these is the new installation technology.
Richard Lesses has published a useful set of articles with a step-by-step guide of how to install Maximo 7.6.

Installing Maximo 7.6: A first look, part 1
Installing Maximo 7.6: A first look, part 2
Installing Maximo 7.6: A first look, part 3
Installing Maximo 7.6: A first look, part 4