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
When this service URL is used directly within the SOAP Adapter, the following error occurs.
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.

Oracle Enterprise Scheduler Web Service abstract URL:
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.

  1. Create a SOAP Adapter connection with the trigger role.
    1. Enter the Oracle Enterprise Scheduler Web Service abstract URL in the WSDL URL field.
    2. Select the Security Assertion Markup Language (SAML) security policy.
  2. Use this SOAP Adapter connection as a trigger connection in an integration.
    1. On the Operations page of the Adapter Endpoint Configuration Wizard, select the ESSWebServiceCallback port type.
    2. Complete integration design and activate the integration.
  3. 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.
    1. Create a SOAP Adapter connection with the invoke role.
    2. Obtain the WSDL file to use from support note 2377662.1 at https://support.oracle.com.
    3. 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"/>
    4. On the Connections page for the SOAP Adapter, click the Upload WSDL button and select the WSDL you updated.
    5. 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 and wsa: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:
A required header representing a Message Addressing Property is not present.
One or more of the WS-Addressing headers are missing in the request.
Service invocation fails with the following error:
Job definition with name {JOB_DEFINITION_NAME} not found.
The Oracle Enterprise Scheduler web service endpoint URL should be the following:
https://{FA_HOST}:{FA_PORT}/ess/esswebservice
and not this:
https://{FA_HOST}:{FA_PORT}/bi/ess/esswebservice
Service invocation fails with the following error:
java.lang.NullPointerException
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:
User $USER does not have sufficient privilege to perform operation submitRequest.
See this blog for possible reasons.