![](/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/440.jpg)
1. ¿Qué es un módulo de función RFC?
Consiste en una llamada a una función que existe en un sistema distinto al programa que la llama.
Objetivo principal: acceder otros ambientes para obtener datos.
Se debe agregar la cláusula DESTINATION al declarar la función.
No existe en el sistema origen, pero si debe existir en el sistema destino.
Si hay algún error en la ejecución de una RFC, los mensajes 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.
2. ¿Como crear una RFC?
Se crea de la misma forma que se crea una función.
Debemos acceder a la transacción se37 y se completan los 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 Modulo de acceso remoto (remote enabled module).
Los parámetros que se crean en una función RFC no puede pasar por referencia, deben pasarse por valor.
Debemos de tildar en Transportar valores (Pass value) por cada parámetro en las solapas:
IMPORT, EXPORT y CHANGNING.
Las funciones creadas como RFC, puede ser usadas como módulos de función normales:
- Usando: CALL FUNCTION DESTINATION 'NONE'.
- usando la declaración de un módulo de función normal, sin agregar la cláusula DESTINATION.
3. Tipos de RFC
- Sincrónicas: ambos sistemas deben estar disponibles al momento de llamar a la función.
Basadas en una comunicación sincrónica.
Usaremos este tipo para la mayoría de nuestros desarrollos.
- Transaccionales: no necesitan estar disponibles al momento de la llamada a la función.
Tiene un único ID generado, los programas son almacenados en el sistema junto con los datos.
Se debe usar el sufijo: IN BACKGROUND TASK.
El sistema deja un log con el pedido de la llamada remota en las tablas estándar de SAP:
ARFCSSTATE y ARFCSDATA con los valores de los parámetros pasados en la ejecución.
ARFCSSTATE y ARFCSDATA: almacenan información relacionada a la llamada del RFC.
Para ver el log usamos la transacción SM58.
SM58: nos permiten ver el log de errores de las RFC que se ejecutaron en el sistema.
Cuando un programa ejecuta la RFC ejecuta la sentencia COMMIT WORK, es cuando la llamada remota es enviada al sistema remoto para su ejecución.
Usaremos este tipo para ciertos casos específicos de actualizaciones donde no se requiera que dichas actualizaciones se realicen en forma inmediata, si o cuando el programa llamador ejecute un COMMIT WORK.
- Asincrónicas: el programa llamador, llama la función RFC y después termina su procesamiento, luego esta función ejecuta independientemente del programa llamador.
Para crear este tipo se debe usar el sufijo STARTING NEW TASK.
No es posible debugear una llamada de una función remota de otro sistema.
Cuando se pruebe una llamada RFC de un sistema sap a otro sistema sap se puede usar el debuger para monitorear la función RFC en el sistema remoto.
El debuger abap se ejecuta en el sistema local.
Los valores de los datos y otras informaciones de ejecución de la función remota son pasados al sistema remoto.
 
 
 
Sobre el autor
Publicación académica de José Luis Villafán Salinas, en su ámbito de estudios para la Carrera Consultor ABAP.
José Luis Villafán Salinas
Profesión: Ingeniería de Sistemas - Peru - Legajo: CM59C
✒️Autor de: 60 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: PartTime
Presentación:
Tengo el agrado de dirigirme a usted, con el objetivo de formar parte de un equipo de trabajo y superarme en todos los aspectos de mi vida. considero que podría integrarme adecuadamente al trabajo.
Certificación Académica de José Villafán