Wednesday, 22 July 2020

OIC - REST API URL Patterns

Some applications can expose REST services using either path parameters or query parameters.  
For example Oracle Fusion applications provides REST API's using both path parameters and query parameters. 

Path Parameter Sample: 

https://fusion-host-name:443/hcmRestApi/resources/latest/userAccounts/{UserGUID}


When you provide this URL in OIC relative URL path , OIC will create a parameter called UserGUID with type as String. 

You can use this parameter variable to pass dynamic values during runtime. 


Query Parameter Sample: 


https://idcs-host-name/admin/v1/Users?filter=userName+sw+%22vijaya%22

https://oracle-fusion-hostname/hcmRestApi/resources/latest/emps?q=PersonNumber=112233


In this scenario , we cant provide URL with ?  in OIC rest end point.   We can provide value till ? mark. 

In the above examples, query parameters are filter and q strings.   

While creating REST invoke , select add query parameters and provide Query parameters as filter and q. 

We can provide values to these parameters in mapping and we can pass dynamic values. 

Example : 

q mapping   concat("PersonNumber=",'$dynamic_person_number')








Saturday, 18 July 2020

OIC - Invoke Oracle Fusion ESS Scheduler Job for Job Set

You may come across a scenario where in you may need to submit multiple ESS jobs or BIP Jobs  in parallel or in sequence.  In that case ,  you need to create a job set comprising multiple ESS jobs. 

Oracle provide following SOAP services to invoke ESS jobs. 

  • ERP Integration service 
    • https://<fa-host-name>/fscmService/ErpIntegrationService
  • ESS Webservice 
    • https://<fa-host-name>/ess/esswebservice
We can use ESS Webservice to invoke a Job Set or Individual Job Definition.  These are the sample payloads for invoking Job Definition or a Job Set. 



JOB_DEFINITION_PAYLOAD

<soapenv:Envelope xmlns:sch="http://xmlns.oracle.com/scheduler" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://xmlns.oracle.com/scheduler/types">
   <soapenv:Header>
      <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
         <wsu:Timestamp wsu:Id="TS-A5B886251698B47327159420696702512">
            <wsu:Created>2020-07-08T11:16:02.985Z</wsu:Created>
            <wsu:Expires>2020-07-08T12:17:07.024Z</wsu:Expires>
         </wsu:Timestamp>
         <wsse:UsernameToken wsu:Id="UsernameToken-A5B886251698B47327159420696298511">
            <wsse:Username>XXXXX</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">XXXXX</wsse:Password>
            <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">YPoASPzSuIL4V08wZwLrVw==</wsse:Nonce>
         </wsse:UsernameToken>
      </wsse:Security>
   </soapenv:Header>
   <soapenv:Body>
      <sch:submitRequest>
         <sch:description>xxrun12345</sch:description>
         <sch:jobDefinitionId>
            <!--Optional:-->
            <typ:name>XXHCM_ERP_Newhire_Assignment_Supervisor_Extract</typ:name>
            <!--Optional:-->
            <typ:packageName>/oracle/apps/ess/custom/NewhireAssignmentSupervisor/</typ:packageName>
            <!--Optional:-->
            <typ:type>JOB_DEFINITION</typ:type>
         </sch:jobDefinitionId>
         <sch:application>EarHcmEss</sch:application>
         <sch:requestedStartTime>2020-07-08T11:16:02.985Z</sch:requestedStartTime>
         <sch:requestParameters/>
      </sch:submitRequest>
   </soapenv:Body>
</soapenv:Envelope>


JOB_SET_PAYLOAD:

Following sample payload will provide how to send the parameters to a Job Set


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sch="http://xmlns.oracle.com/scheduler" xmlns:typ="http://xmlns.oracle.com/scheduler/types">
   <soapenv:Header>
      <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
         <wsu:Timestamp wsu:Id="TS-A55DABD7EBC81F9C96159506526235712">
            <wsu:Created>2020-07-18T09:41:02.357Z</wsu:Created>
            <wsu:Expires>2020-07-18T11:21:02.357Z</wsu:Expires>
         </wsu:Timestamp>
         <wsse:UsernameToken wsu:Id="UsernameToken-A55DABD7EBC81F9C9615946214924243">
            <wsse:Username>xxxxxx</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">xxxxxx</wsse:Password>
            <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">VwO7xSR3E3qdW//OXsrTmQ==</wsse:Nonce>
            <wsu:Created>2020-07-13T16:24:23.440Z</wsu:Created>
         </wsse:UsernameToken>
      </wsse:Security>
   </soapenv:Header>
   <soapenv:Body>
      <sch:submitRequest>
         <sch:description>xxrun12347</sch:description>
         <sch:jobDefinitionId>
            <!--Optional:-->
            <typ:name>XXHCM_WORKER_WORKSTRUCTURES_JOBSET</typ:name>
            <!--Optional:-->
            <typ:packageName>/oracle/apps/ess/custom/jobset/</typ:packageName>
            <!--Optional:-->
            <typ:type>JOB_SET</typ:type>
         </sch:jobDefinitionId>
         <sch:application>EarHcmEss</sch:application>
         <sch:requestedStartTime/>
         <sch:requestParameters>
            <!--0 to 1000 repetitions:-->
            <typ:parameter>
               <typ:dataType>STRING</typ:dataType>
               <typ:name>submit.argument1</typ:name>
               <typ:value>1234</typ:value>
            </typ:parameter>
            <typ:parameter>
               <typ:dataType>STRING</typ:dataType>
               <typ:name>submit.argument2</typ:name>
               <typ:value>XXXXYYY</typ:value>
            </typ:parameter>
         </sch:requestParameters>
      </sch:submitRequest>
   </soapenv:Body>
</soapenv:Envelope>


Note:  We need to send the MessageID and Action in SOAP header to invoke these service. 


Common Errors and Solutions:

<env:Header>
      <FaultDetail xmlns="http://www.w3.org/2005/08/addressing">
         <ProblemHeaderQName>wsa:MessageID</ProblemHeaderQName>
      </FaultDetail>
      <wsa:Action>http://www.w3.org/2005/08/addressing/fault</wsa:Action>
   </env:Header>

Solution:  You are not sending Message ID in the request message. 


<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
   <env:Header/>
   <env:Body>
      <env:Fault>
         <faultcode>env:Server</faultcode>
         <faultstring>java.lang.NullPointerException</faultstring>
      </env:Fault>
   </env:Body>
</env:Envelope>


