Monitoring Maximo with FME

Liz Sanderson
Liz Sanderson
  • Updated

Introduction

Maximo can be configured to send notifications when objects are added, deleted, or modified. These notifications can be read by an FME workspace and used to update other datasets or trigger other imports or exports.

Configuring Events in Maximo SaaS

The steps needed to configure outbound events in Maximo SaaS are documented in the IBM document Integration for Maximo Public SaaS. We will run through the process, with illustrations for clarity.

Creating Event Stream

The first step is to set up an IBM Event Stream in your IBM Cloud account. Log in to cloud.ibm.com, then create a Resource from the Dashboard.
ibmcloud-start.png

Type 'event streams' into the search bar to find the Event Streams Service.

ibmcloud-findservice.png

Select the Event Streams service, then select the desired plan. Lite is sufficient for testing. Click the Create button to create the service.

ibmcloud-createservice.png

Once the Service is created, we need to create a Credential to access it and a Topic to send our messages to. The Lite Plan only allows a single Topic to be created, so it is not sufficient for a working integration.

First, we will create the Topic. From the side menu, choose Manage, then click on Topics. Click the Create Topic button to create a new Topic.

ibmcloud-topics.png

Set the Topic Name to MaximoAssetChange, then click the Next button.

ibmcloud-addtopic.png

Set the desired number of partitions (Lite plan allows only 1).

ibmcloud-addtopic1.png

Set the message retention. Since we will be polling and clearing the messages in a workspace, a one-day retention should be sufficient. Click the Create Topic to finish.

ibmcloud-addtopic2.png

Next, create a Credential to allow access to the Event Stream.

Select Service Credentials from the side menu, then click the New Credential button.

ibmcloud-addcredential.png

In the Add new credential dialog, leave the default settings and click the Add button

ibmcloud-addcredential2.png

Once the credential is created, you can view it by clicking the View credentials button. We will need the password, and the kafka_brokers_sasl.

ibmcloud-viewcredential.png

Copy the highlighted portion of the brokers to a text file, then remove the spaces and carriage returns to make it a single line.

ibmcloud-kafkaservers.png

Configuring Maximo to use Event Stream

In Maximo, go to Administration, then choose Integration from the side menu. The Configure IBM Event Streams for IBM Cloud dialog should open automatically. If it does not, click on Outbound Events, then click the '>' button and choose Event Streams.

admin-integration.png

The Configure IBM Event Streams for IBM Cloud dialog requires three pieces of information:

configure-event-streams-1.png

Set the User ID to 'token'. For the Password, use the password from the Event Stream credentials. In Servers, paste the modified server string from your text editor.

configure-event-streams-2.png

Click Save to add the event stream to Maximo.

Now, let's create an event to track modifications to an Asset. Click on the Add Event Button to bring up the Add Event dialog.
add-event-1.png

Fill in the Event Name and Description with something suitable, ie, 'Add Asset'.

Click the Magnifying Glass icon next to Topic, then select the MaximoAssetChange topic you created in the IBM Event Streams setup.

Click the Magnifying Glass icon next to Object Structure. This will bring up a dialog listing all the available Maximo API structures. Type asset into the search field, then hit the enter key to search for the Asset APIs.
add-event-2.png

From this list, choose MXASSET. This will cause all the Asset's properties to be included in the event message.

add-event-3.png

Click the Add button to save the Event.

add-event-4.png

Click on the new Event to bring up it properties.

add-event-5.png

Click on the Activate Event toggle, then toggle data update off and data added on. Click Save to return to Outbound Events.

Now anytime you add an Asset to Maximo, an event will be sent to the IBM Event Streams.

Monitoring the Events in FME

To connect to the IBM Event Stream, we need to use the KafkaConnector transformer in a workspace. This transformer is a part of a downloadable package, which is available within Workbench, in the Transformer gallery or Quick Add, if you are connected to the internet.

get-events-workspace.png

Configure the KafkaConnector with the credentials from the IBM Event Stream using the following settings:

kafkaconnector-parameters.png

Set Credential Source to Embedded, then set the User Name to token and the Password to the password from the Event Stream credentials.

Set the Security Protocol to SASL SSL, with the SASL mechanism set to Plain and the Certificate blank.

The kafka_brokers_sasl values from the Event Stream credentials need to be broken up into URLs and ports, and added to the Brokers parameter of the transformer.

Click the ... button next to the topic to bring up the Select Topics dialog. Select the MaximoAssetChange from the topic list and click OK to accept.

select-kafka-topics.png

The default Receive Mode of Stream works best in a real-time workspace that never finishes. For testing, it is more useful to set the Receive Mode to Batch, with a Batch Size of 100. In this mode, the transformer will poll the Event Stream for up to 100 events whenever a feature is sent to it.

Set the Consumer Group ID to test. For more information on Kafka Consumer Groups, please see https://kafka.apache.org/documentation/#intro_consumers.

Leave all the other settings as the defaults.

The KafkaConnector will output an individual feature for each event it reads, with the following attributes added to them:

_timestamp: The timestamp of the event, formatted as seconds since Jan 1, 1970 (Unix Epoch).

_topic: The topic of the event. This is useful when reading from multiple topics.

_value: The event message. In this case, this is a binary value that needs to be converted to JSON

get-events-workspace.png

The BinaryEncoder transformer converts the event message from binary to Hex, then the TextDecoder decodes the JSON string from Hex. Finally, we use a JSONFormatter to make the JSON more readable.

The DateTimeConverter is used to convert the timestamp to an ISO datetime.

Example of the message produced by adding the Stove asset with the MaximoObjectAdder:

event-example.png

Was this article helpful?

We're sorry to hear that.

Please tell us why.

As of January 14th, 2026, comments on knowledge base articles have been closed. To make sure questions don’t get missed and to enable more community support, we’ve moved discussions to the FME Community. If you have a question or a comment about this article, please create a new post or create a support ticket.