Los sistemas SAPs pueden comunicarse entre sí utilizando llamadas de funciones remotas conocidas como RFCs (Remote Function Calls). Como pre-requisito el administrador debe haber configurado el sistema de Interface.
Fundamentos de RFCs
Las llamadas de funciones remotas son la interface técnica con la que sistemas SAP y NO-SAP usualmente se conectan o comunican. No es importante si el intercambio de información se realiza de forma sincrónica o asincrónica, periódica o aperiódica, o transaccional.
RFC: Es la llamada a un módulo de función que está corriendo en un sistema diferente al programa que realiza la llamada, aunque podemos llamar a un módulo de función en el mismo sistema también. Aunque normalmente se utiliza cuando se trata de comunicar sistemas diferentes SAP - SAP o SAP - NO-SAP.
En definitiva, es un protocolo de interface de SAP, basado en el interfaz de programación común para comunicaciones, siglas CPI-C (Common Programing Interface for Comunication) y permite comunicación entre programas de diferentes hosts. Esto permite que aplicaciones externas puedan llamar funciones ABAP, y que los sistemas SAP puedan contactar con aplicaciones externas que sean compatibles mediante RFC.
Esto último permite a los programadores ABAP no tener que programar sus propias rutinas de comunicación.
La interfaz RFC:
- Convierte todos los parámetros al formato requerido en el sistema remoto.
- Invoca a las rutinas de comunicación que se requieren para la comunicación con el sistema remoto.
- Maneja los errores que puedan ocurrir durante la comunicación.
Los pasos de procesamiento para el llamado a los programas externos están integrados dentro de la función CALL FUNCTION.
Para poder llamar a una función remota (en un sistema remoto), deberemos definir el sistema remoto como un destino en el sistema desde donde realizamos la llamada. También se requiere autorización de acceso para el sistema remoto.
Acción Acceso a administración de conexiones remotas.
Par ver el menú desde el menú del sistema:
Administration / Administration -> Network -> RFC Destinations.
O
Transacción SM59: Que permite visualizar los tipos de conexión y todos los destinos existentes, se muestran en estructura de árbol en la pantalla inicial.
Para realizar una búsqueda, seleccionar Search e ingresamos el nombre o parte del nombre.
Para modificar una conexión RFC existente, seleccionar el destino RFC en el menú de árbol y seleccionar Change.
Para copiar una RFC existente, primero ingresamos a la conexión RFC que queremos copiar y luego seleccionar Conecction -> copy
RFC sincrónica (sRFC): Para comunicación entre diferentes sistemas y entre SAP Netweaver AS y SAP GUI. En estas comunicaciones el llamado a la función remota se basa en una comunicación sincrónica por lo que el sistema remoto debe estar disponible al momento de la llamada.
RFC asincrónica (aRFC): Para comunicación entre sistemas y para procesamiento paralelo de tareas. Con este tipo de comunicación, aunque no es realmente asincrónica ya que el sistema remoto debe estar disponible al momento de la comunicación, el sistema origen (desde donde se realiza la llamada a la función remota) no necesita esperar una respuesta del sistema remoto para continuar su procesamiento y en este sentido es por el cual se denomina asincrónico.
RFC Transaccional (tRFC): Este método si utiliza una forma de comunicación realmente asincrónica. El sistema remoto no necesariamente debe estar disponible al momento de la llamada por el programa en el sistema origen. Si una llamada es ejecutada y el sistema destino no está disponible, la llamada se mantiene en una cola local del sistema origen. El programa que ejecuto la llamada puede proceder sin esperar si el resultado de la llamada fue exitoso o no.
RFC encolada (qRFC): Para garantizar que se procesen en el mismo orden en el que se realizaron las llamadas en el sistema origen, qRFC garantiza esto. Es una extensión de tRFC. Se utiliza cuando necesitamos que el procesamiento se realice con un orden predefinido (establecido por el orden de los llamados desde el programa en el sistema origen).