cancel
Showing results for 
Search instead for 
Did you mean: 

Error: Service interface contains multiple operations

former_member301120
Active Participant
0 Kudos

Hello to all,

I want to consume two different webservice. (I've imported both wsdl-files as external definitions.)

So I've defined a service interface with several operations.

When I try to aktivate, I get following error:


Service interface contains multiple operations whose request messages have the root tag deleteCriteria:https://www.xy.de/akz

Where is my fault?

Please ask, if you need further information.

Best regards

Christian

Accepted Solutions (1)

Accepted Solutions (1)

former_member301120
Active Participant
0 Kudos

Here my imported wsdl:

I cannot post the wsdl it won't be displayed

My service interface has 3 operations: INSERT, UPDATE, DELETE

stefan_grube
Active Contributor
0 Kudos
*I cannot post the wsdl it won't be displayed*

It will be displayed, when you click on reply and quote.

former_member301120
Active Participant
0 Kudos

ok,

thank you.

So I have to define one Service-Interface for each operation in order to consume the webservice

Thanks for your help

stefan_grube
Active Contributor
0 Kudos

There is another issue. When you want to call the web service, you will need to apply the correct SOAP action.

You can of course fill the SOAP action dynamically in mapping, but easier would be defining three different SOAP adapter channels to set this directly in the channel properties.

In this case you need three different service interfaces.

Answers (4)

Answers (4)

former_member301120
Active Participant
0 Kudos

I've got the same problem with one wsdl too

former_member200962
Active Contributor
0 Kudos
I've got the same problem with one wsdl too

Can you tell what is the procedure you are implementing and what is your requirement?

When using one WSDL you will have one request and one response message (if SYNC) .....this ideally should not cause an issue

Moreover now you wont have mulitple Operations.

Check if this blog helps you:

Regards,

Abhishek.

stefan_grube
Active Contributor
0 Kudos

I assume that the WSDL uses the same root tag name for different operation. To identify the operation, a web service can also use SOAP action, but this is not supported by PI.

So you cannot use the WSDL to create one service interface.

stefan_grube
Active Contributor
0 Kudos

Here you find it:

	<message name="insertAkzeptanzstellenRequest">
 		<part name="akzeptanzstellen" type="tns:akzeptanzstellen"/>
 	</message>

...

 	<message name="updateAkzeptanzstellenRequest">
 		<part name="akzeptanzstellen" type="tns:akzeptanzstellen"/>
 	</message>

Two operations have the same message type. This is not allowed in PI.

former_member200962
Active Contributor
0 Kudos
I want to consume two different webservice. 
So I've defined a service interface with several operations.

Two different webservices would mean two different target URLs ..... hence two different receiver channels would be required......if you create only one SI you wont be allowed to create two receiver agreements for the same inbound SI (to refer the two channels).....so at least in this case you wont be able to use the Operation feature of PI7.1

I hope my understanding is correct!

Regards,

Abhishek.

former_member301120
Active Participant
0 Kudos

Hello Stefan,

what is the intention of this restriction?

By the way: If a webservice is consumed by PI, what's the type of der service interface: inbound or outbound.

Christian

former_member200962
Active Contributor
0 Kudos
If a webservice is consumed by PI, what's the type of der service interface: inbound or outbound.

It will be inbound....it will be on the receiver (target) side.

stefan_grube
Active Contributor
0 Kudos
what is the intention of this restriction?

The operation is identified by the root tag name, so it must be unique.

stefan_grube
Active Contributor
0 Kudos

T least two operations in your service interface have the same root tag name. This is not allowed.

If you have two WSDL, you should have two service interfaces also.

Former Member
0 Kudos

Hi,

is this restriction still valid in 7.3 / 7.3.1?

For the definition of a service interface for ABAP proxies it is quite annoying. Imagine a business object-oriented service-interface with Operations like createByID, readByID, deleteByID. The input type of the operations should have the same message type. Duplicating and renaming the message types leads to redundant data structures in ESR as well as in ABAP Dictionary

Best Regards

Chris