Solution:  You are not sending requestParameters tag in the request message. 



<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
   <env:Header/>
   <env:Body>
      <env:Fault>
         <faultcode>env:Server</faultcode>
         <faultstring>ESS-00502 The metadata object type must be specified</faultstring>
      </env:Fault>
   </env:Body>
</env:Envelope>

Solution:  You are not sending <typ:type>JOB_SET</typ:type> value or the namespace is not matching. 


 

Updated WSDL File: OIC will not support direct WSDL URL to create a SOAP connector.  Use the following WSDL definition to create a connector. 


<definitions name="ESSWebService" targetNamespace="http://xmlns.oracle.com/scheduler" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://xmlns.oracle.com/scheduler" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsa="http://www.w3.org/2005/08/addressing">
   <types>
      <xs:schema version="1.0" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://xmlns.oracle.com/scheduler/types" xmlns:tns="http://xmlns.oracle.com/scheduler/types" xmlns:xs="http://www.w3.org/2001/XMLSchema">
         <xs:complexType name="metadataObjectId">
            <xs:sequence>
               <xs:element name="name" type="xs:string" minOccurs="0" form="qualified"/>
               <xs:element name="packageName" type="xs:string" minOccurs="0" form="qualified"/>
               <xs:element name="type" type="tns:metadataObjectType" minOccurs="0" form="qualified"/>
            </xs:sequence>
         </xs:complexType>
         <xs:complexType name="postProcessAction">
            <xs:sequence>
               <xs:element name="actionName" type="xs:string" minOccurs="0"/>
               <xs:element name="actionOrder" type="xs:int"/>
               <xs:element name="arguments" type="xs:string" nillable="true" minOccurs="0" maxOccurs="100"/>
               <xs:element name="fileMgmtGroup" type="xs:string" minOccurs="0"/>
               <xs:element name="description" type="xs:string" minOccurs="0"/>
               <xs:element name="onError" type="xs:boolean"/>
               <xs:element name="onSuccess" type="xs:boolean"/>
               <xs:element name="onWarning" type="xs:boolean"/>
            </xs:sequence>
         </xs:complexType>
         <xs:complexType name="nlsOptions">
            <xs:sequence>
               <xs:element name="language" type="xs:string" minOccurs="0"/>
               <xs:element name="numericCharacters" type="xs:string" minOccurs="0"/>
               <xs:element name="territory" type="xs:string" minOccurs="0"/>
            </xs:sequence>
         </xs:complexType>
         <xs:complexType name="requestParameters">
            <xs:sequence>
               <xs:element name="parameter" type="tns:requestParameter" nillable="true" minOccurs="0" maxOccurs="1000" form="qualified"/>
            </xs:sequence>
         </xs:complexType>
         <xs:complexType name="requestParameter">
            <xs:sequence>
               <xs:element name="dataType" type="tns:dataType" minOccurs="0" form="qualified"/>
               <xs:element name="name" type="xs:string" minOccurs="0"/>
               <xs:element name="scope" type="xs:string" minOccurs="0"/>
               <xs:element name="value" type="xs:string" minOccurs="0"/>
            </xs:sequence>
         </xs:complexType>
         <xs:complexType name="requestExecutionContext">
            <xs:sequence>
               <xs:element name="requestId" type="xs:long"/>
               <xs:element name="requestHandle" type="xs:string"/>
               <xs:element name="pausedState" type="xs:string"/>
               <xs:element name="resumed" type="xs:boolean"/>
            </xs:sequence>
         </xs:complexType>
         <xs:complexType name="stepArgs">
            <xs:sequence>
               <xs:element name="arguments" type="xs:string" nillable="true" minOccurs="0" maxOccurs="100"/>
               <xs:element name="NLSOptions" type="tns:nlsOptions" minOccurs="0" form="qualified"/>
               <xs:element name="PPActions" type="tns:postProcessAction" nillable="true" minOccurs="0" maxOccurs="100" form="qualified"/>
               <xs:element name="stepPath" type="xs:string" minOccurs="0"/>
            </xs:sequence>
         </xs:complexType>
         <xs:complexType name="requestDetail">
            <xs:sequence>
               <xs:element name="actualEndTime" type="xs:dateTime" minOccurs="0" form="qualified"/>
               <xs:element name="actualStartTime" type="xs:dateTime" minOccurs="0" form="qualified"/>
               <xs:element name="cause" type="xs:string" minOccurs="0" form="qualified"/>
               <xs:element name="description" type="xs:string" minOccurs="0" form="qualified"/>
               <xs:element name="dispatcherNode" type="xs:string" minOccurs="0" form="qualified"/>
               <xs:element name="expirationTime" type="xs:dateTime" minOccurs="0" form="qualified"/>
               <xs:element name="isCancellable" type="xs:boolean" form="qualified"/>
               <xs:element name="isHoldable" type="xs:boolean" form="qualified"/>
               <xs:element name="jobDefinitionId" type="tns:metadataObjectId" minOccurs="0" form="qualified"/>
               <xs:element name="parentRequestId" type="xs:long" form="qualified"/>
               <xs:element name="priority" type="xs:int" form="qualified"/>
               <xs:element name="processorNode" type="xs:string" minOccurs="0" form="qualified"/>
               <xs:element name="requestId" type="xs:long" form="qualified"/>
               <xs:element name="requestParameters" type="tns:requestParameters" minOccurs="0" form="qualified"/>
               <xs:element name="requestedEndTime" type="xs:dateTime" minOccurs="0" form="qualified"/>
               <xs:element name="requestedStartTime" type="xs:dateTime" minOccurs="0" form="qualified"/>
               <xs:element name="retried" type="xs:int" form="qualified"/>
               <xs:element name="scheduleId" type="tns:metadataObjectId" minOccurs="0" form="qualified"/>
               <xs:element name="scheduledTime" type="xs:dateTime" minOccurs="0" form="qualified"/>
               <xs:element name="state" type="tns:state" minOccurs="0" form="qualified"/>
               <xs:element name="errorType" type="tns:errorType" minOccurs="0" form="qualified"/>
               <xs:element name="stepId" type="xs:string" minOccurs="0" form="qualified"/>
               <xs:element name="submissionTime" type="xs:dateTime" minOccurs="0" form="qualified"/>
               <xs:element name="submitter" type="xs:string" minOccurs="0" form="qualified"/>
               <xs:element name="runAsUser" type="xs:string" minOccurs="0" form="qualified"/>
               <xs:element name="triggerId" type="tns:metadataObjectId" minOccurs="0" form="qualified"/>
               <xs:element name="workAssignmentId" type="tns:metadataObjectId" minOccurs="0" form="qualified"/>
               <xs:element name="workshiftId" type="tns:metadataObjectId" minOccurs="0" form="qualified"/>
               <xs:element name="requestType" type="tns:requestType" minOccurs="0" form="qualified"/>
               <xs:element name="errorWarningMessage" type="xs:string" minOccurs="0" form="qualified"/>
               <xs:element name="errorWarningTime" type="xs:dateTime" minOccurs="0" form="qualified"/>
               <xs:element name="errorWarningDetail" type="xs:string" minOccurs="0" form="qualified"/>
               <xs:element name="ecid" type="xs:string" minOccurs="0" form="qualified"/>
               <xs:element name="processPhase" type="xs:string" minOccurs="0" form="qualified"/>
            </xs:sequence>
         </xs:complexType>
         <xs:simpleType name="metadataObjectType">
            <xs:restriction base="xs:string">
               <xs:enumeration value="JOB_TYPE"/>
               <xs:enumeration value="JOB_DEFINITION"/>
               <xs:enumeration value="JOB_SET"/>
               <xs:enumeration value="INCOMPATIBILITY"/>
               <xs:enumeration value="SCHEDULE_DEFINITION"/>
               <xs:enumeration value="EXCLUSION_DEFINITION"/>
               <xs:enumeration value="TRIGGER"/>
               <xs:enumeration value="WORKSHIFT"/>
               <xs:enumeration value="WORK_ASSIGNMENT"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType name="state">
            <xs:restriction base="xs:string">
               <xs:enumeration value="WAIT"/>
               <xs:enumeration value="READY"/>
               <xs:enumeration value="RUNNING"/>
               <xs:enumeration value="COMPLETED"/>
               <xs:enumeration value="BLOCKED"/>
               <xs:enumeration value="HOLD"/>
               <xs:enumeration value="CANCELLING"/>
               <xs:enumeration value="EXPIRED"/>
               <xs:enumeration value="CANCELLED"/>
               <xs:enumeration value="ERROR"/>
               <xs:enumeration value="WARNING"/>
               <xs:enumeration value="SUCCEEDED"/>
               <xs:enumeration value="PAUSED"/>
               <xs:enumeration value="PENDING_VALIDATION"/>
               <xs:enumeration value="VALIDATION_FAILED"/>
               <xs:enumeration value="SCHEDULE_ENDED"/>
               <xs:enumeration value="FINISHED"/>
               <xs:enumeration value="ERROR_AUTO_RETRY"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType name="errorType">
            <xs:restriction base="xs:string">
               <xs:enumeration value="UNDEFINED"/>
               <xs:enumeration value="SYSTEM"/>
               <xs:enumeration value="BUSINESS"/>
               <xs:enumeration value="TIMEOUT"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType name="dataType">
            <xs:restriction base="xs:string">
               <xs:enumeration value="STRING"/>
               <xs:enumeration value="INTEGER"/>
               <xs:enumeration value="LONG"/>
               <xs:enumeration value="BOOLEAN"/>
               <xs:enumeration value="DATETIME"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType name="requestType">
            <xs:restriction base="xs:string">
               <xs:enumeration value="SINGLETON"/>
               <xs:enumeration value="RECUR_PARENT"/>
               <xs:enumeration value="RECUR_CHILD"/>
               <xs:enumeration value="JOBSET_SINGLETON"/>
               <xs:enumeration value="JOBSET_STEP"/>
               <xs:enumeration value="JOBSET_RECUR_PARENT"/>
               <xs:enumeration value="JOBSET_RECUR_CHILD"/>
               <xs:enumeration value="SUB_REQUEST"/>
               <xs:enumeration value="UNVALIDATED_REQUEST"/>
               <xs:enumeration value="UNVALIDATED_SUB_REQUEST"/>
               <xs:enumeration value="TRIGGER_CHILD"/>
               <xs:enumeration value="JOBSET_TRIGGER_CHILD"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType name="asyncStatus">
            <xs:restriction base="xs:string">
               <xs:enumeration value="SUCCESS"/>
               <xs:enumeration value="PAUSE"/>
               <xs:enumeration value="CANCEL"/>
               <xs:enumeration value="WARNING"/>
               <xs:enumeration value="ERROR"/>
               <xs:enumeration value="UPDATE"/>
               <xs:enumeration value="BIZ_ERROR"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType name="processPhase">
            <xs:restriction base="xs:string">
               <xs:enumeration value="Undefined"/>
               <xs:enumeration value="Initial"/>
               <xs:enumeration value="JobSetInitial"/>
               <xs:enumeration value="PreProcessStart"/>
               <xs:enumeration value="PreProcessDelayed"/>
               <xs:enumeration value="PreProcessComplete"/>
               <xs:enumeration value="ExecuteInitiate"/>
               <xs:enumeration value="ExecuteInitiateComplete"/>
               <xs:enumeration value="ExecuteAsyncWait"/>
               <xs:enumeration value="ExecuteFinalize"/>
               <xs:enumeration value="ExecuteFinalizeAsync"/>
               <xs:enumeration value="ExecuteFinalizeComplete"/>
               <xs:enumeration value="ExecutePaused"/>
               <xs:enumeration value="PostProcessStart"/>
               <xs:enumeration value="PostProcessDelayed"/>
               <xs:enumeration value="PostProcessComplete"/>
               <xs:enumeration value="ProcessExecuteComplete"/>
               <xs:enumeration value="PostExecuteStart"/>
               <xs:enumeration value="PostExecuteWaitForSubreq"/>
               <xs:enumeration value="PostExecuteTerminalComplete"/>
               <xs:enumeration value="PostExecuteComplete"/>
               <xs:enumeration value="Complete"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:schema>
      <schema targetNamespace="http://xmlns.oracle.com/scheduler" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://xmlns.oracle.com/scheduler/types">
         <import namespace="http://xmlns.oracle.com/scheduler/types"/>
         <import namespace="http://www.w3.org/2005/08/addressing" schemaLocation="https://www.w3.org/2006/03/addressing/ws-addr.xsd"/>
         <xsd:complexType name="submitRequest">
            <xsd:sequence>
               <xsd:element name="description" type="xsd:string" form="qualified"/>
               <xsd:element name="jobDefinitionId" type="ns1:metadataObjectId" form="qualified"/>
               <xsd:element name="application" type="xsd:string" form="qualified"/>
               <xsd:element name="requestedStartTime" type="xsd:dateTime" form="qualified"/>
               <xsd:element name="requestParameters" type="ns1:requestParameters" form="qualified"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="submitRequest" type="tns:submitRequest"/>
         <xsd:complexType name="submitRequestResponse">
            <xsd:sequence>
               <xsd:element name="requestId" type="xsd:long"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="submitRequestResponse" type="tns:submitRequestResponse"/>
         <xsd:complexType name="submitRecurringRequest">
            <xsd:sequence>
               <xsd:element name="description" type="xsd:string" form="qualified"/>
               <xsd:element name="jobDefinitionId" type="ns1:metadataObjectId" form="qualified"/>
               <xsd:element name="scheduleId" type="ns1:metadataObjectId" form="qualified"/>
               <xsd:element name="triggerId" type="ns1:metadataObjectId" form="qualified"/>
               <xsd:element name="application" type="xsd:string" form="qualified"/>
               <xsd:element name="requestedStartTime" type="xsd:dateTime" form="qualified"/>
               <xsd:element name="requestedEndTime" type="xsd:dateTime" form="qualified"/>
               <xsd:element name="requestParameters" type="ns1:requestParameters" form="qualified"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="submitRecurringRequest" type="tns:submitRecurringRequest"/>
         <xsd:complexType name="submitRecurringRequestResponse">
            <xsd:sequence>
               <xsd:element name="requestId" type="xsd:long"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="submitRecurringRequestResponse" type="tns:submitRecurringRequestResponse"/>
         <xsd:complexType name="submitInstantRecurringRequest">
            <xsd:sequence>
               <xsd:element name="description" type="xsd:string" form="qualified"/>
               <xsd:element name="jobDefinitionId" type="ns1:metadataObjectId" form="qualified"/>
               <xsd:element name="iCalSchedule" type="xsd:string" form="qualified"/>
               <xsd:element name="application" type="xsd:string" form="qualified"/>
               <xsd:element name="requestedStartTime" type="xsd:dateTime" form="qualified"/>
               <xsd:element name="requestedEndTime" type="xsd:dateTime" form="qualified"/>
               <xsd:element name="requestParameters" type="ns1:requestParameters" form="qualified"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="submitInstantRecurringRequest" type="tns:submitInstantRecurringRequest"/>
         <xsd:complexType name="submitInstantRecurringRequestResponse">
            <xsd:sequence>
               <xsd:element name="requestId" type="xsd:long"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="submitInstantRecurringRequestResponse" type="tns:submitInstantRecurringRequestResponse"/>
         <xsd:complexType name="getCompletionStatus">
            <xsd:sequence>
               <xsd:element name="requestId" type="xsd:long" form="qualified"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="getCompletionStatus" type="tns:getCompletionStatus"/>
         <xsd:complexType name="onJobCompletion">
            <xsd:sequence>
               <xsd:element name="requestId" type="xsd:long"/>
               <xsd:element name="state" type="ns1:state" minOccurs="0"/>
               <xsd:element name="resultMessage" type="xsd:string"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="onJobCompletion" type="tns:onJobCompletion"/>
         <xsd:complexType name="getRequestState">
            <xsd:sequence>
               <xsd:element name="requestId" type="xsd:long" form="qualified"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="getRequestState" type="tns:getRequestState"/>
         <xsd:complexType name="getRequestStateResponse">
            <xsd:sequence>
               <xsd:element name="state" type="ns1:state"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="getRequestStateResponse" type="tns:getRequestStateResponse"/>
         <xsd:complexType name="checkInCancelling">
            <xsd:sequence>
               <xsd:element name="requestExecutionContext" type="xsd:string" form="qualified"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="checkInCancelling" type="tns:checkInCancelling"/>
         <xsd:complexType name="checkInCancellingResponse">
            <xsd:sequence>
               <xsd:element name="isCancelling" type="xsd:boolean"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="checkInCancellingResponse" type="tns:checkInCancellingResponse"/>
         <xsd:complexType name="getRequestDetail">
            <xsd:sequence>
               <xsd:element name="requestId" form="qualified" type="xsd:long"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="getRequestDetail" type="tns:getRequestDetail"/>
         <xsd:complexType name="getRequestDetailResponse">
            <xsd:sequence>
               <xsd:element name="requestDetail" type="ns1:requestDetail"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="getRequestDetailResponse" type="tns:getRequestDetailResponse"/>
         <xsd:complexType name="getRequestExecutionContext">
            <xsd:sequence>
               <xsd:element name="requestExecutionContext" type="xsd:string" form="qualified"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="getRequestExecutionContext" type="tns:getRequestExecutionContext"/>
         <xsd:complexType name="getRequestExecutionContextResponse">
            <xsd:sequence>
               <xsd:element name="requestExecutionContext" type="ns1:requestExecutionContext"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="getRequestExecutionContextResponse" type="tns:getRequestExecutionContextResponse"/>
         <xsd:complexType name="holdRequest">
            <xsd:sequence>
               <xsd:element name="requestId" form="qualified" type="xsd:long"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="holdRequest" type="tns:holdRequest"/>
         <xsd:complexType name="holdRequestResponse">
            <xsd:sequence/>
         </xsd:complexType>
         <xsd:element name="holdRequestResponse" type="tns:holdRequestResponse"/>
         <xsd:complexType name="releaseRequest">
            <xsd:sequence>
               <xsd:element name="requestId" form="qualified" type="xsd:long"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="releaseRequest" type="tns:releaseRequest"/>
         <xsd:complexType name="releaseRequestResponse">
            <xsd:sequence/>
         </xsd:complexType>
         <xsd:element name="releaseRequestResponse" type="tns:releaseRequestResponse"/>
         <xsd:complexType name="setAsyncRequestStatus">
            <xsd:sequence>
               <xsd:element name="requestExecutionContext" type="xsd:string" form="qualified"/>
               <xsd:element name="status" form="qualified" type="ns1:asyncStatus"/>
               <xsd:element name="statusMessage" type="xsd:string" minOccurs="0" maxOccurs="1" form="qualified"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="setAsyncRequestStatus" type="tns:setAsyncRequestStatus"/>
         <xsd:complexType name="setAsyncRequestStatusResponse">
            <xsd:sequence/>
         </xsd:complexType>
         <xsd:element name="setAsyncRequestStatusResponse" type="tns:setAsyncRequestStatusResponse"/>
         <xsd:complexType name="cancelRequest">
            <xsd:sequence>
               <xsd:element name="requestId" type="xsd:long" form="qualified"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="cancelRequest" type="tns:cancelRequest"/>
         <xsd:complexType name="cancelRequestResponse">
            <xsd:sequence/>
         </xsd:complexType>
         <xsd:element name="cancelRequestResponse" type="tns:cancelRequestResponse"/>
         <xsd:complexType name="deleteRequest">
            <xsd:sequence>
               <xsd:element name="requestId" form="qualified" type="xsd:long"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="deleteRequest" type="tns:deleteRequest"/>
         <xsd:complexType name="deleteRequestResponse">
            <xsd:sequence/>
         </xsd:complexType>
         <xsd:element name="deleteRequestResponse" type="tns:deleteRequestResponse"/>
         <xsd:complexType name="purgeRequest">
            <xsd:sequence>
               <xsd:element name="requestId" form="qualified" type="xsd:long"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="purgeRequest" type="tns:purgeRequest"/>
         <xsd:complexType name="purgeRequestResponse">
            <xsd:sequence/>
         </xsd:complexType>
         <xsd:element name="purgeRequestResponse" type="tns:purgeRequestResponse"/>
         <xsd:complexType name="setSubmitArgs">
            <xsd:sequence>
               <xsd:element name="requestParameters" type="ns1:requestParameters" form="qualified"/>
               <xsd:element name="arguments" minOccurs="0" maxOccurs="100" type="xsd:string" form="qualified"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="setSubmitArgs" type="tns:setSubmitArgs"/>
         <xsd:complexType name="setSubmitArgsResponse">
            <xsd:sequence>
               <xsd:element name="requestParametersReturn" type="ns1:requestParameters"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="setSubmitArgsResponse" type="tns:setSubmitArgsResponse"/>
         <xsd:complexType name="setStepsArgs">
            <xsd:sequence>
               <xsd:element name="requestParameters" type="ns1:requestParameters" form="qualified"/>
               <xsd:element name="stepArgsList" minOccurs="0" maxOccurs="100" form="qualified" type="ns1:stepArgs"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="setStepsArgs" type="tns:setStepsArgs"/>
         <xsd:complexType name="setStepsArgsResponse">
            <xsd:sequence>
               <xsd:element name="requestParametersReturn" type="ns1:requestParameters"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="setStepsArgsResponse" type="tns:setStepsArgsResponse"/>
         <xsd:complexType name="addPPActions">
            <xsd:sequence>
               <xsd:element name="requestParameters" type="ns1:requestParameters" form="qualified"/>
               <xsd:element name="postProcessActions" minOccurs="0" maxOccurs="100" type="ns1:postProcessAction" form="qualified"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="addPPActions" type="tns:addPPActions"/>
         <xsd:complexType name="addPPActionsResponse">
            <xsd:sequence>
               <xsd:element name="requestParametersReturn" type="ns1:requestParameters"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="addPPActionsResponse" type="tns:addPPActionsResponse"/>
         <xsd:complexType name="setNLSOptions">
            <xsd:sequence>
               <xsd:element name="requestParameters" type="ns1:requestParameters" form="qualified"/>
               <xsd:element name="nlsOptions" type="ns1:nlsOptions" form="qualified"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="setNLSOptions" type="tns:setNLSOptions"/>
         <xsd:complexType name="setNLSOptionsResponse">
            <xsd:sequence>
               <xsd:element name="requestParametersReturn" type="ns1:requestParameters"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="setNLSOptionsResponse" type="tns:setNLSOptionsResponse"/>
         <xsd:complexType name="IllegalStateException">
            <xsd:sequence>
               <xsd:element name="Message" type="xsd:string"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="IllegalStateException" type="tns:IllegalStateException"/>
         <xsd:complexType name="RuntimeServiceException">
            <xsd:sequence>
               <xsd:element name="Message" type="xsd:string"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="RuntimeServiceException" type="tns:RuntimeServiceException"/>
         <xsd:complexType name="IllegalArgumentException">
            <xsd:sequence>
               <xsd:element name="Message" type="xsd:string"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="IllegalArgumentException" type="tns:IllegalArgumentException"/>
         <xsd:complexType name="ValidationException">
            <xsd:sequence>
               <xsd:element name="Message" type="xsd:string"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="ValidationException" type="tns:ValidationException"/>
         <xsd:complexType name="NotAllowedException">
            <xsd:sequence>
               <xsd:element name="Message" type="xsd:string"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="NotAllowedException" type="tns:NotAllowedException"/>
         <xsd:complexType name="NotFoundException">
            <xsd:sequence>
               <xsd:element name="Message" type="xsd:string"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="NotFoundException" type="tns:NotFoundException"/>
         <xsd:complexType name="RequestNotFoundException">
            <xsd:sequence>
               <xsd:element name="Message" type="xsd:string"/>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="RequestNotFoundException" type="tns:RequestNotFoundException"/>
      </schema>
   </types>
   <message name="wsaHeader">
      <part name="MessageID" element="wsa:MessageID"/>
      <part name="Action" element="wsa:Action"/>
   </message>
   <message name="submitRequestInput">
      <part name="parameters" element="tns:submitRequest"/>
   </message>
   <message name="submitRequestOutput">
      <part name="parameters" element="tns:submitRequestResponse"/>
   </message>
   <message name="RuntimeServiceException">
      <part name="RuntimeServiceException" element="tns:RuntimeServiceException"/>
   </message>
   <message name="ValidationException">
      <part name="ValidationException" element="tns:ValidationException"/>
   </message>
   <message name="NotFoundException">
      <part name="NotFoundException" element="tns:NotFoundException"/>
   </message>
   <message name="submitRecurringRequestInput">
      <part name="parameters" element="tns:submitRecurringRequest"/>
   </message>
   <message name="submitRecurringRequestOutput">
      <part name="parameters" element="tns:submitRecurringRequestResponse"/>
   </message>
   <message name="submitInstantRecurringRequestInput">
      <part name="parameters" element="tns:submitInstantRecurringRequest"/>
   </message>
   <message name="submitInstantRecurringRequestOutput">
      <part name="parameters" element="tns:submitInstantRecurringRequestResponse"/>
   </message>
   <message name="NotAllowedException">
      <part name="NotAllowedException" element="tns:NotAllowedException"/>
   </message>
   <message name="getCompletionStatusInput">
      <part name="parameters" element="tns:getCompletionStatus"/>
   </message>
   <message name="checkInCancellingInput">
      <part name="parameters" element="tns:checkInCancelling"/>
   </message>
   <message name="checkInCancellingOutput">
      <part name="parameters" element="tns:checkInCancellingResponse"/>
   </message>
   <message name="getRequestStateInput">
      <part name="parameters" element="tns:getRequestState"/>
   </message>
   <message name="getRequestStateOutput">
      <part name="parameters" element="tns:getRequestStateResponse"/>
   </message>
   <message name="getRequestDetailInput">
      <part name="parameters" element="tns:getRequestDetail"/>
   </message>
   <message name="getRequestDetailOutput">
      <part name="parameters" element="tns:getRequestDetailResponse"/>
   </message>
   <message name="getRequestExecutionContextInput">
      <part name="parameters" element="tns:getRequestExecutionContext"/>
   </message>
   <message name="getRequestExecutionContextOutput">
      <part name="parameters" element="tns:getRequestExecutionContextResponse"/>
   </message>
   <message name="holdRequestInput">
      <part name="parameters" element="tns:holdRequest"/>
   </message>
   <message name="holdRequestOutput">
      <part name="parameters" element="tns:holdRequestResponse"/>
   </message>
   <message name="IllegalStateException">
      <part name="IllegalStateException" element="tns:IllegalStateException"/>
   </message>
   <message name="releaseRequestInput">
      <part name="parameters" element="tns:releaseRequest"/>
   </message>
   <message name="releaseRequestOutput">
      <part name="parameters" element="tns:releaseRequestResponse"/>
   </message>
   <message name="setAsyncRequestStatusInput">
      <part name="parameters" element="tns:setAsyncRequestStatus"/>
   </message>
   <message name="setAsyncRequestStatusOutput">
      <part name="parameters" element="tns:setAsyncRequestStatusResponse"/>
   </message>
   <message name="RequestNotFoundException">
      <part name="RequestNotFoundException" element="tns:RequestNotFoundException"/>
   </message>
   <message name="cancelRequestInput">
      <part name="parameters" element="tns:cancelRequest"/>
   </message>
   <message name="cancelRequestOutput">
      <part name="parameters" element="tns:cancelRequestResponse"/>
   </message>
   <message name="deleteRequestInput">
      <part name="parameters" element="tns:deleteRequest"/>
   </message>
   <message name="deleteRequestOutput">
      <part name="parameters" element="tns:deleteRequestResponse"/>
   </message>
   <message name="purgeRequestInput">
      <part name="parameters" element="tns:purgeRequest"/>
   </message>
   <message name="purgeRequestOutput">
      <part name="parameters" element="tns:purgeRequestResponse"/>
   </message>
   <message name="setSubmitArgsInput">
      <part name="parameters" element="tns:setSubmitArgs"/>
   </message>
   <message name="setSubmitArgsOutput">
      <part name="parameters" element="tns:setSubmitArgsResponse"/>
   </message>
   <message name="IllegalArgumentException">
      <part name="IllegalArgumentException" element="tns:IllegalArgumentException"/>
   </message>
   <message name="setStepsArgsInput">
      <part name="parameters" element="tns:setStepsArgs"/>
   </message>
   <message name="setStepsArgsOutput">
      <part name="parameters" element="tns:setStepsArgsResponse"/>
   </message>
   <message name="addPPActionsInput">
      <part name="parameters" element="tns:addPPActions"/>
   </message>
   <message name="addPPActionsOutput">
      <part name="parameters" element="tns:addPPActionsResponse"/>
   </message>
   <message name="setNLSOptionsInput">
      <part name="parameters" element="tns:setNLSOptions"/>
   </message>
   <message name="setNLSOptionsOutput">
      <part name="parameters" element="tns:setNLSOptionsResponse"/>
   </message>
   <message name="onJobCompletionInput">
      <part name="parameters" element="tns:onJobCompletion"/>
   </message>
   <portType name="ESSWebService">
      <operation name="submitRequest">
         <input message="tns:submitRequestInput" ns1:Action="submitRequest" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <output message="tns:submitRequestOutput" ns1:Action="submitRequest" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <fault name="RuntimeServiceException" message="tns:RuntimeServiceException"/>
         <fault name="ValidationException" message="tns:ValidationException"/>
         <fault name="NotFoundException" message="tns:NotFoundException"/>
      </operation>
      <operation name="submitRecurringRequest">
         <input message="tns:submitRecurringRequestInput" ns1:Action="submitRecurringRequest" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <output message="tns:submitRecurringRequestOutput" ns1:Action="submitRecurringRequest" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <fault name="RuntimeServiceException" message="tns:RuntimeServiceException"/>
         <fault name="ValidationException" message="tns:ValidationException"/>
         <fault name="NotFoundException" message="tns:NotFoundException"/>
      </operation>
      <operation name="submitInstantRecurringRequest">
         <input message="tns:submitInstantRecurringRequestInput" ns1:Action="submitInstantRecurringRequest" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <output message="tns:submitInstantRecurringRequestOutput" ns1:Action="submitInstantRecurringRequest" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <fault name="RuntimeServiceException" message="tns:RuntimeServiceException"/>
         <fault name="ValidationException" message="tns:ValidationException"/>
         <fault name="NotAllowedException" message="tns:NotAllowedException"/>
         <fault name="NotFoundException" message="tns:NotFoundException"/>
      </operation>
      <operation name="getCompletionStatus">
         <input message="tns:getCompletionStatusInput" ns1:Action="getCompletionStatus" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
      </operation>
      <operation name="checkInCancelling">
         <input message="tns:checkInCancellingInput" ns1:Action="checkInCancelling" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <output message="tns:checkInCancellingOutput" ns1:Action="checkInCancelling" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <fault name="RuntimeServiceException" message="tns:RuntimeServiceException"/>
         <fault name="NotFoundException" message="tns:NotFoundException"/>
      </operation>
      <operation name="getRequestState">
         <input message="tns:getRequestStateInput" ns1:Action="getRequestState" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <output message="tns:getRequestStateOutput" ns1:Action="getRequestState" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <fault name="RuntimeServiceException" message="tns:RuntimeServiceException"/>
         <fault name="NotFoundException" message="tns:NotFoundException"/>
      </operation>
      <operation name="getRequestDetail">
         <input message="tns:getRequestDetailInput" ns1:Action="getRequestDetail" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <output message="tns:getRequestDetailOutput" ns1:Action="getRequestDetail" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <fault name="RuntimeServiceException" message="tns:RuntimeServiceException"/>
         <fault name="NotFoundException" message="tns:NotFoundException"/>
      </operation>
      <operation name="getRequestExecutionContext">
         <input message="tns:getRequestExecutionContextInput" ns1:Action="getRequestExecutionContext" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <output message="tns:getRequestExecutionContextOutput" ns1:Action="getRequestExecutionContext" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <fault name="RuntimeServiceException" message="tns:RuntimeServiceException"/>
         <fault name="NotFoundException" message="tns:NotFoundException"/>
      </operation>
      <operation name="holdRequest">
         <input message="tns:holdRequestInput" ns1:Action="holdRequest" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <output message="tns:holdRequestOutput" ns1:Action="holdRequest" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <fault name="RuntimeServiceException" message="tns:RuntimeServiceException"/>
         <fault name="IllegalStateException" message="tns:IllegalStateException"/>
         <fault name="NotAllowedException" message="tns:NotAllowedException"/>
         <fault name="NotFoundException" message="tns:NotFoundException"/>
      </operation>
      <operation name="releaseRequest">
         <input message="tns:releaseRequestInput" ns1:Action="releaseRequest" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <output message="tns:releaseRequestOutput" ns1:Action="releaseRequest" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <fault name="RuntimeServiceException" message="tns:RuntimeServiceException"/>
         <fault name="IllegalStateException" message="tns:IllegalStateException"/>
         <fault name="NotFoundException" message="tns:NotFoundException"/>
      </operation>
      <operation name="setAsyncRequestStatus">
         <input message="tns:setAsyncRequestStatusInput" ns1:Action="setAsyncRequestStatus" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <output message="tns:setAsyncRequestStatusOutput" ns1:Action="setAsyncRequestStatus" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <fault name="RuntimeServiceException" message="tns:RuntimeServiceException"/>
         <fault name="RequestNotFoundException" message="tns:RequestNotFoundException"/>
      </operation>
      <operation name="cancelRequest">
         <input message="tns:cancelRequestInput" ns1:Action="cancelRequest" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <output message="tns:cancelRequestOutput" ns1:Action="cancelRequest" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <fault name="RuntimeServiceException" message="tns:RuntimeServiceException"/>
         <fault name="IllegalStateException" message="tns:IllegalStateException"/>
         <fault name="NotFoundException" message="tns:NotFoundException"/>
      </operation>
      <operation name="deleteRequest">
         <input message="tns:deleteRequestInput" ns1:Action="deleteRequest" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <output message="tns:deleteRequestOutput" ns1:Action="deleteRequest" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <fault name="RuntimeServiceException" message="tns:RuntimeServiceException"/>
         <fault name="IllegalStateException" message="tns:IllegalStateException"/>
         <fault name="NotAllowedException" message="tns:NotAllowedException"/>
         <fault name="NotFoundException" message="tns:NotFoundException"/>
      </operation>
      <operation name="purgeRequest">
         <input message="tns:purgeRequestInput" ns1:Action="purgeRequest" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <output message="tns:purgeRequestOutput" ns1:Action="purgeRequest" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <fault name="RuntimeServiceException" message="tns:RuntimeServiceException"/>
         <fault name="IllegalStateException" message="tns:IllegalStateException"/>
         <fault name="NotAllowedException" message="tns:NotAllowedException"/>
         <fault name="NotFoundException" message="tns:NotFoundException"/>
      </operation>
      <operation name="setSubmitArgs">
         <input message="tns:setSubmitArgsInput" ns1:Action="setSubmitArgs" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <output message="tns:setSubmitArgsOutput" ns1:Action="setSubmitArgs" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <fault name="IllegalArgumentException" message="tns:IllegalArgumentException"/>
      </operation>
      <operation name="setStepsArgs">
         <input message="tns:setStepsArgsInput" ns1:Action="setStepsArgs" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <output message="tns:setStepsArgsOutput" ns1:Action="setStepsArgs" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <fault name="IllegalArgumentException" message="tns:IllegalArgumentException"/>
      </operation>
      <operation name="addPPActions">
         <input message="tns:addPPActionsInput" ns1:Action="addPPActions" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <output message="tns:addPPActionsOutput" ns1:Action="addPPActions" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <fault name="IllegalArgumentException" message="tns:IllegalArgumentException"/>
      </operation>
      <operation name="setNLSOptions">
         <input message="tns:setNLSOptionsInput" ns1:Action="setNLSOptions" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <output message="tns:setNLSOptionsOutput" ns1:Action="setNLSOptions" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
         <fault name="IllegalArgumentException" message="tns:IllegalArgumentException"/>
      </operation>
   </portType>
   <portType name="ESSWebServiceCallback">
      <operation name="onJobCompletion">
         <input message="tns:onJobCompletionInput" ns1:Action="http://xmlns.oracle.com/scheduler/ESSWebService/getCompletionStatus/Response" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"/>
      </operation>
   </portType>
   <binding name="ESSWebServiceCallbackSoapHttp" type="tns:ESSWebServiceCallback" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl">
      <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
      <wsaw:UsingAddressing wsdl:required="true"/>
      <operation name="onJobCompletion">
         <soap:operation soapAction="onJobCompletion"/>
         <input>
            <soap:body use="literal"/>
         </input>
      </operation>
   </binding>
   <binding name="ESSWebServiceSoapHttp" type="tns:ESSWebService" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl">
      <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
      <wsaw:UsingAddressing wsdl:required="true"/>
      <operation name="submitRequest">
         <soap:operation soapAction="submitRequest"/>
         <input>
            <soap:body use="literal"/>
            <soap:header message="tns:wsaHeader" part="MessageID" use="literal"/>
            <soap:header message="tns:wsaHeader" part="Action" use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output>
         <fault name="RuntimeServiceException">
            <soap:fault name="RuntimeServiceException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="ValidationException">
            <soap:fault name="ValidationException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="NotFoundException">
            <soap:fault name="NotFoundException" use="literal" encodingStyle=""/>
         </fault>
      </operation>
      <operation name="submitRecurringRequest">
         <soap:operation soapAction="submitRecurringRequest"/>
         <input>
            <soap:body use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output>
         <fault name="RuntimeServiceException">
            <soap:fault name="RuntimeServiceException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="ValidationException">
            <soap:fault name="ValidationException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="NotFoundException">
            <soap:fault name="NotFoundException" use="literal" encodingStyle=""/>
         </fault>
      </operation>
      <operation name="submitInstantRecurringRequest">
         <soap:operation soapAction="submitInstantRecurringRequest"/>
         <input>
            <soap:body use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output>
         <fault name="RuntimeServiceException">
            <soap:fault name="RuntimeServiceException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="ValidationException">
            <soap:fault name="ValidationException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="NotAllowedException">
            <soap:fault name="NotAllowedException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="NotFoundException">
            <soap:fault name="NotFoundException" use="literal" encodingStyle=""/>
         </fault>
      </operation>
      <operation name="getCompletionStatus">
         <soap:operation soapAction="getCompletionStatus"/>
         <input>
            <soap:body use="literal"/>
         </input>
      </operation>
      <operation name="getRequestState">
         <soap:operation soapAction="getRequestState"/>
         <input>
            <soap:body use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output>
         <fault name="RuntimeServiceException">
            <soap:fault name="RuntimeServiceException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="NotFoundException">
            <soap:fault name="NotFoundException" use="literal" encodingStyle=""/>
         </fault>
      </operation>
      <operation name="checkInCancelling">
         <soap:operation soapAction="checkInCancelling"/>
         <input>
            <soap:body use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output>
         <fault name="RuntimeServiceException">
            <soap:fault name="RuntimeServiceException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="NotFoundException">
            <soap:fault name="NotFoundException" use="literal" encodingStyle=""/>
         </fault>
      </operation>
      <operation name="getRequestDetail">
         <soap:operation soapAction="getRequestDetail"/>
         <input>
            <soap:body use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output>
         <fault name="RuntimeServiceException">
            <soap:fault name="RuntimeServiceException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="NotFoundException">
            <soap:fault name="NotFoundException" use="literal" encodingStyle=""/>
         </fault>
      </operation>
      <operation name="getRequestExecutionContext">
         <soap:operation soapAction="getRequestExecutionContext"/>
         <input>
            <soap:body use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output>
         <fault name="RuntimeServiceException">
            <soap:fault name="RuntimeServiceException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="NotFoundException">
            <soap:fault name="NotFoundException" use="literal" encodingStyle=""/>
         </fault>
      </operation>
      <operation name="holdRequest">
         <soap:operation soapAction="holdRequest"/>
         <input>
            <soap:body use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output>
         <fault name="RuntimeServiceException">
            <soap:fault name="RuntimeServiceException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="IllegalStateException">
            <soap:fault name="IllegalStateException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="NotAllowedException">
            <soap:fault name="NotAllowedException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="NotFoundException">
            <soap:fault name="NotFoundException" use="literal" encodingStyle=""/>
         </fault>
      </operation>
      <operation name="releaseRequest">
         <soap:operation soapAction="releaseRequest"/>
         <input>
            <soap:body use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output>
         <fault name="RuntimeServiceException">
            <soap:fault name="RuntimeServiceException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="IllegalStateException">
            <soap:fault name="IllegalStateException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="NotFoundException">
            <soap:fault name="NotFoundException" use="literal" encodingStyle=""/>
         </fault>
      </operation>
      <operation name="setAsyncRequestStatus">
         <soap:operation soapAction="setAsyncRequestStatus"/>
         <input>
            <soap:body use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output>
         <fault name="RuntimeServiceException">
            <soap:fault name="RuntimeServiceException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="RequestNotFoundException">
            <soap:fault name="RequestNotFoundException" use="literal" encodingStyle=""/>
         </fault>
      </operation>
      <operation name="cancelRequest">
         <soap:operation soapAction="cancelRequest"/>
         <input>
            <soap:body use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output>
         <fault name="RuntimeServiceException">
            <soap:fault name="RuntimeServiceException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="IllegalStateException">
            <soap:fault name="IllegalStateException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="NotFoundException">
            <soap:fault name="NotFoundException" use="literal" encodingStyle=""/>
         </fault>
      </operation>
      <operation name="deleteRequest">
         <soap:operation soapAction="deleteRequest"/>
         <input>
            <soap:body use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output>
         <fault name="RuntimeServiceException">
            <soap:fault name="RuntimeServiceException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="IllegalStateException">
            <soap:fault name="IllegalStateException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="NotAllowedException">
            <soap:fault name="NotAllowedException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="NotFoundException">
            <soap:fault name="NotFoundException" use="literal" encodingStyle=""/>
         </fault>
      </operation>
      <operation name="purgeRequest">
         <soap:operation soapAction="purgeRequest"/>
         <input>
            <soap:body use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output>
         <fault name="RuntimeServiceException">
            <soap:fault name="RuntimeServiceException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="IllegalStateException">
            <soap:fault name="IllegalStateException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="NotAllowedException">
            <soap:fault name="NotAllowedException" use="literal" encodingStyle=""/>
         </fault>
         <fault name="NotFoundException">
            <soap:fault name="NotFoundException" use="literal" encodingStyle=""/>
         </fault>
      </operation>
      <operation name="setSubmitArgs">
         <soap:operation soapAction="setSubmitArgs"/>
         <input>
            <soap:body use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output>
         <fault name="IllegalArgumentException">
            <soap:fault name="IllegalArgumentException" use="literal" encodingStyle=""/>
         </fault>
      </operation>
      <operation name="setStepsArgs">
         <soap:operation soapAction="setStepsArgs"/>
         <input>
            <soap:body use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output>
         <fault name="IllegalArgumentException">
            <soap:fault name="IllegalArgumentException" use="literal" encodingStyle=""/>
         </fault>
      </operation>
      <operation name="addPPActions">
         <soap:operation soapAction="addPPActions"/>
         <input>
            <soap:body use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output>
         <fault name="IllegalArgumentException">
            <soap:fault name="IllegalArgumentException" use="literal" encodingStyle=""/>
         </fault>
      </operation>
      <operation name="setNLSOptions">
         <soap:operation soapAction="setNLSOptions"/>
         <input>
            <soap:body use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output>
         <fault name="IllegalArgumentException">
            <soap:fault name="IllegalArgumentException" use="literal" encodingStyle=""/>
         </fault>
      </operation>
   </binding>
   <service name="ESSWebService">
      <port name="SchedulerServiceImplPort" binding="tns:ESSWebServiceSoapHttp">
         <soap:address location="https://hostname:443/ess/esswebservice"/>
      </port>
   </service>
   <service name="ESSWebServiceCallback">
      <port name="callbackPort" binding="tns:ESSWebServiceCallbackSoapHttp">
         <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
      </port>
   </service>
</definitions>