RFC Q & A
1. What are the types of remote communications ?
· communications between two independent SAP System
· client-server communications between an external client and an SAP System acting as the server
· client-server communications between an SAP System acting as the client and an external server.
2. RFC is SAP's platform-independent core technology for all the three types of remote communications.
3. What is OLE ?
For Windows frontends, SAP provides interfaces based on Microsoft's Object Linking and Embedding technology (OLE Automation).
4. What is RFC?
A remote function call is a call to a function module running in a system different from the caller's. The remote function can also be called from within the same system (as a remote call), but usually caller and callee will be in different systems.
5. How is ABAP/4 used as OLE Automation Controller ?
An ABAP/4 program can call up an OLE Automation Server (such as Excel) on the desktop. The ABAP/4 OLE Automation Controller consists of a set of ABAP/4 language elements that an ABAP/4 client program can use to drive an OLE Automation server on either Windows or Apple Macintosh frontends.
6. What is the statement used for calling RFC in ABAP/4 programs?
Any ABAP/4 program can call a remote function using the CALL FUNCTION DESTINATION statement.
7. RFC functions must be registered in SAP systems as ___________. Remote.
8. Destination parameter are defined in which table?
Logical destinations are defined in the RFCDES table (or the TRFCD table in R/2 Systems) via transaction SM59
9. How to Call interfaces for non-SAP programs ?
To help implement RFC partner programs in non-SAP Systems, SAP provides :
- The RFC Generator to create stub programs External Interfaces
10. What is RFC generator ?
The function library in R/3 provides a facility for generating and then downloading RFC programs to a workstation or PC. This facility is the RFC Interface Generator. With this tool, you can create RFC stub programs (that call SAP function modules) and example programs (that show how to call stub programs).
11. What is RFC stub program?
RFC stub programs contain all the parameter-handling and communications necessary to call SAP function modules from a non-SAP System.
12. What is RFC-API?
The RFC-API on OS/2, Windows, Windows NT and all R/3-based UNIX platforms makes it possible to use the RFC functionality between an SAP System (R/3 from Release 2.1 and R/2 from Release 5.0D onwards) and a C program on the above platforms. It is of no significance to the caller whether the remote function is provided in an SAP System or in a C program.
13. How does processing of RFC interface take place in ABAP/4?
The RFC interface is effectively invisible to the ABAP/4 programmer. Processing for calling remote programs is built into the CALL FUNCTION statement. Processing for being called is generated automatically (in the form of an RFC stub) for every function module registered as remote. This stub serves as an interface between the calling program and the function module.
14. Distiningish between RFC client & RFC server.
RFC client is the instance that calls up the Remote Function Call to execute the function that is provided by an RFC server. In the following, the functions that can be executed remotely will be called RFC functions and the functions provided via RFC API will be called RFC calls
15. All RFC functions available in a remote RFC server system, which are called by an RFC client, are processed transactionally
16. When is RFC connection closed ?
When the context of the calling ABAP/4 program has ended or explicitly by RfcAbort or RfcClose in the external program.
17. What is Transactional RFC?
To make the execution of RFC functions reliable, safe and independent from the availability of the RFC server or RFC server system, the transactional RFC (tRFC) was introduced for R/3 systems from Release 3.0 onwards,data can be tranferred between two R/3 systems. This ensures that the called function module is executed only once in the RFC server system.
18. Where system logs the remote call request in DB tables?
The system logs the remote call request in the database tables ARFCSSTATE and ARFCSDATA with all of its parameter values. You can display the log file using transaction SM58. When the calling program reaches a COMMIT WORK, the remote call is forwarded to the requested system for execution.
19. Transactional RFC requests are transferred, with parameter data in byte-stream form, using TCP/IP or X400.
20. What are restrictions for Transactional calls?
There are two restrictions on writing remote functions that are to be called transactionally:
· Transactional calls cannot return parameter values. As a result, the interface for these functions should not specify any EXPORT parameters.
· Functions that run transactionally may not perform call-backs: the caller's context does not necessarily still exist when the call-back is relayed back to the original system.
21. What exceptions raise in a remote funcation?
System raises COMMUNICATION_FAILURE and SYSTEM_FAILURE internally, there is no reason for you to raise them in your program.
22. How call-back mechanism used in RFC calls?
You can trigger this call-back mechanism by using the special destination name "BACK". If this name is specified in an RFC call on the system acting as the server, the system uses the same RFC connection that was established when the server received the first call. Once an RFC connection is established, it is maintained until it is either explicitly closed or until the calling program terminates
23. What are technical requirements for RFC programming in ABAP/4?
External Systems
systems must support TCP/IP.
OS/2: TCP/IP for OS/2 from IBM.
Windows 3.1/3.11: All TCP/IP products that support the socket interface.
Windows NT/95: Microsoft standard
UNIX platforms: Manufacturer's standard
The RFCSDK for the respective platforms contains the following libraries and includes:
saprfc.h This include file contains all data types and structures required and the prototypes (declarations) of the RFC calls.
sapitab.h This include file contains all the RFC calls required to manipulate internaltables
librfc Depending on the platform, the following libraries are required:
OS/2: librfc.dll and librfc.lib for Compile/Link
Windows 3.1/3.11: librfc16.dll, librfc2.dll, librfc3.dll, librfc4.dll and librfc5.dll and librfc16.lib for Compile/Link
Windows NT/95: librfc32.dll and librfc32.lib for Compile/Link
UNIX-Platforms: librfc.a
SAP R/3 Systems
For RFC between external systems and R/3, there are no specific requirements in the R/3 System, except that the R/3 System has to be Release >= 2.1.