Skip to Content

Archived discussions are read-only. Learn more about SAP Q&A

SAP-PI - RFC call to SAP backend system

Hello,

my scenario is as follows:

I want to implement a RFC-call in SAP-PI to my backend SAP-system

(Receiver system for the IDoc) in order to insert a new entry in a z-table

in the backend system. This will be done by implementing an RFC-enabled

function module in the backend system. If the RFC-enabled FM returns an

exception I want to temporarily set the IDoc in PI "on hold".

After some time (for ex.30 min) I want to try to perform the RFC-call again.

If the RFC-enabled FM in the backend system this time does not return any

exception, then the processing of the IDoc should continue in PI, i.e the IDoc

should be transferred to the receiver system.

In the SAP-PI documentation in URL http://help.sap.com/saphelp_nw04/helpdata/en/cf/406642ea59c753e10000000a1550b0/frameset.htm

it is written:

"..

INTEGRATION

When a mapping program is executed on the Integration Server, the lookup API

calls the required application system by using the central Adapter Engine.

(Graphical presentation)

The call is synchronous. This means that the adapter called returns the result of

the call immediately (not represented in the graphic).

.."

**

My questions to this forum are as follows

1) Does "synchronous call" in the context above concrete mean that the adapter is

waiting for the completion of the RFC function call to the SAP application system,

before it gives the control back to the mapping program via the lookup API?

2) If so, is it possible to implement an error handling in the mapping program (or the

lookup API) if the RFC call returns a negative result?

3) If so, can this error handling in the mapping program (or the lookup API) - in case

of negative result from the RFC function call - temporarily put the inbound IDoc from

the sender (i.e from the external world) "on hold" in order to be re-processed again

later?

4) If so, is it possible to "trigger" the re-processing of the IDoc in PI by a signal from

the backend SAP application system?

If so, how do I give this signal to PI from the backend SAP system in the best way?

Could it be done with a RFC function call from the SAP application system back to PI;

i.e is it also possible to retrieve RFC-calls in PI, not only send RFC-calls?

Or would it be better to "schedule" a program in PI which tries to repeat the RFC function

call for IDocs "on-hold" due to failure in previous RFC call? If so, how do I schedule

such a program in PI?

Kind regards

Viveka Schwartz

Former Member
Not what you were looking for? View more on this topic or Ask a question