![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP Los módulos de funciones RFC
ABAP Los módulos de funciones RFC
![ABAP Los módulos de funciones RFC ABAP Los módulos de funciones RFC](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/125.jpg)
MODULOS DE FUNCIÓN RFC
Consiste en una llamada a una función que existe en un sistema distinto al del programa que la llama.
Su objetivo principal de las RFC es acceder a otros ambientes para obtener datos.
La comunicación puede darse entre sistemas SAP o entre un sistema SAP que no sea SAP.
Para llamar a una función RFC se debe agregar la cláusula DESTINATION al momento de declarar la función, como vemos en el siguiente ejemplo.
La RFC llamada no existe en el sistema origen pero si debe existir en el sistema destino.
EJEMPLO.
En caso de querer leer un registro de un cliente en el sistema o ambiente DTR, a través de un programa ABAP existente en el ambiente DCR, crearíamos una RFC en DCR que devuelva los registros de los clientes.
Luego llamaríamos a esta función en el ambiente DTR, utilizando un destino que previamente hemos creado a través de la transacción SM59.
En el Sistema DTR, se crea la RFC
FUNCTION ZOBTENERCLIENTES.
..."leyendo el registro del cliente"
ENDFUNCTION.
En el Sistema DCR, llamo a la RFC
CALL FUNCTION ZOBTENER_CLIENTES
DESTINATION V_DCR
EXPORTING KUNNR=V_CLIENTE
TABLES CUSTOMER = T_CLIENTES
EXCEPTIONS NO_RECORD_FOUND = 01
En caso de presentarse 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.
CREANDO UNA RFC
Una función RFC se crea a través de la transacción SE37, y se completan los mismos parámetros que completamos para crear una función a excepción de que se debe seleccionar en la solapa de Atributos la opción Módulo de acceso remoto (Remote Enabled Module).
Los parámetros que se crean en una función RFC no se pueden pasar por Referencia, deben pasarse por valor. Esto se logra tildando el check Transportar valores (Pass value) para cada parámetro en las solapas IMPORT, EXPORT y CHANGING.
Las funciones creadas como RFC, pueden ser utilizadas como módulos de función normales, Así:
Utilizando la declaración CALL FUNCTION DESTINATION 'NONE'.
Utilizando la declaración de un módulo de función normal, sin agregar la cláusula DESTINATION.
TIPOS DE RFC:
Existen 3 tipos:
- Sincrónicas: Ambos sistemas deben estar disponibles al momento de la llamada de la función, se utilizan en la mayoría de los desarrollos.
- Transaccionales: Los sistemas no necesitan estar disponibles al momento de la llamada a la función. Para crear la RFC se debe utilizar el sufijo IN BACKGROUND TASK. Asi:
CALL FUNCTION 'RFC_FUNCTION_N'
IN BACKGROUND TASK
DESTINATIO 'DEST'
EXPORTING...
TABLES...
El sistema deja un log con el pedido de la llamada remota en las tablas estándar de SAP ARFCSSTATE y ARFCSDATA (estas son tablas estándar del sistema SAP que almacenan información relacionada a la llamada de RFC transaccionales en el sistema) con todos los valores de los parámetros pasados en la ejecución. El log se visualiza con la transaccion SM58.
Estas RFC se utilizan en ciertos casos específicos, cuando no es necesario que las actualizaciones no se realicen de forma inmediata, sino cuando el programa que llama ejecuta un COMMIT WORK.
Asincrónicas: El programa llamador, llama a la función RFC e inmediatamente después termina su procesamiento. Luego la función RFC se ejecuta independientemente del programa llamador. Las RFC asincrónas se crean así:
CALL FUNCTION RemoteFunction STARTING NEW TASK taskname
Destination ...
Exporting ...
Tables ...
Exception...
No es posible hacer debbug a una función remota de otro sistema. Pero cuando se esta probando el llamado a una RFC desde un sistema SAP a otro, se puede usar el debugger para monitorear la ejecución de la función RFC en el sistema remoto, con las llamadas remotas el debugger ABAP se ejecuta en el sistema local, los valores de los datos y otra info de ejecución de la función remota, son pasados al sistema remoto.
 
 
 
Sobre el autor
Publicación académica de Franco Alfieri Maringota Alvarado, en su ámbito de estudios para la Carrera Consultor ABAP.
Franco Alfieri Maringota Alvarado
Peru - Legajo: GF44M
✒️Autor de: 288 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP FI Nivel Inicial
- Carrera Consultor en SAP BI / BW BO Nivel Avanzado
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP BI / BW BO Nivel Inicial