Oracle Corporation announced the availability of Oracle® E-Business Suite Release 12.1 on May 4, at Collaborate 2009 being held in Orlando, Florida. I won’t try to enumerate all the new stuff we have in Release 12.1 (R12.1 for short) and will only talk about the brand new Integrated SOA Gateway available for the first time in R12.1.
Note: This release is actually R12.1.1. Release 12.1 was a controlled release. You will see both versions used across web sites & documents. They all refer to the release that was announced on May 4, 2009.
First a few links:
- Announcement of the availability of Oracle® E-Business Suite Release 12.1
- Details of Oracle® E-Business Suite Release 12.1
- Oracle E-Business Suite Release 12.1.1: Release Content Documents – A good list of “What’s New” in this release.
- Oracle Applications Documentation Resources, Release 12.1 - Related links covering a lot of topics and products, and a good place to start reading
With that out of the way, on to the shinny new Integrated SOA Gateway!
What exactly is it? Well, the RCD describes it as:
… a comprehensive SOA-based integration infrastructure in the form of a new product called Oracle E-Business Suite Integrated SOA Gateway that helps organizations to provide, consume and monitor web services for integrations in a heterogeneous ecosystem …
What that lot means is actually simple to understand – the ability to expose EBS functionality as SOAP based web services. And that includes XML Gateway, Business Service Objects, Concurrent Programs, PL/SQL APIs etc. Yes! That means you can invoke a PL/SQL procedure on an EBS instance via standard, SOAP based web service calls!
Note: I am not responsible for what they put in these documents. And that’s the last one I translate for free!
In addition to the SOA Provider, R12.1 also includes a Service Invocation Framework (SIF) and a SOA Monitor. SIF allows SOAP based web service calls to be made from within EBS and the SOA Monitor allows logging of incoming SOAP traffic. I will talk about both in a future post.
And of course the Integration Repository has a brand new face. In addition to the existing functionality it now provides UIs to manage the availability of EBS services and access control for exposed services.
Fig 1. The new Integration Repository
Note: Click on images to see a full size version.
Lets look at how this works. I have selected a PL/SQL API called FND_PROFILE. This API allows the user to manipulate profile values stored in the user profile caches. A simple PL/SQL API. Nothing fancy. Just right to demonstrate what the Integrated SOA Gateway has to offer.
When we search the Integration Repository (or browse) for this API and drill to the API’s detail page, this what we get:
Fig 2. The FND_PROFILE page in the Integration Repository
Note that we have a “Generate WSDL” button in addition to a host of information about the API. At this time the FND_PROFILE PL/SQL API is not exposed as a SOAP based web service. In order to expose it, we must first generate a WSDL for the service by clicking the “Generate WSDL” button. This is what we get:
Fig 3. FND_PROFILE Service “Generated”
The page now shows a WSDL link of the form
http:// <server> : <port> /webservices / SOAProvider / plsql / <API NAME> / ?wsdl
Clicking this will open the generated WSDL in a new browser window. But before we go do that let’s look at what else is in here. You will notice a new button named “Deploy” has appeared under the WSDL link. We have successfully generated a WSDL for our PL/SQL API but it is still not ready for prime time. We must deploy the new web service to the SOA Provider. Clicking the “Deploy” button gives us this:
Fig 4. PL/SQL Service Deployed to SOA Provider
Now lets click the WSDL link and see what it contains:
Fig 5. Part of the generated WSDL for the EBS PL/SQL API web service
The full WSDL is available here.
Now we can invoke our new service?
Apparently not. We still have to specify who can invoke this web service. For this we use the regular EBS authorization mechanism and “Create a Grant” for the service. We do this from the same Integration Repository page. Select the procedures / functions you want to be able to call and click the “Create Grant” button.
Fig 6. Selecting procedures / functions to create a new grant
In the resultant screen we see that we can have 3 different “Grantee Types”:
- All Users
- Group of Users
- Specific User
In this case we will select “Specific User” and create a grant for all the procedures exposed by the FND_PROFILE PL/SQL API and now SOAP based web service.
Fig 7. New grant created for the PL/SQL API exposed as a web service
Now we are ready to invoke our new service!
To do that we need a web service client. For the purpose of this article I have selected the excellent Open Source “SOAP UI” software. If you haven’t used it yet, do. We could use a host of different tools and technologies to invoke our new web service, including, Oracle’s Fusion Middleware and BPEL, standard Java based clients programmed in Apache Axis or similar, J2EE servers like Oracle OC4J & Weblogic, IBM Websphere and even from a Microsoft .NET (Yuk!) based client. The WSDLs generated by the Integrated SOA Gateway are standards compliant and fully interoperable. If you can do SOAP over HTTP, you can call the service!
Okay, to proceed! SOAP UI needs the WSDL to be able to invoke the service. So we copy the WSDL link from the Integration Repository page and create a new project in SOAP UI:
Fig 8. Creating a new project in SOAP UI
We paste our WSDL link from the EBS instance and select some options in the SOAP UI new project dialog:
Fig 9. New project dialog in SOAP UI
SOAP UI now does it’s magic. It reads the WSDL and all linked artifacts like the XSDs. With this it is now able to give us a nice little XML request document with some junk values filled in for the various parameters:
Fig 10. SOAP UI’s SOAP request XML
We edit this xml document to put in some meaningful data. Note the SOAHeader in the header section of the request XML. This is a custom SOAP Header required for all Integrated SOA Gateway web services. This is where we provide our EBS credentials like:
- Responsibility
- Responsibility Application
- Security Group
- Organization ID
- NLS Language
Note: We provide our authentication information (user name & password) as standard WSSE Headers.
We also need the correct payload. The FND_PROFILE API exposes three methods:
- GET
- PUT
- VALUE
I have used the GET method here. This method needs a Profile Option name and I have selected the “FND_ANTIVIRUS_SERVER” Profile Option to use here.
Fig 11. Filled in request XML
Hitting the “Run” toolbar button in SOAP UI invokes our web service!
Fig 12. Web Service Response from EBS Instance
Lets look at the EBS instance to make sure we got what we paid for:
Fig 13. The Profile Option value on the EBS instance
Viola! We synchronously invoked a PL/SQL API on an R12.1 EBS instance using SOAP over HTTP and open source tools!
The new Integrated SOA Gateway is a wonderful technology and one we hope will help EBS customers integrate their other software systems with their E-Business Suite instances more easily and in a standard manner.
Note: Over the next few weeks I will write more about the new functionality available in Oracle E-Business Suite Release 12.1. Say tuned.
No related posts.
Related posts brought to you by Yet Another Related Posts Plugin.















No comments.