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 del programa que la llama.
La RFC llamada no existe en el sistema origen pero si debe existir en el sistema destino.
Si se produjera un error los mensajes de error son devueltos por el sistema remoto y alojados en las variables del sistema SYMSGID, SYMSGTY, SYMSGNO, SYMSGV1,SYMSGV2, SYMSGV3 y SYMSGV4.
2| Cómo crear una RFC
Se crea igual que una funcion, se accede a la transacción SE37 y se completa mismos parametros que complementamos para una funcion a excepción de que en la solapa Attributes Remote Enabled Module.
Los parámetros que se crean en una función RFC no se pueden pasar por Referencia, deben pasarse por valor
Esto se logra tildando el check Pass value para cada parametro en la solapas IMPORT, EXPORT y CHANGING.
Las funciones cradas como RFC, puden ser utilizadas como funciones normales.
Esto se logra de 2 maneras:
-Utilizando CALL FUNTION DETINATION 'NONE'
-Utilizando la declaracion de un modulo de funcion normal, sin el agregado de la clausula DESTINATION.
3| Tipos de RFC
Exiten 3 tipos:
- Sincrónicas: ambos sistemas deben estar disponibles al momento de la llamada de la función.
- Transaccionales: los sistemas no necesitan estar disponibles al momento de la llamada a la función. El sistema deja un log con el pedido de la llamada remota en las tablas estándar de SAP ARFCSSTATE y ARFCSDATA estos almacenan información relacionada a la llamada de RFC transaccionales y se utiliza la transacción SM58 para visualizarlo.
- Asincrónicas: el programa llamador, llama a la función RFC y inmediatamente después termina su procesamiento.
Para crear una RFC asincrónica debo utilizar el sufijo STARTING NEW TASK.