Collection of Maximo works by Suren. There are many people without whose help this blog would not have been published. I owe a special debt of gratitude to my Parents, friends Babin, Geet, Ragavan for inspiring me and other generous Maximo bloggers.
Monday, August 21, 2023
Maximo SSL certificate for Integration between Systems
Saturday, July 15, 2023
MAS DB2 wont support Oracle Supported SQL - DB2_COMPATIBILITY_VECTOR registry to ORA
MAS DB2 won't support Oracle Compatible SQL commands due to security concerns.
Database parameter DB2_COMPATIBILITY_VECTOR registry won't be set to ORA by the Support team, which was supported in SaaS Flex Maximo 7.6 version.
As part of Upgrade, application development team need to re-write queries in Maximo BIRT reports and relationships.
Following are some of the queries that can be referred for conversion:
- rownum vs fetch first n rows only
SaaS Flex DB2: siteid=:siteid and ponum = :ponum and rownum=1
MAS DB2: siteid=:siteid and ponum = :ponum FETCH FIRST 1 ROWS ONLY
- CONNECT BY PRIOR vs WITH Clause
Classification Hierarchy Path generation from Maximo. Both the queries work in Out of Box Maximo
SaaS DB2 with Oracle Compatibility
SELECT
level, classstructureid, parent, classificationid,
sys_connect_by_path(classificationid, '**') AS path
FROM maximo.classstructure
START WITH parent IS NULL
CONNECT BY
PRIOR classstructureid = parent
ORDER BY
level, parent, classstructureid
MAS DB2 recursive sql using WITH clause
WITH classhier ( level, classstructureid, parent, classificationid, path )
AS (
SELECT
1, classstructureid, parent, classificationid,
'' || classificationid
FROM maximo.classstructure
WHERE parent IS NULL
UNION ALL
SELECT
level + 1, c1.classstructureid, c1.parent, c1.classificationid,
classhier.path || '\' || c1.classificationid
FROM maximo.classstructure c1, classhier
WHERE classhier.classstructureid = c1.parent AND c1.parent IS NOT NULL
)
SELECT * FROM classhier
Reference: db2-compatibility-vector-registry-variable
Wednesday, June 21, 2023
MAS Manage 8.x Supports Barcode fonts in BIRT report
In MAS, IBM Product team supports bar code fonts in BIRT.
Currently, there are 3 fonts that are validated in MAS: Free3Of9 Extended, IDAutomation and 3 of 9 Barcode.
In order for bar codes to work, we need to install them in Maximo server and client machine.
Bar Code fonts in developer (or Client Machine)
A bar code is a type of font and it needs same steps for installation in a system. Download the font, open it and click on Install button.
After modifying the .xml files, update the files in .zip file, then rename it to .jar
Tuesday, May 16, 2023
Maximo Manage MAS HTTP End Point with OAuth Configuration
select accesstoken, granttype, clientid, * from maximo.maxoauthclient
from java.util import HashMap
from com.ibm.json.java import JSON
from psdi.iface.router import HTTPHandler
from com.ibm.json.java import JSONObject
metaData = HashMap()
headers = HashMap()
metaData.put(HTTPHandler.HTTP_HEADERPROPS, headers)
urlProps = HashMap()
urlProps.put("limit","5")
urlProps.put("offset","0")
metaData.put(HTTPHandler.HTTPGET_URLPROPS, urlProps)
response = service.invokeEndpoint("OAUTH",metaData,'')
obj = JSON.parse(response)
Saturday, April 15, 2023
Maximo 7.6.x HTTP end point with OAUTH 2.0 Authentication
OAuth 2.0 (Open Authorization) is standard to provide consented access and restricts actions of what a client application can perform on resources, hosted by other applications, on behalf of the user, without sharing the user's credentials.
OAuth 2.0 has different grant types to address different scenarios and they are the set of steps a client has to perform to get resource access authorization.
In this article, we will see client credentials grant type which is used for non-interactive applications e.g., automated processes, microservices, IoT etc.
Prerequisites:
- If the Oauth APIs are https, we need to upload the certificates in the Web Sphere server (or) whitelist the Maximo server IP by receiving End point to avoid SSL Handshake error
- OAuth 2.0 is supported only from Maximo 7.6.1.3 and MAS. For lower versions of Maximo, we need to customize the End point to make calls to OAuth enabled resources
- Common library script to retrieve token
- A HTTP End point with basic configuration (URL + HTTP_METHOD)
- A calling script to get token from library script, pass on token, URL parameter and header parameter to End point and store the response for more processing
Monday, March 13, 2023
Maximo Resend failed transactions via Publish channel using Automation Script
Resending failed transactions from Maximo to External System via Publish Channel using Automation Script
Data Export functionality in External System --> Publish Channel tab offers the way to retrigger the records to End point. But, for the large number of records, it will take a lot of time.
- SaaS Maximo 7.6.x MeaGlobal directory = ./MeaGlobalDirs
- MAS 8.x MeaGlobal directory = /MeaGlobalDirs
Click on the "Test Script" button
Monday, February 13, 2023
Maximo execute sql scripts without Database access
Running DML sql scripts from Maximo UI Automation scripts without write access to database
Some projects won't provide write access to the database. In such cases, we need to find a way to execute update or insert sql statements for our support related tasks.
Even if we have write access to database, there will be change freeze period between 17th December to 3rd January to block the execution of DML commands.
connectionKey = mbo.getThisMboSet().getSystemUserInfo().getConnectionKey()
Object - Asset ;
- SaaS Maximo 7.6.x MeaGlobal directory = ./MeaGlobalDirs
- MAS 8.x MeaGlobal directory = /MeaGlobalDirs
Sample sql script runfile.sql





