✒️ABAP Los módulos de funciones RFC
ABAP Los módulos de funciones RFC
MODULO DE FUNCION: Es una llamada a una funcion que existe en un sistema distinto al del programa.
El objetivo principal de la RFC es acceder a otros ambientes para obtener datos.
La comunicacion puede darse entre sistemas Sap o entre un sistema sap y otro diferente.
Para llamar a una funcion RFC debemos agregarle la palabra DESTINATION cuando declaramos la funcion.
La RFC llamada no existe en el sistema origen pero si debe existir en el sistema destino.
EJEMPLO DE RFC:
Si queremos leer un registro de un cliente del ambiente DCR a traves de un programa existente en el ambiente DTR, tenemos que crear una RFC que devuelva los registros de los clientes.
Llamamos a esta funcion en el ambiente DTR, utilizando un destino que previamente hemos creado a traves de la transaccion SM59.
Si se produce un error en la ejecucion 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, SYMSGV1, SY-MSGV2, SY-MSGV3 y SY-MSGV4.
COMO CREAR UNA RFC: Se crea de la misma manera que una funcion, es decir, se accede a la trx SE37 y se completan los mismos parametros que una funcion, excepto que debemos seleccionar en Atributos la opcion Modulo de acceso remoto.
Los parametros que se crean en una RFC deben tener marcados el Check de transportar valores si no se producira un error de sintaxis.
Las funciones creadas como RFC pueden ser utilizadas como modulos de funcion Normales. Esto se consigue de dor formas:
- Utilizando CALL FUNCTION DESTINATION 'NONE'.
- Utilizando la declaracion de un modulo de funcion normal sin DESTINATION.
TIPO DE RFC: Existen 3 tipos:
Sincronicas: ambos sistemas deben de estar disponibles al momento de llamar a la funcion. Estan basadas en una
comunicacion sincronica. Es el tipo que utilizaremos para la mayoria de nuestros desarrollos.
Transaccionales: Los sistemas no necesitan estar disponibles al momento de la llamada a la funcion. Se genera un unico ID de transaccion y los programas llamados son almacenados en el sistema junto con los datos. Se crea utilizando el sujito IN BACKGROUND TASk.
En la RFC el sistema deja un log con el pedido de la llamada ramos en las tablas estandar ARFCSSTATE y RFCSDATA con todos los valores de los parametros pasados en la ejecucion. Para visualizar el log usamos la trx SM58.
Cuando el programa que ejecuta la RFC ejecuta la sentencia COMMIT WORK es cuando la llamada remota es enviada al sistema remoto para su ejecucion.
Asincronicas: El programa llamador, llama a la RFC y termina su procesamiento despues la RFC se ejecuta independientemente del programa llamador.
Para crear una RFC asincronica usamos el sufijo STARTING NEW TASK.
 
 
 
Sobre el autor
Publicación académica de Gema Moreno Ferreiro, en su ámbito de estudios para la Carrera Consultor ABAP.
Gema Moreno Ferreiro
Profesión: Operario Especializado - España - Legajo: QO11N
✒️Autor de: 41 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Gema Moreno