Maximo: how to verify things which you don't have access to


Hey guys, one more useful hack for Maximo crowd.

The article below describes a way to check something in Maximo UI even if you don't have security access to the respective application. The audience for the article are all Maximo consultants and developers.

Couple of real case scenarios where this may help:

Scenario 1: A user in PROD is facing an issue where the value is exceeding the length of the respective column, but you know the patch went in yesterday that should have extended the field. You need to somehow check the attribute length but you only have access to a limited set of applications in this environment, you don't have admin access;

Scenario 2: You want to check how a certain system property is setup in the IBM Maximo demo site, to see if it matches yours or not, but you dont have access to the System Properties application on the demo site;

The thing is, if you know a possible value for a field, you dont need access to the application to check it.

Lets take the Scenario 1 from above and make it a bit more specific - a user is reporting that the bin number which he is entering in the system doesn't fit in the field. You know that the day before a fix went in which should have extended the binnum attribute from 10 to 20 characters. Your first thought is that something went wrong and the column wasn't extended, you don't have access to the Database Configuration application in Maximo or the database itself to validate it, you only jave access to a couple of non admin applications in Maximo. Lets say WO Tracking is one of them.

To apply this trick you should also have access to modify the whereclause in the application, this is important.

Lets say you want to check the size of the inventory.binnum field - if it was properly extended, it should be 20.

Open the Work Order Tracking application, hit enter and make sure you can see a list of work orders.

Now open the where clause and add the following query to it :

... and exists (select 1 from maxattribute where objectname='INVENTORY' and attributename ​= 'BINNUM' and length = 20)

Click Find.

If you still see the same list of work orders, it means all good and the field got extended. The problem is somewhere else.

if Maximo says it can't find any records, this means the field length is not 20 and the fix wasn't applied properly. If you then change 20 to 10 in the query above and run it again, you will be able to check whether the length is still 10.

You got the idea right?

You wont be able to modify anything, but as long as you have access to the whereclause in any application, you have access to the whole database and can check anything you want.

Lets do one more sample.

You want to check whether a system property is set to 1 or 0 in an environment. Lets say the property name is mxe.plusv.checkdates

Add the following to the where clause in any application which you have access to:

... and exists ( select 1 from maxpropvalue where propname = ' mxe.plusv.checkdates' and propvalue = 1)

if you see records, the property is 1, if you don't see records, either the property doesnt exist or it is not 1.

Hope it helps!

Surya Narayana Raju Mulagapati

Maximo Technical Consultant | Integration Webservices & REST API | Automation Script & BIRT Report developer

1y

Cheeky but very interesting.

Like
Reply
Jesse Warby

Warby CMMS Consulting

5y

Clever.  I like it.

SIVATHANU SIVAKUMAR

Asset Management Systems Advisor at Railway

5y

Another level of SQL Injection, really helpful when your DBA, Admin is out of reach. Hope IBM won’t close this door in next patch.

William Ma

Life can be like Wine or Water.

5y

Good idea

viswanath gurusamy PMP®

Business Analyst / Business Architecture

5y

Instead, Please contact your System Administrator 😀....

To view or add a comment, sign in

More articles by Alexey Cheremisenov

Insights from the community

Others also viewed

Explore topics