![](/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/490.jpg)
FUNCION RFC
- Consiste en una llamada a una función que existe en un sistema distinto al del programa que le llama.
- El 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 y otro sistema 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.
Los módulos de funciones RFC se pueden crear en la tcode SE37.
nota: los errores producidos en el sistema remoto son almacenados en las variables del sistema:
- SY-MSGID
- SY-MSGTY
- SY-MSGNO
- SY-MSGV1
- SY-MSGV2
- SY-MSGV3
- SY-MSGV4
CREANDO UNA RFC
Se crea de la misma manera por la tcode SE37, complentando los mismos parámetros qe una función normal. Tenemos que hacer Remote Enabled Module.
Los parámetros deben de ser pasados por valor y no por referencia.
También podemos utilizar las funciones RFC en nuestros códigos ABAP. Para ello tenemos que colocar la siguiente sintáxis: CALL FUNCTION DESTINATION 'NONE'
TIPOS RFC
- Sincrónicas: Ambos sistemas deben estar dispnibles al momento de la llamada de la función. Estas RFC están basadas en una comunicación sincrónica.
- Transaccionales: los sistemas no necesitan estar dispnibles 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 como se muestra a continuación:
CALL FUNCTION 'RFC_FUNCTION_N'
IN BACKGROUND TASK
DESTINATION 'DEST'
EXPORTING ....
TABLES .....
En una función RFC, el sistema deja un log con el pedido de la llamada remota en las tablas estándar de SAP ARFCSTATE y ARFCSDATA con todos los valores de los parámetros pasados en la ejecución. Dichas tablas son tabla estándares del sistema y almacenan información relacionada a la llamada de RFC transaccional.
- tcode SM58 nos permite ver el log de errores de las RFC transaccionales que se ejecutaron en el sistema.
3. Asincrónicas: el programa llamador llama a la función RFC e inmediatamente después termina su procesamiento. Para utilizar una RFC asincrónica debo utilizar el sufijo STARTING NEW TASK como se muestra a continuación:
CALL FUNCTION RemoteFunction STARTING NEW TASK taskname
DESTINATION...
EXPORTING ...
TABLES ...
EXCEPTIONS ...
 
 
 
Sobre el autor
Publicación académica de Juan Pablo Giron Ruiz, en su ámbito de estudios para la Carrera Consultor ABAP.
Juan Pablo Giron Ruiz
Colombia - Legajo: FG66E
✒️Autor de: 21 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Ingeniero electrónico con conocimientos sólidos en ciencias de la computación y magister en ciencias de ingeniería eléctrica. proactivo y amante a los retos profesionales.
Certificación Académica de Juan Giron