So I am briefing you my scenario.
After reading below all this do tell me ...Guru's is it achievable or not??
My Scenario is from Third-Party to to web service of SAP Success factor API ( Synchronous ).
WSDL URL : https://salesdemo4.successfactors.com/sfapi/v1/soap?wsdl
Now Let me brief you about Success factor API .
First Process is to get Authentication from SAP Success factor.
Authentication is established through the Login Operation of SF API.
A successful login will return a session ID as an HTTP Cookie.
Then this cookie must be passed back to all subsequent HTTP Requests that invoke SF API operations in order to authenticate.
So when later we call Query and QueryMore Operation it requires this Session ID to come in HTTP header with each call .
1. Request Message => Login Operation => Response Message ( Session ID).
2. Set this Session ID in Parameter Cookie for Next API Call.
3. | Cookie | JSESSIONID = xxxx.xxxx.xxxx.xxxxxx.xxxx |
4. Now Send actual Data Request Message => Query operation => Response Message Data ( Limited to 800 record at a time, so there is a one more operation to fetch rest/left record.)
5. Request Message => QueryMore Opeartion = > Response Message Data ( balance record , again limited to 800 , so for left out record we need to call this QueryMore Operation in Loop until record finishes i.e hasMore=false).
And remember with Step 4 and Step 5 Cookie/Session ID needs to be set in HTTP Header along with SOAP Call.
So to Achive this scenario , I am Planning to build interface like this
Source Message Type (Request Data for Query Operation ) –> Message Mapping [ UDF1 –> UDF2 ] + Java mapping –> Target Data Type ( Response after combining all the xml into one received from Query and Query More Operations.)
Message Mapping would be one to one Mapping . whatever query request will come from Source I will pass as it is to target( Java Mapping) Only thing is two UDF's will be called in between Message Mapping.
UDF 1 : is to get SESSIONID using JAVA Look Up . Lookup receiver channel would be simple SOAP HTTP Receiver Adapter-1 .
UDF2 : now it is to set this SESSIONID in Cookie Parameter of HTTP url. And will be later used in Module of SOAP HTTP ( AXIS ) Receiver Adapter-2
Java Mapping : is to fetch data from query and Query More Operation Using SOAP Lookup In Java Mapping and Channel would be SOAP HTTP Axis Adapter where session id was already set using Modules.
Message Mapping + Java Mapping under one Operation Mapping.