In this article I’d like to describe a quite common issue with interface determination in case of a service interface with multiple operations. Sometimes we’re using SAP PI system just for moving files across landscape and in some cases we see might experience any of those three errors: InterfaceDetermination error, RoutingException, SendToModuleProcessorFilter error.
You can also experience this error in other scenarios with other adapters (SOAP, JMS, etc.) but most of them will be related to the fact that you’re using an outbound service interface with multiple operations. SAP PI is trying to determine which operation should be used and it cannot so it failes the message with any of those exceptions. What can we do in this case depends heavily on the requirements.
We’ve received this error in a working scenario – this means that the message might not be correct (even if validation is turned off) so we need to check at the sender if the message is exactly the same as the one for the designed operation. If it’s not we need to correct it and there’s no need to do any changes on the SAP PI at all.
We’ve received this error on a new integration scenario. If we want to process a message which is not the same as the service operation in our service interface we have at least two options:
a) we can try changing the service interface from stateless to stateless XI3.0 compatibile – this way we will be able to route a message which does not match to the actual service interface’s definition
b) in some cases we may not be able to change the service interface in SAP PI due to any of the requirements. In this case there’s a second way of handling this scenario, we can remove the Software Component Version of the Sender Interface from the ICO (Integrated Configuration Object) in the Integration Directory.
This way the routing serivce will also not check if the incoming payload matches any of the service interface’s operations and we will be able to process the message. Please keep in mind to test your new scenarios very well before moving forward with any of those approaches.