Web Services are the most flexible and powerful technology to integrate Maximo with other systems.
In this article I will describe the steps required to configure an inbound Web Service to create or update assets.
Setup test tool (SoapUI)
To test the Web Service you need an application to simulate inbound HTTP calls.
I strongly suggest to use SoapUI. It may seems complex at the beginning but is a very powerful and easy tool in the real world. You can download SoapUI client from here.
There are two important properties that need to be set before deploying a Web service in Maximo. Open the System Properties application (GoTo > System Configuration > Platform Configuration > System Properties) and check the following two properties.
- mxe.int.globaldir: This property specifies the root folder where all the integration configuration files are located. If this value is null, the folders are created under the current working directory of the application server (for example: C:\IBM\WebSphere\AppServer\profiles\AppSrv01).
- mxe.int.webappurl: This specifies the integration Web application URL. It is important to ste the hostname and port you use to connect to the Maximo UI.
- mxe.int.containerdeploy: This setting determines where you will deploy the WebService (more details later)
Object Structure (MXD-ASSET)
The first element of the MIF chain is the Object Structure.
Open the Object Structures application (Go To > Integration > Object Structures) and create the following Object Structure:
- Object Structure: MXD-ASSET
- Description: Assets Object Structure (MaximoDev)
- Consumed By: INTEGRATION
- Source Object: ASSET
Enterprise Service (MXD-ASSETES)
The second element of the MIF chain is the Enterprise Service. Open the Enterprise Services application (Go To > Integration > Enterprise Services) and create the following entry:
- Enterprise Service: MXD-ASSETES
- Description: Assets Enterprise Service (MaximoDev)
- Operation: Sync
- Object Structure: MXD-ASSET
- Adapter: MAXIMO
External System (MXD-EXTSYS)
The third step is to define the External System.
Open the External Systems application (Go To > Integration > External Systems) and create the a new entry:
- System: MXD-EXTSYS
- End Point: not set
- Description: Sample External System (MaximoDev)
- Enabled: Yes
Add the MXD-ASSETES Enterprise Service in the Enterprise Services tab, and enable it.
Deploy the Web Service
Now the Web Service can be deployed.
- Open the Web Services Library application (Integration > Enterprise Services) and select Create WebService > Create Web Service from Enterprise Service.
- Select the MXD-EXTSYS_MXD-ASSETES entry and click on the Create button.
- Open MXD-EXTSYS_MXD-ASSETES record and select Deploy to Product Web Service Container > Deploy Web Service.
- The following message will be displayed: BMXAA1277I – A web service is deployed for the MXD-EXTSYS_MXD-ASSETES service.
Test the Web Service
If the Web Service has been correctly deployed, the WSDL is downloadable from the server at the following address: http://[MAXIMOHOST]/meaweb/wsdl/MXD-EXTSYS_MXD-ASSETES.wsdl
Paste this link in a web browser to verify that it has been published correctly.
Now launch SoapUI application and create a new project specifying the WSDL link in the ‘Initial WSDL’ field.
Replace the entire content of the sample request with this (setting the correct SITEID).
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:max="http://www.ibm.com/maximo"> <soapenv:Header/> <soapenv:Body> <max:SyncMXD-ASSET> <max:MXASSETSet> <max:ASSET> <max:SITEID>BEDFORD</max:SITEID> <max:ASSETNUM>001</max:ASSETNUM> <max:DESCRIPTION>My desc</max:DESCRIPTION> </max:ASSET> </max:MXASSETSet> </max:SyncMXD-ASSET> </soapenv:Body> </soapenv:Envelope>
Now if you click on the small arrow on the upper left side of the request window you should receive a message back from the server. Fix any error until you get a success message and the asset is created on Maximo. This screenshot shows what you should see.
12 thoughts on “Maximo inbound Web Services tutorial”
i have a wsdl given by the third party service provider and now i want to update my assets based on the data from their system..how can i do that…please help
I have requirement .that Maximo 7.5 Integrating with DMS System .Do you have any idea about Maximo Integrating with DMS(Doc Management System) System ?. If yes …Could you please let me know the steps that i have to follow .
I got following exception when tried above example…
nested exception is: psdi.util.MXAccessException: BMXAA7901E – You cannot log in at this time. Contact the system administrator.
org.apache.axis2.AxisFault: nested exception is: psdi.util.MXAccessException: BMXAA7901E – You cannot log in at this time. Contact the system administrator.
Your articles are really helpful to understanding functionalities because i am new to Maximo as like a fresher.
Here I have a below requirement, please provide your solution to implement it.
Requirement on Integration Module:
The Maximo App server will be receiving any type of message through Queue like XML,SOAP Request, Flat file etc., from different external systems. Here I required one wrapper class to convert those messages into common format say XML (is my end format) and sensd it to App server for futher process.
Please provide your suggestions or solutions in what way to implement this.
Thanks in Advance,
I have created an enterprise-based web service to allow an external CGI-based web form to query asset data in Maximo, but I either get a 500 error or a "Namespace is not defined" error when I try and send the query information over. I am using Perl 5.10 and the SOAP::Lite module for the communication. has ANYone been successful at using PERL to interact with a web service in Maxmio? Any help that you could provide would be greatly appreciated.
Thanks in advance.
Did you resolve this issue? We are getting same Namespace is not defined" error after we applied a Fix Pack 188.8.131.52 from 184.108.40.206. For an interface that was working fine before FP install.
We have a similar requirement could you please let me know if you were able to accomplish the above task? Is there any documentation you followed to setup the system?
Is there anyway that we can capture the XML generated after the XSL transformation is done? Basically we would like to capture the transformed XML (after passing through XSL) being sent to the external system.
Any help is much appreciated.
I need IBM maximo WSDL and schema files for integration.
Can you please suggest location from where i can download.
Hello Bruno , once I have pushed in a record from SoapUI to Maximo how can I update the record from Soap ? I can create but I can't update. Please help and thank you.
my question is, why are you using the MXASSETset instead of the MXD-ASSET that gets produced when importing into SoapUI. i cannot insert into a Custom table and i think the in mine is the issue.
This content is very helpful, I am trying something similar but the additional part is I have to use the same enterprise service for Create and Update of ticket(Incident) in Maximo. In case of a create call, I want to send the external system TICKETID back(a custom xslt response). I am unable to attach any part of response for the sync Enterprise Service in Maximo. On adding the xslt file from backend, there is no call to the response xslt in logs, only request xslt is called at first create. Can you please suggest how can I achieve this?