cancel
Showing results for 
Search instead for 
Did you mean: 

webservice ABAP proxy generation error ??? HELP

Former Member
0 Kudos

We had the following steps to achieve remote call to BAPI.

1. create a webservice for rfc enabled func. Call from DEV (ECC 5)

2. create a webservice proxy bean from PPD.

3. create a function module wrapper for the above

4. call the wrapper in SE80 wizard’s service.

Unfortunately, I failed in 2. I got the proxy generation error on SE80->editObject->EnterprizeServices->createProxy.

I chose "local WSDL file" option.

got this error:

“Proxy generation terminated: Message must have exactly one part”

I got a link from SDN that talks about it, says that there is NO

problem. I found NO solution.

Please HELP

PS:

The SDN url that talks about this problem is :

https://www.sdn.sap.com/irj/sdn/threadforumid=45&threadID=47335&messageID=558326#558326

My wsdl's "message" part looks as:

<wsdl:message name="Z_E_RFC_WS_MAIL_SERVICE">

<wsdl:part name="FROM" type="xsd:string"/>

<wsdl:part name="MESSAGE" type="xsd:string"/>

<wsdl:part name="SUBJECT" type="xsd:string"/>

<wsdl:part name="TO" type="xsd:string"/>

</wsdl:message>

&#8722;

<wsdl:message name="Z_E_RFC_WS_MAIL_SERVICEResponse">

<wsdl:part name="RETURN" type="tns:BAPIRET2"/>

</wsdl:message>

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Mike,

Looking at your error message, it seems like that only one parameter is allowed in message types.

Return param seems ok as it contain onle one param .

Actually ur return param contains only one complex param. Complex param means group of some other elements/data types.

If you have a look at your WSDL, you will find the complex param "tns:BAPIRET2" defined in a schema under <types></types> tag.

Try creating your input param also of complex type(as group type). Now it is bifricated.

eg. make a complex type of group param XYZ. and use this in your ABAP .

Inside XYZ, define the params FROM,MESSAGE,SUBJECT, TO.

Then your message should look like-

<wsdl:message name="Z_E_RFC_WS_MAIL_SERVICE">

<wsdl:part name="XYZ" type="someprefix:sometype"/>

</wsdl:message>

&#8722;

<wsdl:message name="Z_E_RFC_WS_MAIL_SERVICEResponse">

<wsdl:part name="RETURN" type="tns:BAPIRET2"/>

</wsdl:message>

Hope this helps.

Regards,

Piyush

Former Member
0 Kudos

Piyush,

I will try your answer and get back to you.

Thanks.

Former Member
0 Kudos

just use a <b>document style</b> WSDL of your service and everything will be fine.

no need to manipulate the WSDL itself.

anton

Answers (1)

Answers (1)

Former Member
0 Kudos

hi mike.

your link doesn't work. anyway, your WSDL is so called rpc-style.

for soap messages there are two types of styles 'rpc' and 'document'. google it to find out the difference. ABAP WAS to my knowledge interstingly supports the exposion of services both in RPC and document style but only supports creation of proxies for document style WSDLs.

anton