Use Case: Users in Maximo have the ability to Create Service Requests. Sometimes organizations also create 3rd party apps which are being used to create Service Requests by users who have no access to Maximo. In this hypothetical scenario, the requirement is to integrate Microsoft Teams app with IBM Maximo. Whenever a Service Request (SR) is created into Maximo, a notification shall be sent to the Maintenance Team Group on Microsoft Teams so that they can review the request and convert it to Work Order as required.
Solution:
Solution: Following are the steps to configure this integration between IBM Maximo and Microsoft Teams:
- 1. Go to MS Teams > Create a channel for maintenance teams. In this example we’ll name this channel as “Maximo”.
- 2. Once the channel is created, right click on three dots … in General.
-
3. Click on “Connectors”.
- 4. In the next dialog window, look for “Incoming Webhook” and Click on Add. Once it is added, click on Configure button for Incoming Webhook.
- 5. This will open another dialog box, into which name as “Maximo” and click on Create.
-
6. This will create a Webhook and show URL for newly created Webhook similar to given in example below.
https://xxx.webhook.office.com/webhookb2/412xxxxx-8743-4267-89af-8276d56afd05@cd8a43a4-5e93-4ee6-xxxx-80b254ddd59d/IncomingWebhook/3835ec1844ba4ec6981754513ea7306a/e48b9843-a678-43b9-bbdc-abcf7cd0bxxx
Copy this URL as it will be used to Post the data from Maximo to MS Teams. - 7. Now go to Maximo and create an End Point which will make a POST call to the above given URL.
- 8. For Integration, we’ll be using OOB Object Structure MXSR.
- 9. Go to Publish Channel and create a publish channel as shown below:
In the Processing class ensure adding processing class as “com.ibm.tivoli.maximo.fdmbo.JSONMapperExit”. - 10. Now Go to External System and create a new external system MSTEAMS and attach the publish channel created above with this external system as shown below.
- 11. Go to Database Configuration > Open TICKET object and add a custom persistent column “C_MESSAGE”.
- 12. Create an automation script C_MESSAGE which will set value of field C_MESSAGE as “SR#
Test Notification is assigned for your review.” This is the format in which Maximo will send notification to MS Teams.
ticketid = mbo.getString("TICKETID") description = mbo.getString("DESCRIPTION") mbo.setValue("C_MESSAGE", "SR# " + ticketid + " " + description + " is assigned for your review.")
This requirement can also be achieved by other possible way in Maximo. In this demo, we are using one of the easy ways. -
13. Now to trigger the POST call to MS Teams URL, we’ll be using another Object Launch Point script on SR MBO Add Event. This will ensure the publish channel sends notification when SR is created without enabling Event Listener.
from psdi.server import MXServer mxServer = MXServer.getMXServer() userInfo = mxServer.getSystemUserInfo() whereClause = "reportdate in (select max(reportdate) from SR)" mxServer .lookup("MIC").exportData("TEAMSR", "MSTEAMS", whereClause, userInfo, 1000)
- 14. MS Teams generates a notification when Post call is done on Webhook URL while passing
{ "text": "XXXXXXXXXX" }
To generate Post Response in this format, Go to the JSON Mapping application and create a new entry to trigger the outbound Post Message. Ensure the name of mapping is given as. .OUT for Outbound Transactions. - 15. Pass sample JSON entry in JSON Data Section. On the Properties tab, provide JSON Properties Mapping as shown below. In the source attribute, select the C_MESSAGE custom attribute created in earlier steps.
-
16. Last step is to add the “DigiCert Global Root CA” certificate in the Web Sphere trust store, otherwise Maximo will throw a Certificate not found error when SR is created, and the interface is triggered.
Certificate can be download from URL: https://www.digicert.com/kb/digicert-root-certificates.htm
- 17. Now to test the integration, go to Create Service Request and create SR#1187.
Go to MS Team and you will see a notification appeared for this SR into Maximo channel.
Similarly this functionality can be extended to message an individual user on MS Teams for other Use Cases.
Author
Principal Solutions Architect