Using the Maximo Connector and Transformers in FME

Liz Sanderson
Liz Sanderson
  • Updated

FME Version

  • FME 2019.x

Introduction

This article provides an introduction to working with IBM’s Maximo Enterprise Asset Management System using FME.


FME Hub Resources

The FME Hub has two sets of Transformers designed to work with Maximo. One set is for on premise databases and the other to connect to SaaS.

The on premise transformers require the location of the Maximo host and a Maximo username/password for authentication.

The SaaS transformers have SaaS in the names, require the url of the SaaS instance instead of a host, and an FME Hub Web Connection for authentication. This web connection requires an API key generated by the Maximo admin.


Transformers:

MaximoObjectQuerierMaximoSaaSObjectQuerier: These transformers allow the user to query Maximo Assets, Service Requests and Work Orders by any property, using a where clause compatible with IBM OSLC query parameters.

MaximoObjectCreatorMaximoSaaSObjectCreator: These transformers allow the user to create a new Maximo Asset, Service Request or Work Order, using the JSON structure described in the Maximo JSON API documentation. The transformers can also upload a display image and any attachments for the object.

MaximoObjectUpdaterMaximoSaaSObjectUpdater: These transformers allow the user to update existing Maximo Assets, Service Request and Work Order properties using the same JSON as the MaximoObjectCreator. They will also upload images and attachments. Only the properties to be changed need to be included in the JSON. The transformers need the URL of the existing feature, which can be obtained using the MaximoObjectQuerier or MaximoSaaSObjectQuerier.

The FME Hub also has the Apache Kafka Connector package, which includes the KafkaConnector transformer. This can be used to read change events from the Maximo database and trigger FME processes based on those changes.


Using the Maximo transformers

MaximoObjectQuerier

The MaximoObjectQuerier allows you to query Maximo for Assets, Service Requests and Work Orders, using any of the object properties.

In this case we are searching for the Asset using a simple where clause that filters on the assetnum field value. The output of the transformer will be one feature for each record matching the query. The features will have all the Asset properties attached to them as attributes.

The transformer also has Include Response JSON set to Yes, which will create the attribute mx_object_json containing the raw JSON response from Maximo:

queriedassetjson.png

This is useful as a template for your own JSON when creating Maximo objects with the MaximoObjectCreator.

We can also query Service Records:

And Work Orders:

 

MaximoObjectCreator

The MaximoObjectCreator allows you to create new Asset, ServiceRequest and Work Order objects, with attached images and documents.

Here we are creating a new Kitchen, with an image to display in the Maximo interface. The JSON for this Asset is:

create-asset-json.png

We will also create a stove and sink assets as children of the kitchen:

For the Stove, we will also upload the manual and spec sheet PDF files as attachments, and set its parent to be the previously created Kitchen asset:

create-stove-json.png

 

The result in Maximo is:

 

The details of the Sink shows the image uploaded, and the Kitchen as a parent:

 

MaximoObjectUpdater

The MaximoObjectUpdater allows you to update existing Asset, ServiceRequest and Work Order objects. You can change the object properties, or add images and attachments to the object.

The interface and operation is similar to the MaximoObjectCreator, but an Existing Object URL is required in place of the Maximo Host address and Object Type. This url can be found in the 'href' attribute returned by the MaximoObjectQuerier.

Only the Properties to be changed need to be included in the Object JSON.

In the MaximoObjectCreator example above, we created the Test Stove as a FACILITIES asset. For this example, we will change that to PRODUCTION.

The first step is to add a MaximoObjectQuerier to get the url of the Test Stove

Next, we will add the MaximoObjectUpdater, with the Existing Object URL set to the href attribute of the input feature, and the Object JSON set to:

{"assettype":"PRODUCTION"}

update-stove-workspace.png


After we run the workspace and examine the Test Stove, we see that its asset type is now set to PRODUCTION


Connecting to Maximo SaaS using a FME Web Connection

The Maximo EAM SaaS Web connection uses an API key generated by Maximo for the credentials, which you can request from your Maximo Administrator.

Generating the API Key

If you have Admin access to Maximo, you can generate an API key using the following steps:

1. Enter the Administration page

2. Choose Integration from the side menu

3. Pick API Keys from the top menu

4. Click on the Add API key button
admin.png

5. In the dialog that pops ups, click on the magnifying glass icon to bring up the user list, then choose the user you want to supply a key from the list.

api-user.png

6. A new API key will be displayed. Click on Copy key to copy to the clipboard.

newkey.png

 

Adding Connection to FME

In FME Workbench, Pick Tools - FME Options from the top menu, then click on the Web Connections option.

fme-options.png

Click on the Manage Service button to bring up the Manage Web Service dialog.

managewebservices.png

Select the Maximo EAM SaaS connection and click the Download button. Once the download is complete, close the dialog.

Click the '+' icon at the bottom of the Web Connection dialog to add a new connection.

  • Choose Maximo EAM SaaS as the Web Service.
  • Set a suitably descriptive name.
  • Paste in the API key from Maximo

edit-web-connection.png

Click OK to create the Web Connection that can be used in any of the Maximo transformers.


Conclusion

The Maximo Connector and Transformers make it easy to query, create and update Maximo records as part of your automated processes in FME.

 

Was this article helpful?

Comments

0 comments

Please sign in to leave a comment.