Implement Oracle Enterprise Scheduler Web Service Calls
Oracle Fusion Applications provide a web service to submit and access Oracle Enterprise Scheduler jobs called the Oracle Enterprise Scheduler Web Service.
Oracle Enterprise Scheduler Web Service URL:
https://{FA_HOST}:{FA_PORT}/ess/esswebservice?WSDL
SOAPADAPTR-20027: Cause - Unable to parse definition as configured
wsdl is not supported, Action - Verify WSDL definition and please make sure
that your schema documents are correct
This error occurs due to the peculiarity of its WSDL structure: the service URL has a concrete WSDL definition with abstract contents in a separate WSDL used as an import.
The concrete Oracle Enterprise Scheduler Web Service URL only has bindings and a service section in the definition. This imports another WSDL URL (shown below) that contains abstract information (types, messages, and portTypes sections) in the definition.
https://{FA_HOST}:{FA_PORT}/ess/esswebservice?WSDL=ESSWebServiceAbstract.wsdl
Receive a Callback from Oracle Enterprise Scheduler Jobs
To receive a callback from Oracle Enterprise Scheduler jobs, an Oracle Integration SOAP endpoint must be exposed. For this, create an integration with a SOAP Adapter as a trigger connection configured with the following information.
- Create a SOAP Adapter connection with the trigger role.
- Enter the Oracle Enterprise Scheduler Web Service abstract URL in the WSDL URL field.
- Select the Security Assertion Markup Language (SAML) security policy.
- Use this SOAP Adapter connection as a trigger connection in an integration.
- On the Operations page of the Adapter Endpoint Configuration Wizard, select the ESSWebServiceCallback port type.
- Complete integration design and activate the integration.
- Ensure that the callback integration endpoint is specified in the corresponding request integration: ReplyTo EndpointURI.
Submit Requests to Oracle Enterprise Scheduler Jobs
To submit requests to Oracle Enterprise Scheduler, the SOAP Adapter must invoke the Oracle Enterprise Scheduler web service. Since the structure of the Oracle Enterprise Scheduler web service is not supported by the SOAP Adapter and requests to the service require WS-Addressing headers to be passed, the following steps describe how to implement this service call.
- Configure the connection using an uploaded WSDL
instead of a URL.
- Create a SOAP Adapter connection with the invoke role.
- Obtain the WSDL file to use from support note 2377662.1 at https://support.oracle.com.
- Change the
soap:address
location in the WSDL to the specific Oracle Fusion Applications environment.<soap:address location="https://{FA_HOST}:{FA_PORT}/ess/esswebservice"/>
- On the Connections page for the SOAP Adapter, click the Upload WSDL button and select the WSDL you updated.
- Select the Username Password Token security policy.
- Configure the invoke connection.
The service expects WS-Addressing headers for most calls. Because WS-Addressing headers are not supported out-of-the-box for typical invoke connections, configure the invoke connection to use custom SOAP headers. See Configure Custom SOAP Headers for the SOAP Adapter.
Most requests require
wsa:Action
andwsa:MessageId
headers. The following schema can be used to configure the WS-Addressing headers for the invoke connection.Sample WS-Addressing Schema:
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.w3.org/2005/08/addressing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing"> <xsd:element name="MessageID" type="xsd:string"/> <xsd:element name="Action" type="xsd:string"/> </xsd:schema>
Troubleshoot
Error | Cause |
---|---|
Service invocation fails with the following
error:
|
One or more of the WS-Addressing headers are missing in the request. |
Service invocation fails with the
following
error:
|
The Oracle Enterprise Scheduler
web service endpoint URL should be the
following:
and not
this:
|
Service invocation fails with
the following error:
|
The Oracle Enterprise Scheduler
web service request expects a
requestParameters element in the
request sent. Ensure that you create a target node
for this element in the request mapper so that the
element is created in the runtime request with an
empty/null value. You can also map
#NULL for this element.
|
Service invocation fails with
the following error:
|
See this blog for possible reasons. |