![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP Los módulos de funciones RFC
ABAP Los módulos de funciones RFC
![ABAP Los módulos de funciones RFC ABAP Los módulos de funciones RFC](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/244.jpg)
4| MODULO DE FUNCIONES RFC
Llamada a un modulo de funciones que existe en un sistema SAP o no SAP.
El objetivo principal es acceder a otros ambientes del sistema para obtener datos.
Para llamar a un módulo de funciones RFC se debe agregar la cláusula DESTINATION.
Ej:
CLEAR v_destino.
*Armado del Destination.
IF sy-sysid(3) EQ 'LD0'. "Desarrollo
v_destino = 'BD3ARG110'.
ELSEIF sy-sysid(3) EQ 'LK0'. "Testing
v_destino = 'BK3ARG311'.
ELSEIF sy-sysid(3) EQ 'LPO'. "Producción
v_destino = 'BP3ARG311'.
ENDIF.
CALL FUNCTION 'Z_OV_RFC_ESTADO_DEUDA'
DESTINATION v_destino
EXPORTING
i_vkont = v_vkont
i_fecha_int = sy-datum
TABLES
t_account = ti_account
t_det_xblnr = ti_det_xblnr.
* El módulo de funciones RFC llamado no existe en el sitema origen pero si debe existir en el sistema destino.
SM59 - configuración de las conecciones RFC. Crear destinos RFC
* Si se produce un error en la ejecución de un módulo de funciones RFC
los mensajes de error serán devueltos por el sistema remoto y alojados en las siguientes variables del sistema.
SY-MSGID
SY-MSGTY
SY-MSGNO
SY-MSGV1
SY-MSGV2
SY-MSGV3
SY-MSGV4
Creación de módulo de funciones RFC (de la misma forma que las funciones)
en forma ejec. -> "módulo de acceso remoto"
- los Parámetros que se crean en un RFC NO pueden pasar por referencia, deben pasarse por valor.
tildando el check TRANSPORTAR VALORES (Para cada parámetro en las solapas IMPORT, EXPORT y CHANGING)
Las RFC pueden ser utilizados como módulos de funciones normales:
-> utilizando CALL FUNCTION DESTINATION 'NONE'
-> utilizando sin el agregado de la cláusula DESTINATION (cómo una función normal)
-----------------------------------------------------------
TIPOS DE MÓDULOS DE FUNCIONES RFC (3 TIPOS)
-> Sincrónicos:
El sistema de origen y de destino estan disponibles al momento de la llamada del módulo de funciones
(Se usa para la mayoría de los desarrollos)
-> Transaccionales:
Los sistemas de origen y de destino no necesitan estar disponibles al momento de la llamada al módulo de funciones.
Debemos utilizar el sufijo IN BACKGROUND TASK
* Para casos específicos de actualizaciones donde no se requiera que dichas actualizaciones se realicen en forma inmediata, sino cuando el programa llamador ejecuta la sentencia COMMID WORK
CALL FUNCTION 'Z_OV_RFC_ESTADO_DEUDA' IN BACKGROUND TASK
DESTINATION v_destino
EXPORTING
i_vkont = v_vkont
i_fecha_int = sy-datum
TABLES
t_account = ti_account
t_det_xblnr = ti_det_xblnr.
Tablas ARFCSSTATE y ARFCSDATA
Son tablas bases de datos estándar del sistema SAP que almacenan información
relacionada a la llamada de módulos de funciones RFC transaccionales en el sistema.
Para visualizar este log, utilizamos la transacción estándar SM58
Cuando el programa que ejecuta el módulo de funciones RFC ejecuta la sentencia
COMMIT WORK, entonces es cuando la llamada remota es enviada al sistema remoto
para su ejecución
-> Asincrónicos: el programa llamador, llama al módulo de funciones RFC e inmediatamente
después termina su procesamiento.
El módulo de funciones RFC se ejecuta independientemente del programa llamador.
Utilizamos el sufijo STARTING NEW TASK
CALL FUNCTION 'Z_OV_RFC_ESTADO_DEUDA' STARTING NEW TASK v_taskname
DESTINATION v_destino
EXPORTING
i_vkont = v_vkont
i_fecha_int = sy-datum
TABLES
t_account = ti_account
t_det_xblnr = ti_det_xblnr.
 
 
 
Agradecimiento:
Ha agradecido este aporte: Octavio Pasciucco
Sobre el autor
Publicación académica de Maximiliano Andres Fraga, en su ámbito de estudios para la Carrera Consultor ABAP.
Maximiliano Andres Fraga
Profesión: Desarrollador - Argentina - Legajo: PX18Q
✒️Autor de: 20 Publicaciones Académicas
🎓Cursando Actualmente: Consultor en SAP Fiori
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime