Fundamentos de RFC
Los sistemas SAP y no SAP pueden comunicarse entre si utilizando llamadas de funciones remotas (Remote Function Calls). Un prerequisito para esto es que el administrador haya configurado el sistema de interfaces. Normalmente son utilizadas cuando los modulos de funciones se encuentran en sistemas diferentes permitiendo en un sistema SAP permitir llamdas a funciones entre dos sistemas SAP o entre un sistema SAP y otro no SAP externo aunque tambien es posible utilizar este modulo de funcion en un mismo sistema SAP.
RFC es un protocolo de interfaz de SAP basado en CPI-C (Common Programming Interface for communication) permitiendo la comunicacion entre programas de diferentes hosts. Esto perfite que aplicaciones externas puedas llamar funciones ABAP y los sistemas SAP contactar aplicaciones externas compatibles con RFC haciendo la vida más facil a los programadores ABAP que no tendrian que escribir sus propias rutinas de comunicación.
Para una llamada RFC, la interfaz:
1. Convierte todos los parametros al formato requerido en el sistema remoto.
2. Invoca a las rutinas de comunicacion que se requieren para la comunicacion con el sistema remoto
3. Maneja los errores que pueden ocurrir durante la comunicacion.
La sentencia CALL FUNCTION integra los pasos de procesamiento para el llamado de programas externos.
Destinos RFC
1. Conexiones ABAP
2. Conexiones internas
3. Conexiones TCP/IP
4. Conexiones via ABAP drivers
Para poder llamar a una funcion remota (en un sistema remoto), deberemos definir el sistema remoto como un destino en el sistema desde donde realizamos la llamada, tambien se requiere autorizacion de acceso para el sistema remoto.
Transaccion SM59
hay una funcion de busqueda para destinos que ya estan configurados que son tambien modificables
Es importante definir el tipo de usuario como COMUNICACION cuando se utilice un usuario para utilizar RFC
Variantes de Utilizacion de RFC
RFC sincronica (sRFC)
El sistema remoto debe estar disponible en el momento de la llamada
RFC asincronica (aRFC)
El sistema remoto debe estar disponible al momento de la comunicacion pero el sistema origen (desde donde se realiza la llamada a la funcion remota) no necesita una respuesta del sistema remoto para continuar su procesamiento
RFC transaccional (tRFC)
El sitema remoto no necesariamente debe estar disponible al momento de la llamadapor el programa en el sistema origen. Si una llamada es ejecutada y el sistema destino no esta disponible, la llamada se mantiene en una cola local del sistema origen. El programa que ejecuto la llamada puede proceder sin esperar si el resultado de la llamada fue exitoso o no. Exite un identificador de transaccion (TID) para cuando puedan existir probleas de comunicacion en la red y son reconocifo del lado del servidor.
RFC encolada (qRFC)
Para garantizar que se procesen en el mismo orden en el que se realizaron las llamadas en el sistema origen, permite enviar los parametros de la funcion remota pendientes en la cola si no existen ejecuciones anteriores. Luego la unidad logica de trabajo es ejecutada, el coordinador de qRFC automaticamente procesa el siguiente llamado en concordancia con la secuencia de la cola.