cancel
Showing results for 
Search instead for 
Did you mean: 

SOAP to SOAP and IDoc scenario

Former Member
0 Kudos

I have developed a synchronous interface - SOAP to SOAP , I am enhancing it to send resp to ECC also.

Can I achieve it through Request Response Bean , responseonewayBean modules . If so where I have to maintain the modules and the sequence.

Any suggestions...

Accepted Solutions (0)

Answers (6)

Answers (6)

weberpat
Contributor

Hi Vijay,

Did I understand correctly that you would like to send the response of your SOAP request to an additional system (ECC) in the form of an IDoc? If so, I think the following thread will help you:

https://archive.sap.com/discussions/thread/3887013

Regards,
Patrick

Former Member
0 Kudos

Hi Evgeniy,

Cannt we use the UDF in response mapping.Its not modifying any data in target system.Just getting response and passing to SOAP sender and ECC

former_member190293
Active Contributor
0 Kudos

And what happens with sent data in ECC?

Regards, Evgeniy.

Former Member
0 Kudos

Clients want to cross check the SOAP response in both systems @ sender and ECC.

Former Member
0 Kudos

ccerror.jpgI have used ReturnXML function on response rootnode. It is passing the entire response payload to UDF , used a single input variable "SOAPxml" in the UDF. When testing the mapping it is giving the below error...Is it UDF code error or Lookup channel error? PFA CC error screen shot.

Errorcom.sap.aii.mapping.lookup.LookupException: Exception during processing the payload. Error when calling an adapter by using the communication channel CC_RCV_SOAP_Lookup (Party: , Service: BS_LOOKUP, Object ID: 045fb02826ef322099d45868ae432fb9) XI AF API call failed. Module exception: 'SOAP adapter processing error'. Cause Exception: 'SOAP: Response message contains an errorXIServer/UNKNOWN/ADAPTER.JAVA_EXCEPTION - See log trace with id: n/a

UDF code:

AbstractTrace trace = container.getTrace();

try { Channel channel = LookupService.getChannel("BS_LOOKUP","CC_RCV_SOAP_Lookup");

SystemAccessor accessor = LookupService.getSystemAccessor(channel);

InputStream inputStream = new ByteArrayInputStream(SOAPxml.getBytes());

XmlPayload payload = LookupService.getXmlPayload(inputStream);

Payload SOAPOutPayload = null;

SOAPOutPayload = accessor.call(payload);

InputStream inp = SOAPOutPayload.getContent();

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

DocumentBuilder builder = factory.newDocumentBuilder();

Document document = builder.parse(inp);

}

catch (Exception e)

{

trace.addWarning("Error" + e);

}

return "";

former_member190293
Active Contributor
0 Kudos

Hi Vijay!

Keep in mind that lookup should be used only for requesting data. If your lookup has any side effect like modifying any data in target system you should avoid using it and search for another implementation.

Regards, Evgeniy.

anupam_ghosh2
Active Contributor
0 Kudos

Hi Vijay,

In the response mapping please include a RFC lookup to ECC.

That will solve the issue.

Regards

Anupam

Former Member
0 Kudos

Hi Patrick,

It was mentioned in the blog use SOAP lookup UDF in request mapping.I want to send response (which is coming from ICO1`s sync receiver) to original sync sender and ECC .

Can I use the same UDF in response mapping?i.e The lookup UDP will execute When response mapping and it calls the SOAP LOOKUP channel and pass response payload through UDF. Is it possible?.