![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️SAP BASIS Los fundamentos de las conexiones RFC
SAP BASIS Los fundamentos de las conexiones RFC
![SAP BASIS Los fundamentos de las conexiones RFC SAP BASIS Los fundamentos de las conexiones RFC](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/384.jpg)
Los sistemas SAP se comunican entre si utilizando los RFC (Remote Function Call) y estas se pueden configurar por el administrador.
1.- Los fundamentos de RFC
Las llamadas de funciones remotas se han utilizado por mucho tiempo como la interface técnica con la que los sistemas SAP y No-SAP se comunican sin importar la forma de comunicación (sincrónica, asincrónica, periódica o aperiódica, o transaccional).
Los RFC son llamadas a los módulos de función que se ejecutan en un sistema diferente al programa que realiza la llamada. Se puede llamar a un módulo de función en el mismo sistema mediante un RFC. Pero por lo general se utilizan cuando se llaman entre sistemas diferentes.
El sistema de interfaz RFC permite llamadas a funciones entre dos sistemas SAP o No-SAP.
RFC es un protocolo de interfaz de SAP basado en Programación Común Para Comuncaciones (CPI-C = Common Programming Interface for Communication) y permite la comunicación entre programas de diferentes hosts. Esto permite que aplicaciones externas llamen funciones ABAP y los sistemas SAP contactar aplicaciones externas.
RFC significa que los programadores ABAP no tienen que escribir sus propias rutinas de comunicación.
- Convierte los parámetros al formato requerido en el sistema remoto.
- Invoca 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.
La interfaz RFC se utiliza por los programadores ABAP y para llamar a los programas externos estos se integran dentro de la sentencia CALL FUNCTION.
Para poder llamar a una función remoto de un sistema, se deberá definir el sistema remoto como un destino en el sistema desde donde se realiza la llamada e igual requiere de autorización de acceso para el sistema remoto.
Para acceder a las conexiones remotas se puede mediante la transacción SM59 o desde el menú del sistema la ruta AdministrationAdministration -> Network -> RFC Destinations y aquí se mostrarán los tipos de conexión y todos los destinos existentes en una estructura de árbol en la pantalla inicial.
Los RFC son el fundamento de comunicación entre diferentes instalaciones SAP, se requieren de los protocolos de seguridad para el tipo de usuario que se utilizara para la conexión RFC, en este caso es conveniente utilizar un usuario de tipo comunicación ya que no se ajusta a los parámetros de seguridad como la contraseña.
Hay una función de búsqueda para los destinos que ya están configurados seleccionando el botón Search y luego ingresar el nombre o parte del nombre.
Para modificar una conexión RFC existente, seleccionamos el destino RFC en el menú de árbol y seleccionamos el botón Change.
Para copiar una conexión RFC existente, primero se debe ingresar a la conexión RFC que queremos copiar, y luego seleccionar Connection -> Copy.
2.- Las variantes de utilización de RFC
- RFC sincrónica (sRFC): Comunica diferentes sistemas y sistemas SAP NetWeaver y SAP GUI, su llamado a la función se realiza de forma sincónica por lo que el sistema remoto deberá estar disponible en el momento de la llamada.
- RFC asincónica (aRFC): Comunica diferentes sistemas y realiza procesamientos en paralelo de tareas. Aunque no es realmente asincrónica ya que el sistema remoto debe estar disponible al momento de la comunicación, el sistema origen (donde se realiza la llamada a la función remota) no necesita esperar una respuesta del sistema remoto para continuar procesando, por este motivo se le denomina asincrónica.
- RFC transaccional (tRFC): Este método si utiliza realmente la comunicación asincrónica. El sistema remoto no necesariamente debe estar disponible al momento de la llamada por el programa en el sistema origen. Si se ejecuta una llamada y el sistema destino no está disponible, la llamada se mantendrá en cola local del sistema origen. El programa que ejecutó la llamada puede proceder sin esperar si el resultado de la llamada fue exitoso o no.
- RFC encolada (qRFC): Para que se garantice el procesamiento del mismo orden en que se realizaron las llamadas en el sistema origen, qRFC garantiza esto. Este es una extensión de tRFC y se utiliza cuando se requiere que el procesamiento se realice con un orden predefinido (establecido por el orden de los llamados desde el programa en eel sistema origen).
RFC es un término general para diferentes variantes de implementación, sRFC es la llamada de módulo de funciones sincrónica donde el cliente esperara hasta que el servidor ha completado el procesamiento de la función remota.
En SAP un RFC puede ser ejecutado de forma asincrónica mediante el uso de otro work process, a esa variante se le conoce como aRFC.
tRFC asegura que la información pueda ser enviada más de una vez al sistema destino si hay problemas de comunicación en la red y son reconocidos del lado del servidor. Para esto el TID (Identificador de Transacción) se asignará al llamado y será de utilidad para prevenir que la información se procese más de una vez y que pueda provocar información errónea en la aplicación.
qRFC es una extensión de tRFC y crea una campa entre la aplicación y tRFC que permitirá enviar los parámetros de la función remota si no existen ejecuciones anteriores pendientes en la cola Luego de que la LUW (Logical Unit of Word) es ejecutada, el coordinador de qRFC automáticamente procesa el siguiente llamado en concordancia con la secuencia de la cola.
 
 
 
Agradecimiento:
Ha agradecido este aporte: Juan Poderoso Blasco
Sobre el autor
Publicación académica de Sayil Emanuel López Valencia, en su ámbito de estudios para la Carrera Consultor Basis NetWeaver.
Sayil Emanuel López Valencia
Profesión: Sistemas Computacionales - Mexico - Legajo: WA24Q
✒️Autor de: 45 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP Fiori
- Carrera Consultor Basis NetWeaver Nivel Avanzado
- Carrera Consultor Basis NetWeaver Nivel Inicial