✒️ABAP Los módulos de funciones RFC
ABAP Los módulos de funciones RFC
Lección 4: Módulos de función RFC (Remote Function Call)
Es una llamada a una función que existe en un sistema distinto al del programa que la llama.
El objetivo principal de los RFC es acceder otros ambientes para obtener datos. La comunicación puede ser entre dos sistemas SAP o un sistema SAP y otro no SAP.
La RFC llamada no existe en el sistema de origen, pero si en el de destino.
Para llamar a una RFC se debe agregar la cláusula DESTINATION al momento de declarar la función.
Si se producen errores 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, sy-msgv4.
2. Cómo crear una RFC?
Las RFC se crean de la misma manera que cualquier función, es decir, a través de la transacción SE37 y completando los mismos parámetros que se llenan en la creación de cualquier función. La diferencia está en el TAB Atributos, en la cual se selecciona la opción Módulo de acceso remoto (Remote Enabled Module).
Los parámetros que se van a crear en una función RFC, se pasan solo por valor, no por referencia. Esto se logra marcando el checkbox Transportar valores (Pass value) para cada parámetro en los tabs Import, Export y Modif. (Changing).
Las funciones creadas como RFC también pueden ser utilizadas como funciones normales. Esto se logra de dos maneras:
-) CALL FUNCTION DESTINATION ‘NONE’
-) Utilizando la declaración de un módulo de función normal, sin el agregad de la cláusula DESTINATION.
3. Tipos de RFC
Existen tres tipos de RFC:
-) Sincrónicas: ambos sistemas deben estar disponibles al momento de la llamada de la función. Están basadas en un tipo de comunicación sincrónica. Son generalmente las más usadas para los desarrollos.
-) Transaccionales: Los sistemas no necesitan estar disponibles al momento de la llamada a la función. Se genera un ID de transacción único y los programas llamados son almacenados en el sistema, junto con los datos. Se crean utilizando el sufijo IN BACKGROUND TASK.
En las RFC transaccionales, el sistema graba un log con el pedido de la llamada remota en las tablas estándar de SAP: ARFCSTATE y ARFCSDATA, con todos los valores de parámetros pasados en la ejecución. Estas tablas almacenan información de las llamadas RFC transaccionales.
La transacción SM58 nos permite visualizar el log de errores de las RFC transaccionales que se ejecutan en el sistema.
Cuando el programa que ejecuta la RFC ejecuta un COMMIT WORK, es cuando la llamada remota es enviada al sistema remoto para su ejecución.
Los RFC transaccionales son usados para ciertos casos específicos de actualizaciones donde no se requiere que éstas estén sean realizadas de forma inmediata, es decir, solo cuando se ejecute un COMMIT WORK.
-) Asincrónicas: El programa llamador, invoca a la función RFC e inmediatamente termina su procesamiento. La ejecución de la RFC ocurre independientemente del programa llamados. Para crear una RFC Asincrónica, se utiliza el sufijo STARTING NEW TASK.
 
 
 
Sobre el autor
Publicación académica de Oscar Perez, en su ámbito de estudios para la Carrera Consultor ABAP.
Oscar Perez
Profesión: Ingeniero de Sistemas. Consultor y Desarrollador en Peoplesoft - Canada - Legajo: FD38F
✒️Autor de: 105 Publicaciones Académicas
🎓Cursando Actualmente: Master en Programación ABAP Orientado a Objetos
🎓Egresado de los módulos:
Certificación Académica de Oscar Perez