cancel
Showing results for 
Search instead for 
Did you mean: 

Can I suppress errors in the Adapter Engine?

Former Member
0 Kudos

Hi

I have an issue with an interface where the flow is as follows:

ECC6 -> PI -> 3rd party system

It is an asynchronous interface, so ECC6 does not expect a response. PI uses the SOAP adapter to call a Web Service. When the message arrives in the target system, sometimes there are data errors e.g. order does not exist. There is a report which is run in the target system to deal with these data errors.

    

When this happens, errors appear in the Adapter Engine and the Communication channel. We do not want this to happen, as mentioned the data errors are handled in the target system. Can I suppress these errors? We are aware that the Web Service code could be changed, but to do this we would have to involve the 3rd party, we want to avoid this.

 

Thanks!

Accepted Solutions (1)

Accepted Solutions (1)

former_member184681
Active Contributor
0 Kudos

Hi,

I think you can ignore the response by simply changing your receiver Service Interface to async. This way, each message successfully delivered to the receiver system (technically) will be considered successful by PI.

Regards,

Greg

Former Member
0 Kudos

Thanks for your reply. The receiver / inbound interface in the Integration Builder is already async:

The outbound interface is also async:

Answers (1)

Answers (1)

baskar_gopalakrishnan2
Active Contributor
0 Kudos
Former Member
0 Kudos

Thanks for your reply. As I've mentioned in my reply to the previous post, the interfaces are set up in the Integration Builder as asynch - asynch. Do I need to change this to asynch - synch, then set up the receiver as described in your link?

baskar_gopalakrishnan2
Active Contributor
0 Kudos

If your target system WSDL contains only request message and no response message then you cannot create synchronous on the target side.  The above link helps only if the interface is synchronous and if you want to ignore the target response to sender system.  BTW, how do you get " Order does not exist" as response message if the interface is async.

Former Member
0 Kudos

There is no response message, but an error appears in the Communication Channel:

And in the Adapter Engine Message monitoring:

baskar_gopalakrishnan2
Active Contributor
0 Kudos

IMO, you cannot suppress system exceptions/errors. This errors are required one for monitoring purpose and shows details about failure due to connectivity or similar issues.

Former Member
0 Kudos

That's the thing, these errors are not connectivity or system errors. They are application errors in the target system, due to incorrect payload data. PI doesn't need to know about these errors, it just needs to know the message has been delivered.

I've asked the team in the target system to check how the Web Service is set up- maybe it is set up as 'Synchronous', even though PI thinks the interface is 'Asynchronous'.

Thanks for your time, anyway, I appreciate it.

EDIT: Maybe what I've just said is not entirely accurate. The error in the Communication Channel looks like this:

Message processing failed. Cause: com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Exception: Error updating sap work order ---> System.Exception: Error when updating feature ---> System.Exception: Unable to determine the location of feature: 91002025 at ......

The bit in bold is the actual application error, but 'System.Exception' suggests that the code in the target Web Service is actually triggering a system error.

baskar_gopalakrishnan2
Active Contributor
0 Kudos

Yes target system throw their exception as system exception.  They could wrap and send as fault message as response.