Import/Export Maximo ImageLib Data via Integration Framework

In Maximo, we can upload images as attachments in Doclinks which are stored as files the server or as avatar images which are stored as binary data inside the IMAGELIB table. Avatar image is quite useful to give the user a quick view of how an inventory item or an asset/location looks like.

While Maximo allows us to upload Doclinks attachments via MIF, uploading images to IMAGELIB table via MIF is not supported out-of-the-box. Therefore, in order to upload image, we can only do it manually one-by-one via Maximo’s GUI. For bulk loading, if we have access the DB server, we can write a stored procedure to read the files and import binary data directly into the DB. There are two scenarios I had in the past in which this approach doesn’t work:
  • When we built mobile apps and wanted to upload data to IMAGELIB. In that case, my team mate extended a REST handler class to achieve this requirement.
  • When we needed to bulk upload images, but the client did not allow us access to the database and database server.

Federated MBO – Filling the gap between Maximo and IOT


Recently I got some time to explore the new Federated MBO feature. I like it a lot because it is very simple to configure and quite powerful. Of course, prior to Maximo 7.6, the same functionality can be done with Java programming, but with this new feature, it is so easy to incorporate data from external systems into Maximo business logic and make a seamless experience to the end-users.

Basically, Federated MBO allows you to link API from an external system and make it looks like a standard object in Maximo and treat it like other standard Maximo objects such as displaying data on GUI or setting up workflow conditions or writing automation script against it. The key difference here is that data is not stored inside Maximo database but queried from the API on-the-fly when the object is accessed.

I can immediately think of several applications that are enabled by this feature:

Blanket Contract and Procurement in Maximo


A friend of mine who has experience with SAP asked whether Maximo can handle a “Blanket PO” process similar to SAP. I sent him my answer based on the scenario and requirement he provided and think it is probably worth posting here as some other people may find it interesting:



Maximo custom control (Part IV) – Create a chart control


In the previous posts, we have practised on how to create a JSP page, register it as component, and register a control. We also discussed on how to pass properties from control to its components and use it with conditional UI.

In this post, I will provide an example to build a chart control to display meter data of an asset.





Maximo custom control (Part III) – Conditional UI with custom properties


In the last exercise, we added new properties to a control, and by doing so, we have better understanding that the properties of a control is defined inside the <property-list>…</property-list> XML element. We also know how properties are passed from control level to its components.

If you have some experience with Application Designer, you must already know that, we can dynamically modify value of a property using Conditional UI. We can do the same with the custom properties that we recently added.

With the two properties: “part1size  and “part2size” added to the multipart textbox in the previous exercise, let’s configure a simple Conditional UI to demonstrate this capabily:

Maximo custom control (Part II) – Control properties


In my last post, I created a super simple control with just a “Hello World” label. The goal of the exercise is for us to identify the core components of a control. In this post, I’ll continue to expand the exercise so we can better understand Maximo’s controls.

One common requirement the need modify the size of the multipart textbox control, usually to increase the size of the first textbox to fully display long ID of item or asset.


Application Designer doesn’t provide us with an option to modify this.