THE BPD Blog

From blogs to case studies to news, we love sharing our tips and tricks for asset management, cloud, IoT and smarter operations.

by | May 31, 2017

The Dangers of DOCLINKS and Integration

It is possible to Import and Export attached documents (DOCLINKS) records using the Maximo Integration Framework (MIF). However, care needs to be taken to ensure that these messages don’t cause problems.
Maximo controls the size of a single DOCLINKS record (using System Properties mxe.doclink.maxfilesize and mxe.int.doclink.maxfilesize), but there is nothing in place to restrict the number of records that can be attached to a single Maximo Record (e.g. Workorder, Location, etc.) This means that there is no limit to the maximum size of the set of associated DOCLINKS records. This is not a problem during the normal operation of Maximo as the attachments are accessed one at a time, but it can lead to issues when interfacing to other systems.
For Example:
There is a WORKORDER in Maximo with 200 x 10Mb DOCLINKS records attached to it. 10Mb is the default value for the System Properties. This means that there are 2000Mb of files associated with the WORKORDER.
An Object Structure is setup in the following configuration:

and this is linked to a Publish Channel with the Event Listener Enabled.
When the WORKORDER record is saved, the event listener fires and tries to generate an XML file containing the details of the WORKORDER, as well as a BASE64 Encoded representation of all the files referenced by the DOCLINKS records. This could result in a file that is potentially larger than the size of the original files combined due to the nature of the BASE64 Encoding.
The generation of this message causes the WebSphere Application Server to crash and restart as before it writes the XML data to a file, it must first build it in Memory. So the simple act of saving a single WORKORDER can cause the whole Application Server to crash.
Another potential outcome from this operation is that the Application Server is capable of building the XML in Memory, but when it writes the message to the JMS Queue, it either fills up the Message Store or causes the Messaging Engine to crash. The same problem could also occur when inbound messages are presented to Maximo.
A potential solution to this problem can be handled through the design of the Object Structure used by the Publish Channel. If it is switched round so that DOCLINKS is the Primary Object and WORKORDER is a Secondary Object associated with it:

When the DOCLINKS record is saved, the event listener fires and the XML file that is attempted to generate will now be approximately the size of the value set in the System Property (by default this will be around 10Mb). This shouldn’t cause problems for the Application Server or the Messaging Engine. The file will also be much easier to handle by whatever the External System is at the other end of the interface, be it Biztalk or even another Maximo System.
The change in approach to the interface can sometimes break the required business rules that are in place. Sometimes you only want the WORKORDER and associated DOCLINKS to be sent out once the WORKORDER is set to the APPR status. If the interface is changed so that it will fire when the DOCLINKS record is saved, then this could cause the records to not be sent across if they were added before the WORKORDER status reached APPR. If this is the case, then a different approach needs to be taken, but it is still possible using the following steps:

  • Create Object Structure with DOCLINKS as Primary and WORKORDER as Secondary
  • Associate this Object Structure with a Publish Channel, but ensure that the Event Listener is disabled
  • Edit the associated Java Class for the WORKORDER Object (the same could be achieved with a Object Launch Point Automation Script associated with the WORKORDER Object) so that the following logic is triggered when the record is saved and the STATUS has changed to APPR
    • Using the desired relationship to get hold of the DOCLINKS set from the WORKORDER loop through each of the records
      • For each record trigger the Publish Channel in code

An example snippet of code for this would be:
doclinksWith a bit of consideration to the design of the interfaces, this problem can easily be avoided.

If your organization needs help understanding the dangers of DOCLINKS and integration, please contact us.

Marc Jenkins

Marc Jenkins

0 Comments

Maximo Mobile Review

Maximo Mobile Review

The Maximo Mobile app recently released by IBM is something to get excited about!  IBM's Maximo mobility journey has been a little checkered in the past – previous solutions (Everyplace and Anywhere) didn't quite meet all the needs and requirements of many...

Developing Custom Mobile App using Maximo REST API

Developing Custom Mobile App using Maximo REST API

The mobile app for Maximo operations is a gateway to IoT and Advanced Analytics by capturing precise data at the point of performance and data not being captured when using the desktop version of Maximo. As assets become smarter and existing businesses need more...

Asset Management for Net-Zero Futures

Asset Management for Net-Zero Futures

Sustainability is not a new concept and BPD Zenith have always strived to be socially responsible, however, it is a critical imperative for today’s business operations – and for the planet. There has been a shift from using digital to improve the bottom line, to...

The Hidden Value of CMMS Master Data

The Hidden Value of CMMS Master Data

Having made a significant investment in your CMMS, advances in Data analytics are prompting rethinks about the Master Data that underpins your ability to launch programs such as Asset performance management, Monitor Asset health and enhance Predictive Maintenance. A...

Integrating SFG20 and HTMs with your EAM or CAFM system

Integrating SFG20 and HTMs with your EAM or CAFM system

In this blog, we will explain the advantages of integrating SFG20 with your EAM or CAFM system using BPD Zenith’s SFG20 EAM Integration Adaptor. In our example, we look at a business requirement from the FM Service Provider industry and how the adaptor works with IBM...

Sign up to our free newsletter to explore emerging technologies, industry events and Maximo best practice.

Come with BPD Zenith to the future of Asset Management

Partner Ecosystem

BPD Zenith partners with a diverse array of the world’s top Technology, Business and Solution Integration leaders.