What is RFC?
For business applications, it is necessary to communicate and
exchange information (in pre-defined formats) with other systems. Hence, there
are well defined mechanisms to enable this communication. SAP has also provided
us with such mechanism called RFC,
which stands for 'Remote Function Call'.
To communicate between SAP systems, there
is a need to define a mechanism. One of the most common ways is to define
Remote Function Call (RFC Connection) between two systems. By creating a
trusted RFC connection between two systems, it allows you to create trusted-trusting relationship between
systems wherein, you can communicate and exchange information and data.
There are different types of trusted RFC
connections.
- A calling interface for ABAP Programs (See SAP ABAP training for more info about ABAP)
- A calling interface for Non-SAP programs.
Basis
is a set of programs and tools that act as an interface with Database,
Operating system, Communication protocols and business applications (such as
FI, CO, MM, etc). Full form of BASIS is "Business Application Software
Integrated solution". (Develop career with SAP BASIS training by experts).
Functions of the RFC interface:
Converting
all parameter data to the representation needed in the remote system.
Calling
the communication routines needed to talk to the remote system.
Handling
communications errors, and notifying the caller, if desired (using EXCEPTIONS
parameter of the CALL FUNCTION).
RFC
is a SAP protocol to handle communications between systems to simplify the
related programming. It is the process of calling a function module which is
residing on a different machine from the caller program. RFCs can be used to
call a different program on the same machine as well, but usually, it is used
when 'calling' and 'called' function modules/ programs
are running on separate machines.
Details about RFC
- SAP Uses CPIC (Common Programming Interface for Communication) Protocol to transfer data between Systems. It is SAP Specific protocol. Remote Function Call (RFC) is a communications interface based on CPI-C, but with more functions and easier for application programmers to use.
- RFC connections can always be used across the entire system. This means that an RFC connection you have defined in client 000 can also be used from client 100 (without any difference).
- RFC is the protocol for calling special subroutines (function modules) over the network. Function modules are comparable with C functions or PASCAL procedures. They have a defined interface through which data, tables and return codes can be exchanged. Function modules are managed in the R/3 System in their own function library, called the Function Builder.
- You maintain the parameters for RFC connections using transaction SM59. The R/3 System is also delivered with an RFC-SDK (Software Development Kit) that uses extensive C libraries to allow external programs to be connected to the R/3 System.
- The only difference between a remote call of a function module to another server and a local call is a special parameter (destination) that specifies the target server on which the program is to be executed.
RFC Advantages
RFC
helps to reduce the efforts of programmers, by letting them avoid the
re-development of modules and methods at remote systems. It is capable enough
to:
- Convert the data into the format understandable by the remote (target) system.
- Convert the data into the format understandable by the remote (target) system.
- Call up certain routines which are necessary to start communication with the remote system.
- Handle errors that might occur in the process of communication.
Types of RFC
Synchronous
Requires
both the systems (client and server) to be available at the time of
communication or data transfer. It is the most common type and is required when
the result is required immediately after the execution of sRFC.
sRFC
is a means of communication between systems where acknowledgments are required.
The resources of the Source System wait on the target system and ensure that they
deliver the message/data with ACKD. The Data is consistent and reliable for
communication.
Used for
For
communication between systems
For
communication between SAP Web Application Server to SAP GUI
Asynchronous
It
is communication between systems where acknowledgments are not required (it is
similar to postcard delivery).It doesn't require both the systems to be
available at the time of execution and the result is not immediately required
to be sent back to the calling system.
The
Source System resource does not wait for the target system as they deliver the
message/data without waiting for any acknowledgment. It is not reliable for
communication since data may be lost if the target system is not available.
Used for
For
communication between systems
For parallel
processing
Transactional
It
is a special form of aRFC. Transactional RFC ensures transaction-like handling
of processing steps that were originally autonomous. Transactional RFC is an
asynchronous communication method that executes the called function module in
the RFC server only once, even if the data is sent multiple times due to some
network issue. The remote system need not be available at the time when the RFC
client program is executing a tRFC. The tRFC component stores the called RFC
function, together with the corresponding data, in the SAP database under a
unique transaction ID (TID). tRFC is similar to aRFC as it does not wait at the
target system (Similar to a registered post). If the system is not available,
it will write the Data into aRFC Tables with a transaction ID (SM58) which is
picked by the scheduler RSARFCSE (which runs for every 60 seconds).
Interested
to learn SAP BASIS join, SAP Trainings Online is a deceptively simple
e-learning and course authoring solution. Create super-effective training
content and deliver courses via Virtual and implant in existing systems.
Try SAP BASIS
Demo Class today! To register Click Here
For more details visit: www.saptrainingsonline.com
Email: contact@saptrainingsonline.com
Contact: India +91 9052775398 USA
+13152825809
No comments:
Post a Comment