cancel
Showing results for 
Search instead for 
Did you mean: 

Call Adapter Error

Former Member
0 Kudos

Hello everybody,

I have a synchronous scenario ABAP Proxy->XI->RFC, the reason why we used XI it's beacuse by company politics any systems integration needs to go by SAP XI, and the reason why we used RFC in the receiver system it's because by company politics too we can't generate proxies in that system, so we decided to go by RFC, now the interface is working really fine, the abap proxy in the sender system is called by a Z program, so this program gives a report of every record, and the problem that I'm facing is that I need to give back to the sender systems errors like this:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

- <!-- Call Adapter

-->

- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">

<SAP:Category>XIAdapterFramework</SAP:Category>

<SAP:Code area="MESSAGE">GENERAL</SAP:Code>

<SAP:P1 />

<SAP:P2 />

<SAP:P3 />

<SAP:P4 />

<SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException: error while processing message to remote system:com.sap.aii.af.rfc.core.client.RfcClientException: could not convert request from XML to RFC:com.sap.mw.jco.JCO$ConversionException: (122) JCO_ERROR_CONVERSION: Date '9999-12-32' has a wrong format at field VALIDA: Unparseable date: "9999-12-32"</SAP:AdditionalText>

<SAP:ApplicationFaultMessage namespace="" />

<SAP:Stack />

<SAP:Retry>M</SAP:Retry>

</SAP:Error>

this error it's beacuse of the day 32 of the month december, we know that, but this error is only treated as exception CX_AI_SYSTEM_FAULT in the Proxy, and I need to pass the SAPAdditionalText of the error above to the sender system, is there a way to give back to the proxy this text so it will be more explicit in the error and not just a SYSTEM_FAULT???????, thanks in advance.

Regards,

Julio Cesar

Accepted Solutions (0)

Answers (5)

Answers (5)

Former Member
0 Kudos

Thanks for your answers.

Former Member
0 Kudos

Hello Santosh,

Thanks for your answer, my sender interface it's actually a synchronous proxy and a receiver synchronous RFC, now the CX_AI_SYSTEM_FAULT exception is going back from XI to the client proxy as a GENERAL MESSAGE, but the text is empty, so it's not a really meaningful message for the end user, maybe with this data you could give me another advice, thanks in advance.

Regards,

Julio Cesar

Former Member
0 Kudos

Hello VJ,

Thanks for your answer, about the solution your are kindly giving me, it's not really clear to me in this point:

" When ever you get such exceptions, you need to catch them

in your RFC and fill your own exception object and throw it."

the exception I'm getting is a default by SAP, not one I could raise, maybe I'm not understanding right your proposal could you explain me more this part, do you mean that if I declare an exception in my RFC even if I'm not doing the RAISE is going to catch the exception I'm getting?, thanks a lot for your answer.

Regards,

Julio Cesar

Former Member
0 Kudos

Catch the exceptions in RFC code..

-->CX_AI_SYSTEM_FAULT in the Proxy, and I need to pass the SAPAdditionalText of the error above to the sender system, is there a way to give back to the proxy this text so it will be more explicit in the error and not just a SYSTEM_FAULT???????

sure, make the sender interface a synchronous one by that you can easily capture the message coming from RFC in Proxy.

Regards,

VijayKonam
Active Contributor
0 Kudos

Hi Julio,

Since your receiver side is an RFC, you can declare exceptions in your RFC. When ever you get such exceptions, you need to catch them in your RFC and fill your own exception object and throw it. WHen this RFC is imported in IR, you can fille the fault message by creating a fault message type on top of fault data type and log data (created automatically when a name space is created). In the interface mapping, when you read the interfaces, you would find the tabs - request, response and also exception (or fault dont remember exactly). Here you can you another mapping where you can map the exception thrown by RFC to a message type that your proxy can handle.

Hope it helps.

VJ