cancel
Showing results for 
Search instead for 
Did you mean: 

SOAP Sender Adapter + MessageTransformBean (Plan2XML)

Former Member
0 Kudos

Hi Experts,

We have the following scenario.

Legacy > SAP PI (Receiver SOAP with flatfile) > (Sender SOAP + MessageTransformBean) SA PI > ECC


We are receiving a SOAP Call with a flatfile from the another SAP PI, and we need to transform it to XML using the MessageTransformBean stardard module. Is it possible? Or we need to configure SOAP + Servlet (AXIS) in order to receive and transform it.


We are using the &nosoap=true query string and Do Not Use SOAP Envelope option.


Please find below the log of XPI_Inspector tool.

The error message invalid xi message object is occurring on our the SOAP Sender comm channel.

LOGIN.OK

User: #####

IP Address: ########

Authentication Stack: sap.com/com.sap.aii.adapter.soap.app*XISOAPAdapter

Login Module                                                               Flag        Initialize  Login      Commit     Abort      Details

1. com.sap.engine.services.security.server.jaas.BasicPasswordLoginModule   SUFFICIENT  ok          true       true                 

Central Checks                                                                                                true                 

NOSOAP = false

with (com.sap.engine.services.servlets_jsp.server.runtime.client.HttpServletRequestFacadeWrapper@2009d537, com.sap.engine.services.servlets_jsp.server.runtime.client.HttpServletResponseFacadeWrapper@5d0a374f)

NOSOAP = true

with (com.sap.engine.services.servlets_jsp.server.runtime.client.HttpServletRequestFacadeWrapper@2009d537)

request header: content-type=application/xml; name="MainDocument.xml"; contentl-length=962

reading header: (accept,*/*)

reading header: (host,#####:51000)

reading header: (user-agent,SAP-Messaging-com.sap.aii.af.sdk.xi/1.0505)

reading header: (callingtype,SJM)

reading header: (authorization,Basic UkZDX1gzUV9VUFhJOkZseWVyc1gwMQ==)

reading header: (content-id,<payload-bd9e3166688111e5bbb200001212f36a@sap.com>)

reading header: (content-type,application/xml; name="MainDocument.xml")

reading header: (content-disposition,attachment;filename="MainDocument.xml")

reading header: (content-description,MainDocument)

reading header: (content-length,962)

reading header: (soapaction,)

decoding content-type as application/xml; (name="MainDocument.xml");

mime type: APPLICATION/XML

read total length: 962

clen=962; readtotal=962

reading body RSAP|9933503352-CR|10|577015|23.08.2015

RSAP|9933503352-CR|20|575031|23.08.2015

RSAP|9933503352-CR|30|574982|23.08.2015

RSAP|9933503352-CR|40|575168|23.08.2015

RSAP|9933503381-CR|10|575154|23.08.2015

RSAP|9933503381-CR|20|575610|23.08.2015

RSAP|9933503381-CR|30|575165|23.08.2015

RSAP|9933503381-CR|40|575170|23.08.2015

RSAP|9933503381-CR|50|575153|23.08.2015

RSAP|9933503381-CR|60|574978|23.08.2015

RSAP|9937003643-SV|10|575998|24.08.2015

RSAP|9937003643-SV|20|576000|24.08.2015

RSAP|9937003643-SV|30|576003|24.08.2015

RSAP|9937003643-SV|40|84157012|24.08.2015

RSAP|9944002189-HN|10|576816|21.08.2015

RSAP|9944002266-HN|10|957609|20.08.2015

RSAP|839745516-CO||86756|16.08.2013

RSAP|839745516-CO||99816|16.08.2013

RSAP|839745516-CO||225998|16.08.2013

RSAP|839745516-CO||173162|16.08.2013

RSAP|839745516-CO||99818|16.08.2013

RSAP|839997580-SV||201860|19.09.2013

RSAP|839997580-SV||201880|19.09.2013

RSAP|839997580-SV||202003|19.09.2013

Current application security policy domain: [XISOAPAdapter]. Set of already authenticated policy domains: [[XISOAPAdapter]]

with true

getting parameter XHeaderName1 [null] as null

getting parameter XHeaderName1 [null] as null

getting parameter XHeaderName2 [null] as null

getting parameter XHeaderName2 [null] as null

getting parameter XHeaderName3 [null] as null

getting parameter XHeaderName3 [null] as null

calling ModuleProcessor Localbean with ChannelID 2902b25f89d73d508409b51a8598d816 ...

~.trans.MessageTransformBean.process Transform: invalid xi message object

NOSOAP = true

com.sap.aii.af.lib.mp.module.ModuleException: Transform: invalid xi message object

at com.sap.aii.af.modules.trans.MessageTransformBean.process(MessageTransformBean.java:302)

at sun.reflect.GeneratedMethodAccessor13973.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:592)

at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:46)

at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166)

at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19)

at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179)

at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:74)

.....

Thanks a lot,

Leandro Silva

Accepted Solutions (1)

Accepted Solutions (1)

stefan_grube
Active Contributor
0 Kudos

the sender SOAP adapter does not allow additional modules. You could use axis for this. The axis configuration allows modules. When you receive the flat file from another SAP PI system, could you access the other system and do the tranformation in the receiver channel?

Former Member
0 Kudos

Hi Stefan,

I will use another interface in order to have this. Thanks!

Leandro Silva

Answers (3)

Answers (3)

0 Kudos

Hello Leonardo,

Is it solved, I am facing a same situation. It seems the 2nd ICO is not accepting the flat file from the first ICO. Even though I have used AXIS Protocol in SENDER SOAP Channel

Ryan-Crosby
Active Contributor
0 Kudos

Hi Leandro,

Be wary of the byte order mark that exists in your payload as well.  If you attempt to run conversion on that and it is not handled by the MTB then you will get the "content is not allowed in the prolog" error.

Regards,

Ryan Crosby

former_member186851
Active Contributor
0 Kudos

Hello Leandro,

Soap adapter doesn't support file.

Go with Soap adapter with axis protocol and use the transformation beans before CallSapAdapter Bean.