✒️ABAP Los módulos de funciones RFC
ABAP Los módulos de funciones RFC
Módulo de función RFC:
--------------------------------------------------------------------------------------------
Llamada a una función que existe en un sistema distinto al del programa que la llama.
Su objetivo principal es el de acceder a otros ambientes 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 una función RFC se usa la cláusula DESTINATION al momento de declarar la función.
La RFC llamada no existe en el sistema origen pero si debe existir en el sistema destino.
--------------------------------------------------------------------------------------------
Ejemplo:
Sistema DTR - Creo la RFC
FUNCTION ZOBTENER_CLIENTES
…"Leo el registro
ENDFUNCTION.
Sistema DCR - Llamo a la RFC
CALL FUNCTION ZOBTENER_CLIENTES
DESTINATION v_dcr
EXPORTING kunnr = v_cliente
TABLES Customer = t_clientes
EXCEPTIONS no_record_found = 01.
Nota: Si se produce un error en la ejecución, los mensajes de error son alojados en las siguientes variables del sistema:
SY-MSGID.
SY-MSGTY.
SY-MSGNO.
SY-MSGV1.
SY-MSGV2.
SY-MSGV3.
SY-MSGV4.
--------------------------------------------------------------------------------------------
Crear:
Se crea de la misma manera que se crea una función, a través de SE37.
En la solapa ATTRIBUTES se debe seleccionar la opción REMOTE ENABLED MODULE.
Los parámetros solo se pueden pasar por valor, esto se hace tildando la opción PASS VALUE para cada parámetro.
Las funciones RFC pueden ser utilizadas como módulos de función normales:
Declarando CALL FUNCTION DESTINATION 'NONE'.
O declarando la función sin el agregado de la cláusula DESTINATION.
--------------------------------------------------------------------------------------------
Tipos:
Sincrónicas:
Ambos sistemas deben estar disponibles al momento de la llamada de la función.
Generalmente es la más utilizada.
Transaccionales:
Los sistemas no necesitan estar disponibles al momento de la llamada a la función.
Un única ID de transacción es generado y los programas llamados son almacenados en el sistema junto con los datos.
Se debe utilizar el sufijo IN BACKGROUND TASK antes de la cláusula DESTINATION.
El sistema deja un log con el pedido en las tablas estándar de SAP ARFCSSTATE y ARFCSDATA.
Se accede a dichas tablas a través de SM58.
Cuando el programa que ejecuta la RFC realiza un COMMIT WORK, entonces es cuando la llamada remota es enviada al sistema remoto para su ejecución.
Se utiliza en casos específicos de actualizaciones que no se requiere que se realicen de forma inmediata.
Asincrónicas:
El programa llamador llama a la función RFC e inmediatamente después termina su procesamiento.
Luego, la función RFC se ejecuta independientemente del programa llamador.
Para crearla se debe utilizar el sufijo STARTING NEW TASK <taskname> antes de la cláusula DESTINATION.
--------------------------------------------------------------------------------------------
 
 
 
Sobre el autor
Publicación académica de Martin Alejandro Goya, en su ámbito de estudios para la Carrera Consultor ABAP.
Martin Alejandro Goya
Profesión: Ingeniero en Computacion - Argentina - Legajo: CJ13E
✒️Autor de: 49 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Martin Goya