1 IBM Maximo Web Services: shaping with XSLT - Internet of Ideas

IBM Maximo Web Services: shaping with XSLT

IBM Maximo Web Services: shaping with XSLT

12/09/2015 | Developer

In this articles I’m showing you as to shape a IBM Maximo Web Services with Extensible Stylesheet Language Transformations ( XSLT) to adapt the IBM Maximo web-service interfaces with any interface exposed by web services.

As you know a IBM Maximo Web Service interaction is a combination of configuration entities in the Maximo Base Services environment that act in concert to achieve the following:

  • prepare a request and pass request parameters to the web service
  • invoke a web service from a chosen business application
  • retrieve the results from the web service in the form of a response
  • display the results in the context of the business application
  • apply the result data into the application the web service was launcher

 

IBM Maximo web services capability

IBM Maximo web services capability

 

Follow these link to get a deeper introduction to Integration Framework and Web Services.

The Integration Framework includes powerful support to manage Extensible Stylesheet Language Transformations (XSLT) logic and add even more capability to your web services. You can use XSLT to shape incoming XML requests (the payload for Web services is XML) and outgoing results. The XSLT code allows you to create formatting structures that interpret and modify existing XML elements.

Usually when you have integrate two system you start from service specification by WSDL file. During this top down approach, you have to implement underlying code to match the specification. The XSLT support helps you map different data structure between two different system.

Honestly I do not like the Maximo’s interaction feature, a very frustrating issue I found was that the interactions applications do not support certain schema elements. Secondly some options are not very clear at first glance, in general I prefer to design the integration with a relatively high number of degrees of freedom.

So when Maximo acts as web services client my approach is:

  • create custom integration object with the structure which will be the foundation of our integration.
  • create custom end-point based on web service.
  • create invocation channel based on: custom end-point, custom integration object, custom request XSL file and response XSL file.
  • create action based on psdi.iface.action.InvokeCustomClass custom class and name equal to your invocation channel name.

This approach has two main advantages:

  • The IBM Maximo Web Services is fired by custom action, as you know a custom action can be used in workflow, web user interface button and escalation. That means you have true flexibility for your applications.
  • Using request XSLT and response XSLT you avoid to develop Java classes to adapt the different data structure. The XSLT files transform the outgoing Maximo data into external system’s format and vice versa.

For example to adapt my invocation channel XML ( InvokeMY_TICKET ) based on MY_TICKET integration object:

to external system’s XML (the payload for Web services is XML) :

I wrote the following XSL transformation:

request XSL file

response XSL file

XSLT is very flexible, here are some advantage and disadvantage of using XSLT

Advantages:

  • Avoiding to implement and to deploy Java code.
  • Testing XSL transformation without to restart the Maximo server.
  • Being template based, XSLT is more resilient to changes in documents.
  • By separating data (XML integration object) from the presentation (XSLT), it is very easy to change the output format in any time easily.
  • XML has self-documenting capability

Disadvantages:

  • It is difficult to implement complicate business rules in XSLT
  • Using XSLT have performance penalty in some cases

These simple steps can help in a majority of cases, what are yours ?

Your comments and suggestions are welcome.

 

Blog Comments

Great post

Great post, thanks for sharing

Add a comment

*Please complete all fields correctly

Related Blog

AI school
03/13/2018
Become an AI expert through Microsoft hands-on training course program, dive in and learn how to start building intelligence into your solutions with the Microsoft AI platform. The school includes...
microsoft azure
06/16/2017
Microsoft Azure is a global, trusted, and hybrid cloud platform that enables organizations to quickly build, deploy, and manage applications across a large network of Microsoft-managed data centers, supporting migration...
Microsoft loves Linux
05/23/2017
  Few year ago Microsoft CEO Satya Nadella said “Microsoft Loves Linux” during an event in San Francisco. This is not love at first sight. Modern IT is powered by...
HTML Snippets Powered By : XYZScripts.com