✒️ABAP Los módulos de funciones RFC
ABAP Los módulos de funciones RFC
MÓDULOS DE FUNCIONES RFC: Consiste en una llamada a un módulo de funciones que existe en un sistema SAP o no SAP, distinto al sistema del programa en donde se realiza la llamada del módulo de funciones. Es decir en un programa ABAP llamamos a un módulo de funciones que no existe en el sistema donde nos encontramos sino que existe en otro sistema SAP o no SAP con el que nos comunicamos. El objetivo principal de los módulos de funciones RFC es acceder a otros ambientes del sistema 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 un módulo de funciones RFC se debe agregar la cláusula DESTINATION al momento de declarar el módulo de funciones. El módulo de funciones RFC llamado no existe en el sistema origen pero si debe existir en el sistema destino, el sistema de configuraciones RFC lo llamamos a través de la tx SM59.
CREAR UN MÓDULO DE FUNCIONES RFC: Este se crea a través de un módulo de funciones normal a través de la tx SE37, con la excepción de que debemos seleccionar en la solapa ATRIBUTOS la opción MÓDULO DE ACCESO REMOTO. Los parámetros que se crean en un módulo de funciones RFC no se pueden pasar por referencia, sino que deben pasarse por valor. Esto se logra tildando el check TRANSPORTAR VALORES para cada parámetro en lasa solapas IMPORT, EXPORT y CHANGING. A su vez los módulos de funciones creados como RFC, pueden ser utilizados como módulos de funciones normales, esto se logra de 2 maneras:
- Utilizando la declaración CALL FUNCTION DESTINATION 'NONE'.
- Utilizando la declaración de un módulo de función normal, sin el agregado de la cláusula DESTINATION.
LOS TIPOS DE MÓDULOS DE FUNCIONES RFC: Existen 3 tipos:
- Sincrónicos: en donde ambos sistemas origen y destino, deben estar disponibles al momento de la llamada del módulo de funciones. Estos módulos de funciones RFC están basados en una comunicación sincrónica. Esta se utiliza generalmente en la mayoría de los desarrollos ABAP.
- Transaccionales: en donde ambos sistemas origen y destino no necesitan estar disponibles al momento de la llamada al módulo de funciones. Un único ID de transacción es generado y los programas llamados son almacenados en el sistema junto con los datos. Para crear este tipo de módulos funcionales debemos utilizar el sufijo IN BACKGROUND TASK. Este módulo de funciones deja un log de errores (se puede visualizar a través de tx SM58) con el pedido de la llamada remota en las tablas bases de datos estándar de SAP ARFCSSTATE y ARFCSDATA con todos los valores parámetros pasados en la ejecución.
Las tablas de SAP ARFCSSTATE y ARFCSDATA son tablas de bases de datos estándar del sistema SAP que almacenan información relacionada a la llamada de módulos funcionales RFC transaccionales en el sistema. Cuando el programa que ejecuta el módulo de funciones ejecuta la sentencia COMMIT WORK, entonces es cuando la llamada remota es enviada al sistema remoto para su ejecución. Es por ello que este tipo de módulo de funciones transaccionales se utilizarán cuando el programa llamador ejecuta la sentencia COMMIT WORK.
- Asincrónicos: en donde el programa llamador, llama al módulo de funciones RFC e inmediatamente después termina su procesamiento. Luego el módulo de funciones RFC se ejecuta independientemente del programa llamador. Se crea utilizando el sufijo STARTING NEW TASK. No es posible debuggear la llamada desde el sistema el sistema remoto, solo la ejecución desde el sistema SAP.
 
 
 
Sobre el autor
Publicación académica de Jean Carlos Lopez, en su ámbito de estudios para la Carrera Consultor ABAP.
Jean Carlos Lopez
Profesión: Ingeniero en Infom?tica - Venezuela - Legajo: AG33O
✒️Autor de: 75 Publicaciones Académicas
🎓Cursando Actualmente: Consultor en SAP BASIS Nivel Inicial
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Certificación Académica de Jean Lopez