✒️ABAP Los módulos de funciones RFC
ABAP Los módulos de funciones RFC
Módulos de función RFC.
¿Qué es un módulo de función RFC?.
Consiste en una función que existe en un sistema distinto al del programa que la llama.
El objetivo de las RFC es acceder a otros ambientes para obtener datos.
La comunicación puede darse entre sistemas SAP o entre un sistema SAP y otro sistema que no sea SAP.
Si se produjera un error en la ejecución de una RFC los mensajes de error son devueltos por el sistema remoto y alojados en las variables del sistema SY-MSGID, SY-MSGTY, SY-MSGNO, SY-MSGV1, SY-MSGV2, SY-MSGV3 y SY-MSGV4.
¿Cómo crear una RFC?.
Desde la SE37 en la pestaña "Atributos" de debe de marcar la opción "Módulo de acceso remoto.
Los parámetros que se crean en una función RFC no pueden pasar por referencia, deben pasarse por valor, para ello se marca el check Transportar valores para cada uno de los parámetros (IMPORT, EXPORT, CHANGING).
Estas funciones se pueden utilizar también como funciones normales, dos formas:
- Utilizando la declaración CALL FUNCTION DESTINATION 'NONE'.
- Utilizando la declaración de un módulo de función normal, sin el agregado de la cláusula DESTINATION.
Tipos de RFC.
Tres tipos de RFC.
- Sincrónicas. Ambos sistemas deben estar disponibles al momento de la llamada de la función. (La que se utiliza normalmente.
- Transaccionales. Los sistemas no necesitan estar disponibles al momento de la llamada a la función. Un único ID de transacción es generado y los programas llamados son almacenados en el sistema junto con los datos. Para crear una RFC transaccional debo utilizar el sufijo IN BACKGROUND TASK.
Sintaxis:
CALL FUNCTION 'nombre_funcion'
IN BACKGROUND TASK
DESTINATION 'destino'
EXPORTING ...
En la transacción SM58 se encuentra el log de las RFC transaccionales alojadas en tablas estándar de SAP ARFCSSTATE y ARFCSDATA.
La llamada a la función remota se realiza cuando el programa con la RFC ejecuta la sentencia COMMIT WORK.
- Asincrónicas. El programa llamador, llama a la función RFC y inmediatamente después termina su procesamiento. Luego la función RFC se ejecuta independientemente del programa llamador. Para crear una RFC asincrónica debo utilizar el sufijo STARTING NEW TASK.
Sintaxis.
CALL FUNCTION nombre_funcion STARTING NEW TASK nombre_tarea.
DESTINATION ...
EXPORTING...
.....
No se puede debuguear una RFC de otro sistema.
Entre sistemas sap se puede usar el debuguer para monitorizar la ejecución de la función en el sistema remoto, con las llamadas remotas el debuguer se ejecuta en sistema local los valores de los datos son pasados al sistema remoto.
 
 
 
Sobre el autor
Publicación académica de Carlos Rodriguez Escudero, en su ámbito de estudios para la Carrera Consultor ABAP.
Carlos Rodriguez Escudero
Profesión: Desarrollador Abap - España - Legajo: RR34T
✒️Autor de: 42 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Certificación Académica de Carlos Rodriguez