Generated by All in One SEO v4.9.6.2, this is an llms.txt file, used by LLMs to index the site. # Relia App Development & Consulting ## Sitemaps - [XML Sitemap](https://relia.app/sitemap.xml): Contains all public & indexable URLs for this website. ## Posts - [Blog](https://relia.app/posts/) - [How to Move Locations in Maximo](https://relia.app/2025/11/how-to-create-or-move-locations-in-maximo/) - Sometimes, we want to shuffle the location hierarchy a little bit as part of the initial site setup or as an on-going data maintenance activity. Once the location hierarchy is setup, it is not possible to move a location to a new parent. We can only do it using MXLoader or SQL Update. I've done - [AI Is Crazy (Uploading Location Hierarchy with MXLoader)](https://relia.app/2026/02/uploading-location-hierarchy-with-mxloader/) - This morning, I had to use MXLoader to load a few thousand location records into Maximo. The data provided by the process engineer needed to be reshaped into MXLoader’s format. A large number of records were not in the order required by Maximo, the parent records must be uploaded before their children. The last time - [How to import certificates in PEM or CER file with IKEYMAN and GSKCAPICMD tools](https://relia.app/2026/01/how-to-import-certificates-in-pem-or-cer-file-with-ikeyman-and-gskcapicmd-tools/) - Renewal of the Maximo certificates is a frequent activity. I sometimes received the certificates in the PEM or CER format. IKEYMAN doesn't open these file formats directly. On the web, many sources mentioned we can use OPENSSL tool to convert the PEM file to KDB file. From the official OpenSSL website, we can only download - [BMXAA7838E - 'XXX' is not a valid script name](https://relia.app/2026/01/bmxaa7838e-xxx-is-not-a-valid-script-name/) - I was developing an automation script that utilises another library script which I named SKDFUNCTIONS and I experienced this error BMXAA7838E - 'SKDFUNCTIONS' is not a valid script name. It took me some time to troubleshoot this issue. It turned out the issue is because an import statement is not correct. And the SKDFUNCTIONS library - [How to identify the ChangeDate of a record using rowstamp](https://relia.app/2025/09/how-to-identify-the-changedate-of-a-record-using-rowstamp/) - For certain data tables, the ChangeBy and ChangeDate fields are not available. In such case, one trick that I used is to use the rowstamp of the record to provide such information. - [How to suppress attribute logic with the NOSETVALUE flag?](https://relia.app/2024/06/how-to-suppress-attribute-logic-with-the-nosetvalue-flag/) - This post provides an example on how to use the NOSETVALUE access modifier to prevent Maximo from overwriting certain fields when updating a field - [How to impersonate a user to test workflow or security settings?](https://relia.app/2025/04/how-to-impersonate-a-user-to-test-workflow-or-security-settings/) - The easiest way to impersonate a different user to test workflow or security settings is by setting that user’s record with your own login ID. - [3 nice tricks for implementing Maximo workflow](https://relia.app/2025/04/three-nice-tricks-for-implementing-maximo-workflow/) - In this article, I take the liberty of sharing a few nice tricks for implementing Maximo workflow that I stole from other teams. - [Automatically send Purchase/Work Order in PDF to Vendor](https://relia.app/2025/04/automatically-send-purchase-work-order-to-vendor/) - One common requirement is setting up Maximo to automatically send Purchase Orders or Work Order to a vendor or contractor to streamline the ordering process - [SLA-Based Compliance Tracking for Utilities in Maximo](https://relia.app/2025/04/sla-based-compliance-tracking-for-utilities-in-maximo/) - Priority Matrix that allows utilities to define response and completion targets based on the classification, type and priority of the service order. - [Some problems with authentication in MAS and how to work around](https://relia.app/2024/06/some-problems-with-authentication-in-mas-and-how-to-work-around/) - The new Maximo Application Suite is still new to me. It took me a bit of time to get over some of the basics. This post contains a few quick notes, hopefully, it can save you a bit of time when facing the same problem. This is pure personal observation. The solution is based on - [How a metro operator streamlined its service order process?](https://relia.app/2025/04/streamline-service-ordering-process/) - How a metro train operator streamlines its service ordering process by converting unstructured job plans to using standard services and contracts. - [Maximo Customisation: Remove, Consolidate, Simplify](https://relia.app/2025/04/maximo-customisation-remove-consolidate-simplify/) - The key to effective decustomisation is understanding the business requirements and translating them into simple, maintainable technical solutions. - [MboSet performance, Memory Cache, and DB Call](https://relia.app/2018/06/mboset-performance-memory-cache-and-db-call/) - I recently had to look at ways to improve the performance of a custom-built operation in Maximo. Essentially, it is one of the many validation operations take place after a user uploads a PO with a few hundred thousand lines. The team here already built a high-performance engine to handle the process, but even with - [How to highlight Start Center Result Set with color](https://relia.app/2024/05/how-to-highlight-start-center-result-set-with-color/) - Highlighting work orders or service requests with color based on their priority and due date is a common requirement. While it is easy to implement this in the applications, it is harder to achieve with Start Center result sets, as the functionality is quite limited. I have seen this question pop up a few times - [MaxQA - Automated Testing Tool for Maximo and Web apps](https://relia.app/2025/04/maxqa-automation-test/) - With MaxQA, writing automated regression test cases is as simple as using Excel. Test authors only need basic familiarity with XPath and spreadsheet logic - [Most common use cases for Maximo Mobile solutions](https://relia.app/2020/08/common-use-cases-for-eam-mobile-solutions/) - In this post, I will talk about some commonly used and not used functions of a mobile app including Work Execution, Inspection Form, and Stocktake - [A case for EzMaxMobile](https://relia.app/2020/08/a-case-for-ezmaxmobile/) - I spend a large portion of my time working with mobile solutions, but I haven’t talked much on this topic. In this post, I will give a bit of praise to EzMaxMobile. Why should you listen to me: I know a bit about mobile solutions for Maximo. I’ve done several (failed) pilots with the Maximo - [Blanket Contract and Procurement in Maximo](https://relia.app/2018/03/blanket-contract-and-procurement-in-maximo/) - A Purchase Contract is used to manage the framework agreement with the vendor. We can create Release POs ( or Call-outs, or Work Orders) from a contract. - [Optimise Error Notification for Reliable Maximo Integration](https://relia.app/2021/02/setting-up-alarms-for-integration/) - This article discusses the strategy to effectively monitor and raise alarms for different types of interfaces based on their frequency and criticality levels. - [The core components of a complete CMMS system](https://relia.app/2016/11/the-core-components-of-a-complete-cmms-system/) - I am lucky to work for a company that dominates the Vietnam market when it comes to CMMS implementation. Because of that, I have the opportunity to talk and work with nearly every company that is using Maximo in Vietnam (and some companies using other CMMS software too). Often the case, when I talk with - [How to troubleshoot integration issues in Maximo?](https://relia.app/2021/02/troubleshoot-integration-issues-when-maximo-stops-publishing-data-to-external-system/) - This article contains a list of common areas we should check when troubleshooting integration issues in Maximo. - [Bulk close Work / Purchase Orders with Automation Script](https://relia.app/2025/04/bulk-close-work-purchase-orders-with-automation-script/) - Sometimes, we just need to close a large number of records. The easiest way to bulk close work orders or purchase orders is to use Automation Script. - [Setup Maximo Email Listener with Microsoft 365 email](https://relia.app/2025/04/setup-maximo-email-listener-with-microsoft-365-email/) - This article provides high-level instructions on configuring an email listener in Maximo using a Microsoft 365 email to receive service requests - [Framework Manager crashes when creating Project](https://relia.app/2020/07/framework-manager-crashes-when-creating-project/) - I tried to create a new Framework Manager project to build a package in which I will join some big Maximo tables (Assets, Workorder etc.) with some general geo/demographical data I pulled from the Web. Framework Manager kept crashing with this annoying error. After some quick search on the web, I realized the issue with - [Play around with Map control in Cognos Analytics](https://relia.app/2020/07/play-around-with-map-control-in-cognos-analytics/) - There’s been quite a bit of talk recently on the web about the new partnership with MapBox to deliver new map capabilities to Cognos Analytics (and there isn’t much talk about the discontinuation of support for ArcGIS in this new version). I decided to spend a bit more time to learn about the map functionality - [Maximo fails to connect to SQL Server database](https://relia.app/2022/05/jdbc-connection-fails-due-to-sql-server-allows-tls1-2-only/) - This article provides details to the database connection error when Maximo fails to connect to SQL Server when startup or when UpdateDB tool - [How to generate DBC Script for Maximo? (2023)](https://relia.app/2019/12/generate-dbc-script-for-maximo/) - This article provides instructions on how to generate DBC scripts for different types of Maximo configuration to enable an automated CI/CD deployment process - [How to redeploy a single file in Maximo?](https://relia.app/2022/01/redeploy-a-single-web-xml-file/) - To enabledisable LDAP integration, we can redeploy the modified web.xml file without having to redeploy the whole maximo.ear file which can take a lot of time - [How to reset sequence without restarting Maximo?](https://relia.app/2023/03/hot-reset-sequence-without-restarting-maximo/) - One error we often have to deal with is an incorrect sequence when adding new data to Maximo. There are many situations which can cause this issue, such as: When loading data using MXLoader, or inserting data directly via SQL Sequence corruption due to unknown cause in Production, probably due to errors caused by cancelled/terminated - [Additional keyboard shortcuts for Maximo](https://relia.app/2025/03/additional-keyboard-shortcuts-for-maximo/) - Maximo has shortcuts for a few basic operations such as Add New or Save Record. However, they are quite limited and many do not work properly. I wrote a small Chrome extension to provide additional shortcuts to address this issue. Problem As someone who interacts with Maximo all day long, using keyboard shortcuts would greatly - [How to bulk stop all Maximo workflow assignments?](https://relia.app/2025/02/howo-to-bulk-stop-all-maximo-workflow-assignments/) - Sometimes, we need to stop all current assignments so that the records can be routed through a new workflow revision. A few articles on the web provide the instructions, but they look complex to me. The easiest approach I found is to create an automation script as in the following example, and then execute it - [String Concatenation in WebMethods](https://relia.app/2020/07/string-concatenation-in-webmethods/) - Manipulating string is probably the most frequent operation we need to do when transforming data. Thus, I’d like to talk a bit about string concatenation in WebMethods. The most basic way to add two strings is to use the pub.string.concat service in the WmPublic package as shown below: However, this approach is way too limited. - [Maximo Immersion Training Video Recordings (Vietnamese)](https://relia.app/2016/11/maximo-immersion-training-video-recordings-vietnamese/) - When I started working with Maximo, my supervisor gave me a bunch of training books. The books are created by MRO (the company that owned Maximo before it was acquired by IBM) to provide its customers and business partners with basic training to get started with the software. The first book I had to read - [The most effective way to learn Maximo core concepts](https://relia.app/2016/11/the-most-effective-way-to-learn-maximo-core-concepts/) - After several years training Maximo end-users and consultants, I believe there is a right way to learn Maximo and also there is awrong way to do it. Contrary to what many may think, to me, the wrong way to learn Maximo is through the job. This can take a lot of time, several full cycle - [Vietnam Maximo and CMMS users](https://relia.app/2016/11/vietnam-maximo-and-cmms-users/) - It is surprising that almost everyone has heard about ERP, but when Asset Management or CMMS software is mentioned, in many cases, people don’t know what it is or think it is a function of accounting software. It is unfortunate that we do not have any good report on the size of the software market, - [Free Maximo Training Resources](https://relia.app/2016/11/free-maximo-training-resources/) - Our company employees usually wear the T-shirt that has IBM Tivoli and Maximo logos on it. Because of that, many times, I was approached by random guys on the street to talk about Maximo. In a few cases, they mentioned that they wanted me to provide materials to learn about Maximo or give them basic - [Notification of new Inbox Assignment on mobile using Google Firebase](https://relia.app/2017/01/notification-of-new-inbox-assignment-on-mobile-using-google-firebase/) - One of the great ways to reduce the time to review and route a workflow assignment is to set up email notifications to inform the users of a new assignment. Some of my clients even want us to provide a more direct, immediate notification on mobile devices. This can be done easily (but can be - [Filling a Check List with a soaked Smart-Ex 01](https://relia.app/2017/04/filling-a-check-list-with-a-soaked-smart-ex-01/) - To ensure that our new version of the eInspector application works under extreme conditions, we've tested filling forms under harsh sunlight at noon when the outside temperature is 40 degrees Celsius. After the test, we adjusted the UI design to make it more readable. In the video below, I just want to test the app - [Enable sysadmin and demo users to access Oracle e-business Suite 12.2.6 VM](https://relia.app/2017/07/enable-sysadmin-and-demo-users-to-access-oracle-e-business-suite-12-2-6-vm/) - As my teams have to involve in some Maximo - Oracle EBS integration projects, I decided to download the latest Oracle EBS demo VM to learn a bit more about the system. Downloading and deploying the environment from edelivery.oracle.com is straightforward. The good thing about Oracle EBS 12.2.5 or later is that the Oracle team - [Automation Scripting Tutorial](https://relia.app/2017/10/automation-scripting-tutorial/) - Got a request from someone overseas to teach him how to configure Automation Script in Maximo. All of my previous tutorials posted have been in Vietnamese. I have always wanted to do this but haven't found the time. So here it is, the first one in English. - [Demo eLogBook mobile application](https://relia.app/2017/10/demo-elogbook-mobile-application/) - A quick demo for Avenue eLogBook mobile application on an ECOM Smart-Ex device. The video is delivered in Vietnamese and I've added caption in English for the English speaker audience. - [Cataloguing Item Master data in Maximo with eCAT add-on](https://relia.app/2017/10/cataloguing-item-master-data-in-maximo-with-ecat-add-on/) - A quick demo on how to catalog a spare-part record in Maximo using the eCAT add-on. - [MaxConnect - real-time integration between IBM Maximo and Infor SunSystems](https://relia.app/2017/10/maxconnect-real-time-integration-between-ibm-maximo-and-infor-sunsystems/) - Maximo EAM is a comprehensive software for Oil & Gas operators to manage and control all types of their assets including equipment, infrastructure, facility and inventory. The system however does not include the accounting and finance functionalities. The O&G operators who have successfully implemented Maximo often find themselves having two software systems that do not - [RFID/Barcode and Integrated Mobile Solutions for Maximo](https://relia.app/2018/01/rfid-barcode-and-integrated-mobile-solutions-for-maximo/) - I had to look at RFID/Barcode options for Maximo mobility solution recently. Although these technologies have been around for decades and have become a commodity, when integrating with other systems like Maximo Anywhere or Everyplace, there are certain problems that we have to deal with. In this post, I’ll discuss a few concerns related to - [Barcode/RFID Scanning for Maximo Everyplace](https://relia.app/2018/01/barcode-rfid-scanning-for-maximo-everyplace/) - I’m in love with Maximo Everyplace. It is so simple and easy to use. And guess what, it is totally free now with Maximo 7.6. Recently I worked with a client and while the team still discussing various options for mobility solutions, I quickly duplicated and produced an Everyplace mobile app on a Test environment - [Test Oracle InMemory Database with Maximo](https://relia.app/2018/01/test-oracle-inmemory-database-with-maximo/) - For the past few years, SAP has been pushing hard on its HANA InMemory data platform and everybody talks about it. For me, it makes sense because SAP’s ERP is such a huge system usually used by super-large enterprises. It is both a data-intensive and mission-critical system. Maximo on the other hand is usually much - [Maximo with Oracle’s InMemory (Part 2) – Huge Performance Gain](https://relia.app/2018/01/maximo-with-oracles-inmemory-part-2-huge-performance-gain/) - Last week, I played around with Oracle’s new toy: the InMemory feature available in Enterprise Edition. Although it made Maximo runs 1.25x faster, but it didn’t meet my expectation which was from 2x to 5x. This has bothered me for the whole week and I kept thinking about it. If you’ve read my previous blog post, - [Maximo's ABC Analysis and Physical Count](https://relia.app/2018/01/maximos-abc-analysis-and-physical-count/) - A friend recently asked me on LinkedIn about Inventory ABC analysis on Maximo and how to setup physical cycle count. After responding to him, I thought it could be posted on this blog to share with other Maximo users who like to know more about this function. ABC Analysis is the method of categorizing inventory - [Getting Started with Maximo's Custom Control (Part I)](https://relia.app/2018/02/getting-started-with-maximos-custom-control-part-i/) - Application Designer is a powerful tool to customise Maxmo’s GUI. However, in certain situations, it couldn’t do what we want to meet the requirements of our clients. In that case, we can look at customising Web UI module. In this series, I will provide step-by-step instructions on how to customise controls in Maximo. The aim - [Maximo custom control (Part II) – Control properties](https://relia.app/2018/03/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 is the need to - [Maximo custom control (Part III) – Conditional UI with custom properties](https://relia.app/2018/03/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 a better understanding that the properties of a control are defined inside the … XML element. We also know how properties are passed from the control level to its components. If you have some experience with Application Designer, - [Maximo custom control (Part IV) – Create a chart control](https://relia.app/2018/03/maximo-custom-control-part-iv-create-a-chart-control/) - In previous posts, we have practised how to create a JSP page, register it as a component, and register a control. We also discussed how to pass properties from the 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 - [Creating high performance service using MaximoCache](https://relia.app/2018/06/creating-high-performance-service-using-maximocache/) - Sometimes in our application, we need to build custom services that run when Maximo starts. We can extend the psdi.server.AppService class and register it with MXServer by inserting a new entry into the MAXSERVICE table. If the service executes slow-running queries, it is a good idea to cache the data in memory to improve performance. - [Solving problems with Update DB process when install or upgrade Maximo](https://relia.app/2018/07/solving-problems-with-update-db-process-when-install-or-upgrade-maximo/) - When upgrading Maximo or installing new add-ons or fix packs, new source files will be copied to the SMP folder which includes Java classes and DBC (database configuration) script files. After that, the installer will run the UpdateDB process to update the database, run the BuidMaximoEar process to build the EAR file, and then deploy - [How to modify (almost) any Maximo data with no database access](https://relia.app/2018/07/how-to-modify-almost-any-maximo-data-with-no-database-access/) - Being Maximo consultants, we often come into a scene where the client gives us MAXADMIN access to the system but access to the database is an absolute No-No. This is usually the case with companies that have a clear separation of the App Admin and DB Admin roles. This is also one of the key - [Unboxing Maximo SaaS Flex](https://relia.app/2018/07/unboxing-maximo-saas-flex/) - I had never been a big fan of Maximo SaaS due to my background comes from a market where labour cost is cheap while license cost is outrageous. As such, we consultants prefer to spend some time building customized apps rather than spending lots of money buying more licenses or add-ons. (To give you a - [Basic steps integrating Maximo Spatial and ArcGIS](https://relia.app/2018/08/basic-steps-integrating-maximo-spatial-and-arcgis/) - Due to many changes in different versions, the documentation provided by IBM for Maximo Spatial integration is scattered and inconsistent. This video is a quick demo on how to carry out the most basic configuration to enable integration between Maximo Spatial version 7.6 and ArcGIS. In the video, what we have is a sample non-secured - [Deploy Maximo 7.6.1 on Websphere 8.5](https://relia.app/2018/08/deploy-maximo-7-6-1-on-websphere-8-5/) - Out of curiosity, I installed Maximo 7.6.1 on a VM to explore the new features. Then I found that I kind of liked it, so I wanted to deploy it on my host OS to get rid of the VM. The trouble is I have Websphere 8.5.5.3 which comes with Maximo 7.6.0.0. I can run - [Maximo Crash Course on Youtube - Starting point for a complete beginner](https://relia.app/2018/08/maximo-crash-course-on-youtube-starting-point-for-a-complete-beginner/) - After posting a bunch of Maximo training videos in Vietnamese on Youtube, I got some requests for similar content in English. On the web, there are plenty of Maximo resources in English; so I didn’t think it was necessary to create new duplicated content. But someone recently pointed out to me that as a beginner, he doesn’t - [IBM App Connect - Integrate Maximo with Google Sheet, SalesForce, and ServiceNow](https://relia.app/2018/08/ibm-app-connect-integrate-maximo-with-google-sheet-salesforce-and-servicenow/) - While having a break between projects, I have some free time to play around with IBM’s new toy: App Connect. After several years of working with Enterprise applications, I’ve got to a point where I can tell if a system is great or not after playing around with it for a short time. Examples of - [Interacting with Maximo via SMS with Twilio](https://relia.app/2018/09/interacting-with-maximo-via-sms/) - This article discusses the use-cases to interact with Maximo using SMS. It provides two examples to illustate and prove the concept. - [Blank parameter page when trying to run report from Eclipse/BIRT Designer](https://relia.app/2019/02/blank-parameter-page-when-trying-to-run-report-from-eclipse-birt-designer/) - The issue with Eclipse/BIRT designer showing a blank parameter page when we try to run a report has been around for a while. This problem is due to newer versions of IE installed on Windows. When I was using an older Windows version, I could uninstall IE to restore it to an original, older version. - [Manipulating Chain of Java Extensions for the upgrade/installation process](https://relia.app/2019/06/manipulating-chain-of-java-extensions-for-the-upgrade-installation-process/) - I recently had to upgrade a pretty complex system. The original environment includes Maximo and ICD, and two large customization packages, one extended by the other (let’s call them package XXX extended by package YYY). The target system is the latest Maximo + ICD 7.6.1, plus 4 add-ons which include Oil & Gas and Utilities. - [Maximo 7.6 feature - Denial of Service attack](https://relia.app/2019/07/maximo-7-6-feature-denial-of-service-attack/) - I didn't know about this new feature in Maximo 7.6 until today. Here is the problem: an user reported he's unable to log into Maximo with "BMXAA7901E - You cannot log in at this time" error. Both the Maximo Admin and I could log in using the same userid and password without any problem. After - [Setup Cognos 11 to send email with Gmail (2020)](https://relia.app/2020/05/setup-cognos-11-to-send-email-with-gmail-2020/) - When I tried to set up Cognos 11 to send notifications via Gmail, it failed because Google blocked access from Unsecured App. Even if I tried to turn off this option and tried again, it still failed because Google automatically turned this setting off again. So I had to create an App Password for my - [Mess around with Azure: Migrate Maximo to Cloud](https://relia.app/2020/06/mess-around-with-azure-migrate-maximo-to-cloud/) - Last week, while attending a call to discuss an integration interface between Maximo and an Azure SQL database, the other consultant mentioned a few Azure terms like “blob storage”; I realized I didn’t know anything about Azure despite the fact that the cloud platform has been adopted by the large number of the clients I - [Display password stored in System Properties](https://relia.app/2020/07/display-password-stored-in-system-properties/) - This article describes a little trick to display a masked and encrypted value stored in Maximo's System Properties. This is often necessary when the legacy system is handed over without documentation. - [My failed attempt to get Maximo to work with Azure SQL database](https://relia.app/2020/07/my-failed-attempt-to-get-maximo-to-work-with-azure-sql-database/) - Recently, I started playing with Azure by attempting to migrate a Maximo instance from my local VM to Azure platform. Although the attempt was a success. I didn’t realize SQL Server and Azure SQL are different databases (or more correctly, two different versions). There were a few issues during the process, but I figured out - [Implement If-Then-Else Logic in WebMethods](https://relia.app/2020/07/implement-if-then-else-logic-in-webmethods/) - Conditional Logic is the most important building block of any software development tool. WebMethods is not a programming language, but since we use it to build integration interface, which is also software, it means we are also programming with it. Writing a simple “If-Then-Else” condition in WebMethod is way too verbose to me though. The - [Websphere messaging engine cannot be started as there is no runtime initialized for it yet](https://relia.app/2022/05/messaging-engine-cannot-be-started-as-there-is-no-runtime-initialized-for-it-yet/) - I sometimes have issues with message engine not running. Usually I'll just try to restart the whole system and hope that it goes away. If it doesn't work, in most cases, it is caused by a corrupted file store used by the message engine and the suggestion from the Internet is to delete these files, - [Common issues when setting up Maximo with a Load Balancer](https://relia.app/2022/06/common-issues-when-setting-up-maximo-with-a-load-balancer/) - This post just contains a couple of my own notes setting up Maximo with a Load Balancer which I learnt the hard way. - [How to test SMTP with PowerShell for setting up Maximo email notifications?](https://relia.app/2022/07/how-to-test-smtp-with-powershell-for-setting-up-maximo-email-notification/) - This post explains how to test SMTP service using PowerShell as an alternative for Telnet as it is not installed in newer Window Server versions by default - [Message Engine doesn't start after setting up cluster](https://relia.app/2023/01/message-engine-doesnt-start-after-setting-up-cluster/) - This issue hit me a few times and always took me some time to figure out what happened. So I thought it's a good idea to note it down. Symptom: When setting up a cluster environment for Maximo, I will need to set up an integration bus with a message engine for each cluster (IF, - [Check Network/Firewall Status using PowerShell](https://relia.app/2020/12/check-network-firewall-status-using-powershell/) - Working with Maximo, we have to deal with network/firewall all the time. I can spend a whole day telling you fun stories (or extremely frustrating experiences) I had with IT/Network guys. But that's not the point. If you end up here, I guess you're having a firewall issue. So below is a quick recap of - [Avoid recursion filter on Publish Channel](https://relia.app/2020/12/avoiding-recursion-filter-on-publish-channel/) - Integration Framework doesn’t re-publish a change if it comes from another inbound interface to prevent recursion on a bi-directional interface. - [Process Inbound Twilio SMS message in Maximo](https://relia.app/2018/09/process-inbound-twilio-sms-message-in-maximo/) - In my previous post, I provided some demos on how we can process inbound text messages to create SR and route Workflow. There are a few people on LinkedIn asked me how to do it. I also like to explore the option of integrating Maximo with Twilio directly without the need for AppConnect. With Maximo - [Use Maximo webservice with JSON content](https://relia.app/2023/01/use-maximo-webservice-with-json-content/) - While the JSON API in the newer version of Maximo is quite useful, for many integration scenarios, I still prefer to use the old API infrastructure with Publish Channel and Web Service. However, the native format for this feature is XML. To send or receive JSON with Publish Channel or Enterprise Service, we can translate - [The curious case of the MIA work orders?](https://relia.app/2023/04/the-curious-case-of-the-mia-work-orders/) - Story on an issue with missing work order records in the integration between Maximo and TechnologyOne ERP system due to the F5 maintenance page - [Useful small features in Maximo](https://relia.app/2016/12/useful-small-features-in-maximo/) - As consultants, we often have a high level of proficiency in using the software. Because of that, we often overlook the many basic or simple features that can be extremely useful to the end-users. In many cases, when I mention one of those features to a user, whether he/she is a beginner or an experienced - [Federated MBO / JSON Resource - Filling the gap between Maximo and IoT](https://relia.app/2018/03/federated-mbo-filling-the-gap-between-maximo-and-iot/) - Federated MBO allows you to link an API from an external system and make it looks like a standard object in Maximo and treat it like other standard Maximo objects - [Import/Export Maximo ImageLib Data via Integration Framework](https://relia.app/2018/03/import-export-maximo-imagelib-data-via-integration-framework/) - In Maximo, we can upload images as attachments (DOCLINKS) which are stored as files on the server or as "profile" images which are stored as binary data inside the IMAGELIB table. Profile image is quite useful to give the user a quick view of what an inventory item or an asset/location looks like. While Maximo - [How to bulk upload images via the Integration Framework?](https://relia.app/2018/06/bulk-upload-images-via-integration-framework/) - We can enable import/export of binary data with automation script. Below is how to configure Maximo 7.6 to bulk upload images to Item Master application - [OutOfMemory error when deploying Maximo in Websphere](https://relia.app/2018/07/outofmemory-problem-when-deploying-maximo/) - This post describes how to update WebSphere settings to address the Out-Of-Memory error when deploying a big maximo.ear file - [Send SMS Notification from Maximo using Twilio](https://relia.app/2018/09/sms-notification-for-maximo-using-twilio/) - This article provides a step-by-step instruction guide on how to send SMS notifications from Maximo using Twilio and Automation Script - ["This portlet has not been setup" error in Maximo Start Center](https://relia.app/2019/01/start-center-result-set-not-displaying/) - This post provides a check list to troubleshoot the problem with Result Set in Start Center shows an error "This portlet has not been setup" - [Send email from automation script](https://relia.app/2019/10/send-email-from-automation-script/) - Simple stuff but I got a few people asked me this same question, so here is how to create an automation script to send email from Maximo: 1 - Create a Communication Template: Template ID: MY_COMM_TEMPLATE Description: Test Communication Template Applies To: ASSET Send From: (Note: to make this work, you must have setup - [How to troubleshoot Maximo JVM Out-of-Memory error with Heap Analyzer?](https://relia.app/2020/03/troubleshooting-maximo-jvm-out-of-memory-error-with-heap-analyzer/) - IBM Heap Analyzer can be used to identify why Maximo crashed due to the Out Of Memory error - [BMXAA4017E Error when running custom code](https://relia.app/2020/06/bmxaa4017e-error-when-running-custom-code/) - This article talks about the "BMXAA4017E - object cannot be saved" error in Maximo due to using the wrong user profile when fetching an MboSet using MXServer - [My top 3 beginner gotchas with Cognos 11](https://relia.app/2020/06/my-top-3-beginner-gotchas-with-cognos-11/) - Working with Maximo, perhaps we all have the same frustration with the constant changes by IBM marketing team who work hard and are very successful in their attempt to confuse us. The most visible problem is the continuous changes to their website which essentially breaks any links from external sources pointing to their KB pages - [Convert Australian GDA94 Easting/Northing values to Latitude/Longitude in SQL Server](https://relia.app/2020/06/convert-australian-gda94-easting-northing-values-to-latitude-longitude-in-sql-server/) - As I play around with the Cognos Analytics map controls, it appears to me it only understands Latitude/Longitude values, but the sample dataset I have is in UTM format. So, I have to find ways to convert Easting/Northing values to Lat/Long. Since I use SQL Server, attempting to create a column in "Geometry" data type - [WebMethods: Evaluate String IN and CONTAINS operator](https://relia.app/2021/03/webmethods-evaluate-string-in-and-contains-operator/) - In WebMethods, the most basic way to write a string “IN” operator is to use Branch as follows: Another way to reduce the number of lines of code is by combining the conditions using “OR”: These approaches works well if the number of options is small or if the variable name is short. If there - [The fun and pain of Kronos Integration](https://relia.app/2021/04/the-fun-and-pain-of-kronos-integration/) - For integration with Kronos, I would look at the Report API and the Import API first. I will only go for the REST API if they cannot do what I want - [Implement "Sleep" or "Wait" in WebMethods flow](https://relia.app/2021/04/implement-sleep-or-wait-in-webmethods-flow/) - I needed to send an external system a file import request. The external system would take some time to process the file before the import result can be queried. Making a status query immediately after the import request would always return an "import process is still running". It's best to wait for a few seconds - [Enabling up HTTP Compression for Maximo](https://relia.app/2021/08/enabling-up-http-compression-for-maximo/) - To enable HTTP compression for Maximo, follow the steps below: Make a backup copy of the file: IBM/HTTPServer/conf/httpd.conf Edit the httpd.conf file, enable the following two lines: LoadModule deflate_module modules/mod_deflate.so LoadModule filter_module modules/mod_filter.so Add the following lines to the bottom of the file: AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4.0[678] - [Node Agent cannot start after configuring LDAP](https://relia.app/2021/09/node-agent-cannot-start-after-configuring-ldap/) - Just to document a weird issue I had today. I was attempting to configure LDAP (Microsoft AD) for Maximo/Websphere. After it is configured (and I've tested that it can query AD data), Application Server security was enabled. Then the server is rebooted to refresh the new configuration. After a restart, ctgNode01 (node agent) service cannot - [How to post HTTP requests using Automation script?](https://relia.app/2021/09/post-http-request-using-automation-script/) - This post describes the simplest approach on how to post HTTP request from Maximo Automation Script using a HTTP End Point - [Issues with Maximo attachment (DOCLINKS)](https://relia.app/2022/08/issues-with-maximo-attachment-doclinks/) - Just a bunch of my personal notes about Maximo attachment (DOCLINKS) When a file is attached to a record in Maximo, it creates a record in the DOCLINKS and a record in the DOCINFO table to keep the details of the file. The file is copied to a location on disk, usually on a local - [Consider Time Zone with automation script](https://relia.app/2022/12/consider-time-zone-with-automation-script/) - It took me some time to get to this piece of code, but requirement changed and I needed to ditch it. But I'm sure I'll need to use it at some point in the future, so why not put a note here just in case. Requirement: - A client has many hotels in Sydney and - [How to run SQL query in Maximo without database access?](https://relia.app/2023/03/how-to-run-sql-query-in-maximo-without-db-access-using-api-automation-script/) - t is critical to be able to run queries on the database. In this post, I will introduce a new approach to accessing the database using Automation Script. - [How to deploy change for Maximo without downtime?](https://relia.app/2023/03/deployment-without-downtime/) - Downtime is costly to the business. This article shares a trick to let us apply configuration changes to Maximo without having to shutdown or restart Maximo. - [How to integrate ChatGPT with Maximo?](https://relia.app/2023/07/how-to-integrate-chatgpt-with-maximo/) - Last month, OpenAI introduced the “function calling” feature to its API. I developed a Chrome extension that integrates ChatGPT with Maximo. If you’d like to give it a try, you can find it on the Chrome Web Store - [Auto-resize images when uploading attachments with Automation Script](https://relia.app/2023/08/resize-photos-when-uploading-attachments-to-maximo/) - This article provides a solution to automatically resize images when uploading to Maximo using automation script to reduce download time on mobile devices - [Send HTTP Request from Automation Script (Improved version)](https://relia.app/2023/08/send-http-request-from-automation-script-improved-version/) - Detailed examples of how to send HTTP GET/POST requests from Maximo using Automation script by using a real-world example of an interface with ArcGIS Online - [ArcGIS to Maximo synchronisation not working due to API limit](https://relia.app/2023/10/arcgis-to-maximo-synchronisation-not-working-due-to-api-limit/) - A weird issue with the ArcGISDataSync cron task in Maximo due to the API limit setting in ESRI ArcGIS - [How to send email with CSV attachment using Automation Script](https://relia.app/2023/10/how-to-send-email-with-csv-attachment-using-automation-script/) - A client asked me to set up Maximo to automatically export work order data in CSV format and send it out via email. Initially, I suggested using the scheduled report function. We can build a simple BIRT report which has one data table. It can be scheduled to run automatically and send out an email - [How to export Maximo data to Excel using Automation Script?](https://relia.app/2023/10/how-to-export-data-to-excel-using-automation-script/) - This article provides instruction on how to export data in Maximo to an Excel file with Automation Script. This can be useful for sending data via email. - [How to override HTTP headers for integration end-point with Automation Script?](https://relia.app/2023/10/how-to-override-http-headers-for-integration-end-point-with-automation-script/) - For the HTTP End-point, we can set a fixed value in the request header. This doesn’t work for header values that must be generated on the fly like authorisation tokens. To override the headers of an end-point during runtime, the traditional approach is to write some custom Java code. This post explains how we can - [How to approve workflow via email using automation script?](https://relia.app/2023/11/how-to-approve-workflow-via-email-using-automation-script/) - TheThis post outlines the detailed steps on how to create a simple email listener using Automation Script to approve workflow via email - [Must-know tips & tricks to improve data entry efficiency in Maximo](https://relia.app/2023/11/must-know-tips-tricks-to-improve-data-entry-efficiency-in-maximo/) - In some Maximo functional areas such as procurement, logistics, and scheduling, applying these tricks and tools can greatly improve data entry speed - [How to remove HTML tags in Long Description field](https://relia.app/2024/07/how-to-remove-html-tags-in-long-description-field/) - This post provides intructions on how we can easily strip the Maximo's Long Description field from the richtext format to keep the plain text. - [How to generate INSERT script for Maximo data with SQL Server?](https://relia.app/2024/07/how-to-generate-insert-script-for-maximo-data-with-sql-server/) - When dealing with a large amount of data or migrating workflow configuration, we might need to generate and use INSERT script. This article describes how to do it. - [The performance effect of the Download button in Maximo](https://relia.app/2024/07/performance-effect-of-the-download-button-in-maximo/) - Discussion about the Download table data button in Maximo causes poor performance to the application and even crashes the server. - [How to transform XML messages in Maximo using XSLT?](https://relia.app/2024/05/how-to-transform-xml-messages-in-maximo-using-xslt/) - Automation Script is powerful for implementing direct integration between Maximo and an external application. One main challenge of direct integration is transforming the XML message produced by Maximo into the format expected by the external system. For a simple interface, we can write scripts to construct a JSON or an XML document from scratch. However, - [How to use custom endpoint for dynamic delivery?](https://relia.app/2024/07/how-to-use-custom-endpoint-for-dynamic-delivery/) - The custom endpoint can be associated with the publish channel and external system. This means, the interface is fully compatible with other MIF functionalities - [Maximo training books from archive](https://relia.app/2024/10/maximo-training-books-from-archive/) - This is a list of old training books created by MRO before it was acquired by IBM. I used these to learn Maximo when I started with it. While these courses were designed for Maximo 7, the core processes remain the same in the newer versions. You can use this to learn Maximo if you - [PYODBC - Login Timeout Expired error](https://relia.app/2024/10/pyodbc-login-timeout-expired-error/) - Just want to document a strange issue I had today. I have this small Python program that uses the pyodbc library to connect to an SQL Server database on my local machine. The code was working fine two weeks ago before I left it to work on a different project. Below is the simplified version - [Inspect Maximo Outbound Request with Automation Script](https://relia.app/2024/11/inspect-maximo-outbound-request-with-automation-script/) - When building integration in #Maximo, sometimes, using a web service inspection tool is not possible. Another option is we can build a Mock API using Automation script to inspect the request. - [Another way to build a custom HTTP endpoint](https://relia.app/2025/01/another-way-to-build-a-custom-http-endpoint/) - This article provides an example of a script end point using the org.apache.http package to support PATCH method and capture detailed error message on failure - [Setup BIRT Viewer's SSL Connection with MAS DB2](https://relia.app/2025/03/setup-birt-viewers-ssl-connection-with-mas-db2/) - With a MAS instance provisioned by IBM, the DB is hosted on the cloud in DB2. To access the DB, we can use DBeaver. IBM provides the following details: Public IP/Port (reportdb.[customer-instance].suite.maximo.com:443) DB Name User Name / Password A certificate file (something looks like below) First, we should import the certificate to a trust store. - [Top 5 common integration requirements for Maximo](https://relia.app/2024/09/top-5-common-integration-requirements-for-maximo/) - This article discusses some of the most common integration requirements between Maximo and other enterprise applications. - [Poor performance after Upgrade and Installation of Maximo Add-ons](https://relia.app/2019/04/performance-issue-after-upgrade-and-installation-of-oil-gas-and-utilities-add-ons/) - This article describes my experience troubleshooting a massive degradation of Maximo performance after installation of some add-ons and upgrading Maximo. The problem was caused by the fragmentation of SQL Server data file. After running defragmentation, query speed improved several times Problem Recently I involved in a project where we need to upgrade Maximo to the ## Pages - [Home](https://relia.app/) - Maximo Specialist Services and Productivity Tools Maximo doesn’t work? Maximo is too slow? Maximo is a mess? Too much customisation and no one understands it? I can help you with that 95% Java customisation removal 120% Customer satisfaction 200% Improved performance and efficiency Services Decustomisation Too much customisation can slow you down. I have help - [Contact](https://relia.app/contact/) - Get In Touch If you want to talk to me, please send me a message using the contact form below. I will get back to you shortly. Send me an email Please enable JavaScript in your browser to complete this form.Please enable JavaScript in your browser to complete this form.Name *FirstLastEmail *Phone Message Name Email ## My Templates - [Kit Styles: Conset – Business Consulting Elementor Template Kit](https://relia.app/?elementor_library=global-kit-styles-3) - [Conset – Home_Page](https://relia.app/?elementor_library=conset-home_page) - SINCE 1996. Free Appoinment Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco aboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor reprehenderit in voluptate velit. Lorem ipsum dolor sit amet, consectetur adipisicing - [Kit Styles: Conset – Business Consulting Elementor Template Kit](https://relia.app/?elementor_library=global-kit-styles-2) - [Conset – Blog_Details_Page](https://relia.app/?elementor_library=conset-blog_details_page) - Single Post Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur - [Conset – Header_Top_Section](https://relia.app/?elementor_library=conset-header_top_section) - Facebook-f Skype Icon-twitter Pinterest-p - [Conset – Header_Section](https://relia.app/?elementor_library=conset-header_section) - [Conset – Blog_Section](https://relia.app/?elementor_library=conset-blog_section) - [Conset – Contact_Section](https://relia.app/?elementor_library=conset-contact_section) - Location: 01 61 South Big Rock Cove Zurich, Villad 60047 +88-999-666-444 +88-888-555-777 sample.net@gmail.com support.net@gmail.com Location: 01 61 South Big Rock Cove Zurich, Villad 60047 +88-999-666-444 +88-888-555-777 sample.net@gmail.com support.net@gmail.com There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in som form, by injected humour, or randomised words which don’t - [Services](https://relia.app/?elementor_library=services) - Our Service What We Do A better website means better user experience Nulla eleifend, lectus eu gravida facilisis, ipsum metus faucibus eros, vitae vulputate nibh libero ac metus ipsum metus faucibus eros. Content strategyMaecenas ipsum suscipit IT ManagementMaecenas ipsum suscipit Work DedicationMaecenas ipsum suscipit Time ManagementMaecenas ipsum suscipit Our Process Generating New business growth plans - [Blog Details](https://relia.app/?elementor_library=blog-details) - Blog Lorem ipsum dolor sit amet, conse ctetur adipiscing elit. Ut facilisis sce lerisque neque vel sollicitudin. Integer eu condimentum quam, a egestas neque. Proin aliquet purus vitae ullamcorper vehicula. Maecenas sed elit in metus consectetur blandit nec a metus. Cras mattis malesuada purus, in posuere magna accumsan in. Nam laoreet ac nunc id eleifend. - [Blog](https://relia.app/?elementor_library=blog) - Blog - [Header Style One](https://relia.app/?elementor_library=header-style-one) - [Kit Styles: softek](https://relia.app/?elementor_library=global-kit-styles) - [Default Kit](https://relia.app/?elementor_library=default-kit) ## Categories - [Maximo](https://relia.app/category/maximo/) - [Integration](https://relia.app/category/integration/) - [WebMethods](https://relia.app/category/webmethods/) - [Automation Script](https://relia.app/category/automation-script/) - [Database](https://relia.app/category/database/) - [Mobility](https://relia.app/category/mobility/) - [Migration](https://relia.app/category/migration/) - [Performance](https://relia.app/category/performance/) - [Reporting](https://relia.app/category/reporting/) - [Training](https://relia.app/category/training/) - [Tips & Tricks](https://relia.app/category/tips-tricks/) - [Administration](https://relia.app/category/administration/) - [Troubleshooting](https://relia.app/category/troubleshooting/) - [Configuration](https://relia.app/category/configuration/) - [AI](https://relia.app/category/ai/) - [Cloud](https://relia.app/category/cloud/) - [GIS](https://relia.app/category/gis/) - [Customisation](https://relia.app/category/customisation/) - [Functional](https://relia.app/category/functional/) - [Case Study](https://relia.app/category/case-study/) - [Process Optimisation](https://relia.app/category/process-optimisation/) - [Tools](https://relia.app/category/tools/) ## Tags - [ChatGPT](https://relia.app/tag/chatgpt/) - [Maximo](https://relia.app/tag/maximo/) - [ArcGISDataSync](https://relia.app/tag/arcgisdatasync/) - [BMXAA6361I](https://relia.app/tag/bmxaa6361i/) - [BMXAA1482E](https://relia.app/tag/bmxaa1482e/) - [DBC](https://relia.app/tag/dbc/)