Sunday, October 31, 2021

How to use Oracle Fuison ESSWebservice in OIC

There will be cases where we need to use Oracle Fusion EssWebService to submit a job set or to submit a BICC job etc through OIC.

If we do this from SOAP UI or any other web service testing tool then it will work as expected.

      https://<host name>:<port>/ess/esswebservice?wsdl

or  https://<host name>:<port>/ess/bi/esswebservice?wsdl in our example for bicc job

But if we try to use this wsdl URL similar to what we do for SOAP connections in OIC, then it will give error if we click on validate and test while creating the soap connection.


 

 


 

The Issue is with the WSDL file which doesn't have all definitions.

If we  open the above wsdl url in the browser we can see the below import for abstract wsdl:

<import namespace="http://xmlns.oracle.com/scheduler" location="https://<host>:443/ess/esswebservice?WSDL=ESSWebServiceAbstract.wsdl"/>

or below in our example case

<import namespace="http://xmlns.oracle.com/scheduler" location="https://<host>:443/bi/ess/esswebservice?WSDL=ESSWebServiceAbstract.wsdl"/>

 

 

Now to use th ESSWebservice in OIC connection we need to merge the abstract wsdl with the main one to have all the definitions.

Below steps need be performed to achieve the same:

  • Open the above imported WSDL in a browser and save (https://<host>:443/ess/esswebservice?WSDL=ESSWebServiceAbstract.wsdl
    )  or https://<host>:443/bi/ess/esswebservice?WSDL=ESSWebServiceAbstract.wsdl in our example case
  • Take all definitions from the above AbstractWsdl
  • Merge into esswebserivce wsdl
  • In SOAP Connection upload the merged WSDL

 here is the Oracle support reference for the issue:

While Performing Validate And Test Connection For Fusion ESSWebService It Fails With Error “Error Code: SOAPADAPTR-20027” (Doc ID 2730653.1) 

We get a sample merged wsdl from this. 

We need to update the URLs and certificate section.

The above sample merged wsdl provided in Oracle support will avoid confusion and we simply need to update the URLs abd certificate for our need.

save the file with desired name and extension as ".wsdl"

We will take example of submitting a BICC job. so we will be using url as

https://<host name>:<port>/ess/bi/esswebservice?wsdl

for general esswebservice we can use 

https://<host name>:<port>/ess/esswebservice?wsdl

Below are the screenshots where we need to make the changes in merged WSDL:

 

 



We get the X509 certificate if we open esswebservice wsdl url in browser.

After we are done with merging  of wsdl and updating it with url and certificate section, we will create connection in OIC.

Use Soap adapter to create connection:


Upload the customized wsdl using upload button icon

 

Provide the user credentials. Refer the below screenshot:

 


 

Now click on Test->Validate and Test

 

 


Now it should give success message as below:

 


 

Now we will see how we will use this connection  to submit an ESS job( We will take example of a BICC job submission)

Drag this soap connection in the integration flow:

 


 

 

Now in the Headers configuration , we need to check Custom SOAP Headers 

 

 

Now in the next step we need to upload a sample ".xsd " file for WS_Addressing. This we do in SOAP UI by going to WS Addressing tab. But here in OIC we need to provide the xml schema.

This will have two elements "MessageID" and "Action'

The sample Schema which we upload will look like below:

 

<?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>


 

The summary of our SOAP adapter configuration will look like below:


 

 

Now let's see  how the mapper for this would look like:

We assign hard coded literal value to the "MessageID" as  444444 and "Action" as submitRequest in custom SOAP headers as shown in the below screenshot.



Now let us see how the request and response messages look like for this when we run the integration.

For this, activate the integration with payload enabled. Run the integration  and see the activity stream.

From the activity stream we can see the below request and response payload for ESSWebservice ess job submit operation

 

 

The request message will look like below, The custom request header  is highlighted in red in the below screenshot.

 

 

The response Message will look like below, it will contain the request id of the job we submitted:


 

 

 

 

 

No comments:

Post a Comment