✒️ABAP Los módulos de funciones RFC
ABAP Los módulos de funciones RFC
MODULO DE FUNCIÓN RFC
Consiste en la llamada a una función que existe en un sistema distinto al del programa que la llama,
Su objetivo es acceder a otros ambientes para obtener datos.
La comunicación puede realizarse entre sistemas SAP o entre un sistema SAP y otro que no sea SAP.
DESTINATION - Esta clausula se debe agregar al momento de declarar la función para llamara a una función RFC.
La RFC - Debe existir en el sistema destino, pero no existe en el sistema origen.
Ejemplo al utilizar RFC:
Si se quisiera leer un registro de un cliente del sistema o ambiente DCR, a travez de un programa ABAP existente en el ambiente DTR, creariamos una RFC en DCR que devuelva los registros del cliente.
Luego se llama a esta función en el ambiente DTR, utilizando un destino que previamente hemos creado a travez de la transacción SM59.
CREAR UNA RFC
Se crea de la misma manera que se crea una función, Se accede a la transacción SE37 , se completan los mismo parametros que se llenan al crear una función, pero no se debe seleccionar en la Pestaña ATRIBUTOS la opción Modulo de acceso remoto.
- Los parametros que se crean en la función RFC no se pueden pasar por referencia , deben pasarse por valor,
- Esto se logra activando el check TRANSPORTAR VALORES (Pass Value) para cada parametro en la Solapa Insert, Export, Changing
- Las funciones creadas como RFC pueden ser usadas como Modulo de Funciones Normales, esto se logra de Dos Maneras:
Usando la declaración CALL FUNCTION DESTINATION 'NONE'.
Usando la declaración de un modulo de función normal sin el agregado de la clausula DESTINATION
TIPOS DE RFC
Hay tres tipos:
- SINCRONICAS- Al momento de llamar a la función ambos sistemas deben estar disponibles, Generalmente se usa para todos los desarrollos.
- TRANSACCIONALES - Los sistemas no necesitan estar disponibles cuando se llama a la función , Un 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
En la RFC transaccionales , el sistema deja un LOG con el pedido de la llamada remota en las tablas estandar de SAP ARFCSSTATE Y ARFCSDATA con todos los valors de los parametros paados en la ejecución.
ARFCSSTATE Y ARFCSDATA : Son tablas estandar de SAP que almacenan información relacionada a la llamada RFC transaccionales en el sistema.
SM58 : Permite visualizar el Log de erroresdejado por la RFC Transaccionales. o en las tablas estandar RAFCSSTATE Y ARFCSDATA.
- Cuando el programa que ejecuta la RFC ejecuta la sentencia COMMIT WORK, entonces es cuando la llamada remota es enviada al sistema remoto para su ejecución.
- ASINCRONICAS : El programa llaama a la función RFC e inmediatamente despues termina su procesamiento, Luego la RFC se ejecuta independientemente del programa llamador.
STARTING NEW TASK : Se usa este sufijo para crear una RFC asincronica
CALL FUNCTION RemoteFunction STARTING NEW TASK Taskname
- No es posible hacer un debugger a una llamada o una funcion remota de otro sistema.
- Cuando probamos una llamada a una RFC desde un sistema SAP a otro sistema SAP podemos usar el Debugger monitorear la ejecución de la función RFC en el sistema remoto.
- Con la llamada remota el debugger 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 Victor Rodr?guez Azc?rate, en su ámbito de estudios para la Carrera Consultor ABAP.
Victor Rodr?guez Azc?rate
Profesión: Ingeniero de Sistemas - Peru - Legajo: AK14S
✒️Autor de: 63 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Victor Rodr?guez