Maximo

 View Only

 Look up asset on external ID for data interface

Carl Nelson's profile image
Carl Nelson posted 04/29/26 04:29 PM

We have an external GPS system called Roadside from which we want to receive odometer and engine hour readings. They will flow to meters associated with our vehicle assets. They offer an API where we can pull this data, either directly connecting via Maximo or with an intermediate middleware of some sort. Here's the API documentation. RoMa API - Roadside Systems RoMa

Our biggest question right now is how to identify the assets. This external system has their own set of external IDs ("VehicleID") for the assets that we could map to our asset num in Maximo. However, I'm not sure where to put that mapping so Maximo can use it. Do I use a table domain somehow? An alias on the asset? Something else?

Sankar Ganesh V S's profile image
Sankar Ganesh V S IBM Champion

Hi Carl,

Many customers have this scenario and we usually suggest below apprach. 
I assume that Asset table aleady has the external referece ID field and frequently updates to synchronize. If not, need to create custom external reference ID field in object.

 -  Create a custom relationship ASSET to ASSETMETER with this custom reference ID

       - Use this relationship in automation script  /Cron job that pulls the data to find the matching Asset meter to update.

 -  If there is middleware that pulls data and pushes to Maximo,

        - Create a custom interface table with asset number, external reference id;

        - Create a custom relationship between custom interface table (as parent) and Assetmeter (as child).

       -  Then create a custom object structure with 'Interface table as parent' , Asset Meter as Child (using relationship above)

        - Expose this custom interface object strucre via REST api for the Middleware to consume

        - Create  Inbound JSON mapping / OSIN automation script to add relevant data processing.  (It depends on the payload details and format)



Thanks!

Hugues LOMBARD's profile image
Hugues LOMBARD

Hi,

If you use an Object Structure that would include ASSET as the main object and ASSETMETER as the sub object, I'd suggest you to use the Alternate Key concept in Object Structure.

  • First, add a Vehicle_ID extra attribute in Asset object.
  • Second : populate Asset.Vehicle_ID in Asset by you own way...
  • Third : add an index on Asset.Vehicle_ID ("non unique" option is allowed)
  • Fourth, use the "Alternate Key" concept in Object Structure (key in the new index id here).

From now, you wont have to provide any AssetNum in the incoming Json/XML message, just to provide the Vehicle_ID data

Hope this help.

Edit : typo horrors.

PS : In Maximo for transportation, Aliases are about to manage license plates :  a vehicle may have got several license plates in his history; the current one (default) and the old ones (non default). Not a good idea to use these aliases as they are non unique.