Hello Everyone,
I am currently working on a project which requires us to set the SOAP action dynamically:
I did follow the guidelines mentioned in the following links
Dynamic Configuration of Some Communication Channel Parameters using Message Mapping
The process which we are using is as follows
We are creating the following UDF and mapping the root nodes in message mapping using it
DynamicConfigurationKey keyURL = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/SOAP","THeaderSOAPACTION");
// access dynamic configuration
DynamicConfiguration conf = (DynamicConfiguration) container
.getTransformationParameters()
.get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
conf.put(keyURL,"RetrieveList");
return "";
In the Receiver Comm Channel we are setting the use adapter specific identifiers option and the use variable binding option. We are leaving the SOAP Action field blank.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!-- Inbound Message
-->
<faultcode>SOAP:Server</faultcode>
<faultstring>String index out of range: 0</faultstring>
<faultactor>Server</faultactor>
</SOAP:Fault>
Now we tested the scenario using TCP Mon and we identified that for the value of SOAP Action we are getting the following results
SOAPAction:
SOAPAction: actual value
It means that 2 SOAP Action are generated one being the empty SOAP Action from Receiver Comm Channel and the other being the one generated using UDF.
Can anyone please update us on if our steps are proper or is there a way to supress the SOAP Action which we left empty in the receiver comm channel.
Your help is truly appreciated.
Thanks.
Kiran