By Alejandro Sosa-Oracle on Apr 26, 2016
Integrated SOA Gateway's Service Invocation Framework id based on the Business Event System capability to subscribe to java function Invoke Web Service (WebServiceInvokerSubscription.java) in order to invoke a web service.
This blog goes over the series of steps on how to deploy one of the standard database packages (FND_ USER_PKG) as a web service so that it can be consumed by the subscription to Invoke Web Service, and perform the invocation from the Business Event System administrator page.
Note: This content applies to EBS versions 12.1.3 and 12.2.
1. Enable and deploy the interface to be published as web service
Connect to EBS with the responsibility Integrated SOA Gateway and go to the Repository. There, expand Application Technology and then Application Object Library. Select User.
Now the list of interfaces for User are displayed. Click on the one with internal name FND_USER_PKG:
From the list of PLSQL interfaces select 'Test User Name' and hit generate WSDL
Select the box of Test User Name and click on Generate and then Deploy. After the Generation is complete a link to the WSDL file is enabled and it is to be used to consume the service. Copy the WSDL link or simply click on it:
2. Test the invocation from outside EBS
SOAP UI is a nice tool to quickly test the services proper deployment, and it only requires the URL to the WSDL generated above.
Notice that upon invocation the response of the Web Service can be seen on the panel on the right.
3. Define a business event with a subscription to Invoke Web Service
Now test the invocation from within EBS by using the Business Event System itself. Simply create a business event and create a subscription to Web Service Invocation. Then follow the train of configuration.
Select the service, port and operation to be invoked by this subscription:
4. Test the invocation from Business Event System
Now that the event and the subscription are created, query the event and click on the Test event icon/link
On these form three parameters are required:
- Event Key, which can be anything
- Event parameter WFBES_INPUT_HEADER set to the following:
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" env:mustUnderstand="1" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> <wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="UsernameToken-12423818"> <wsse:Username>sysadmin</wsse:Username> <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">sysadmin</wsse:Password> </wsse:UsernameToken> </wsse:Security>
<tes:InputParameters xmlns:tes="http://xmlns.oracle.com/apps/fnd/soaprovider/plsql/fnd_user_pkg/testusername/"> <tes:X_USER_NAME>SYSADMIN</tes:X_USER_NAME> </tes:InputParameters>
By clicking on Raise on Java the subscription is executed in the same session and the response is provided immediately:
Notice the response is the same as the one seen in SOAP UI
Oracle Business Event System provides the capability to invoke SOAP web services and also the means to test them by using its own features.