✒️ABAP Los módulos de funciones RFC
ABAP Los módulos de funciones RFC
Modulo de Función RFC: Consiste en una llamada a una función que existe en un sistema distinto al del programa que la llama.
Objetivo principal de las RFC: Acceder a otros ambientes para obtener datos. La comunicación puede darse entre sistemas SAP o entre un sistema SAP y otro que no sea SAP.
DESTINATION: Cláusula que se debe agregar para llamar a una función RFC.
La RFC llamada, no existe en el sistema origen pero si debe existir en el sistema destino.
Si se produce 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.
RFC: Llamada a función remota. Es un protocolo que permite a un programa ejecutar código en otra máquina remota sin tener que preocuparse por las otras comunicaciones entre ambos.
CREACION DE RFC
Se crea de la misma manera que se crea una función. Transacción SM37 y se completan los mismos parámetros que se completan 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 se pueden pasar por REFERENCIA, deben pasarse por valor.
Transportar Valores (Pass Value): casillero que se debe tildar para cada parámetro en las solapas IMPORT, EXPORT y CHANGING.
Las funciones creadas como RFC, pueden utilizarse como modulos de función normales. Esto se logra utilizando la declaración:
CALL FUNCTION DESTINATION ‘NONE’ ó
à Existen 3 tipos:
Sincrónicasà ambos sistemas deben estar disponibles al momento de la llamada de la función. Estas RFC están basadas en una comunicación. generalmente se utiliza las RFC sincrónicas.
TransaccionalesàLos sistemas no necesitan estar disponibles al momento de la llamada a la función. El ú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 hay que utilizar el sufijo IN BACKGROUND TASK
En las RFC transaccionales, el sistema deja un log con el pedido de la llamada remota en las tablas estándar de SAP ARFCSSTATE y ARFCSDATA con todos los valores de los parámetros pasados en la ejecución.
Se utiliza la RFC transaccional para ciertos casos específicos de actualizaciones donde no se requiera que dichas actualizaciones se realicen en forma inmediata sino recién cuando el programa llamador ejecuta un COMMIT WORK
COMMIT WORK: Sentencia que ejecuta el programa, que ejecuta la RFC, cuando la llamada remota es enviada al sistema remoto para su ejecución.
TABLAS ARFCSSTATE y ARFCSDATAàSon tablas estándar de SAP que almacenan información relacionada a la llamada de RFC transaccionales en el sistema.
SM58: Transacción que permite visualizar el log de errores de las RFC transaccionales que se ejecutaron en el sistema.
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.
STARTING NEW TASK: Sufijo utilizado para crear una RFC asincrónica
No es posible debaguear una llamada a una función remota de otro sistema, sin embargo cuando
probamos una llamada a una RFC desde un sistema SAP a otro sistema SAP podemos utilizar el debbuger para monitorear la ejecución de la función RFC en el sistema remoto. Con las llamadas remotas el debbuguer ABAP se ejecuta en el sistema local. Los valores de los datos y otra información de ejecución de la función remota son pasados al sistema remoto
 
 
 
Sobre el autor
Publicación académica de Sabrina Soledad Rodriguez, en su ámbito de estudios para la Carrera Consultor ABAP.
Sabrina Soledad Rodriguez
Profesión: Consultor Sap Fi - Co - Bs - Argentina - Legajo: SQ30J
✒️Autor de: 55 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Certificación Académica de Sabrina Rodriguez