✒️ABAP Los módulos de funciones RFC
ABAP Los módulos de funciones RFC
MÓDULO DE FUNCIÓN RFC: (llamada a función remota, es decir que se encuentra fuera del programa de donde se mandó llamar).
por medio de las RFC's se puede acceder a otros ambientes para obtener datos (la comunicación puede ser hacia SAP o un programa diferente).
Para llamar una RFC se agrega la palabra DESTINATION.
DESTINATION: (se usa para especificar un destino de la RFC).
SM59: Transacción estándar que se usa para configurar las RFC's.
En caso de obtener algún error en la RFC este se documenta en las variables de sistema: SY-MSGID, SY-MSGNO, SY-MSGV1, SY-MSGV2, SY-MSGV3, SY-MSGV4.
COMO CREAR UN RFC:
se crean desde la SE37, completando los mismos parámetros que se usan para una función, dentro de atributos se selecciona "Módulo de acceso remoto".
para un RFC siempre se pasan los parámetros por valor. (seleccionar la opción de "pass value", dentro delas pestañas de import, export y changing.
las RFC's pueden usarse como funciones normales SIN indicarles la cláusula DESTINATION.
TIPOS DE RFC:
Existen 3 tipos: (Sincrónicas, transaccionales, Asincrónicas)
SINCRÓNICAS: (Ambos sistemas deben estar disponibles al momento de la llamada de la función, se basan en una comunicación síncrona), es la más usada.
TRANSACCIONALES: (Los sistemas no necesitan estar disponibles al momento de la llamada, se genera un único ID de transacción y los programas son almacenados en el sistema. se usa el prefijo IN_BACKGROUND_TASK, Trabaja con un log dentro de las tablas ARFCSSTATE y ARFCSDATA (son tablas estándar del sistema que almacenan información de la RFC)
Se usa para cuando los datos NO se requieren en el momento (tiempo real)
ej:
CALL FUNCTION 'ALGO'
IN BACKGROUND TASK
DESTINATION 'DEST'
para visualizar el log de una RFC se usa SM58.
cuando se ejecuta la sentencia COMMIT_WORK es cuando el RFC se comunica con el otro sistema.
ASINCRÓNICAS: (El programa llamdor, llama a la función RFC e inmediatamente después termina su procesamiento. se usa la palabra STARTING_NEW_TASK.
NO es posible debuggear una RFC de otro sistema, sí los dos sistemas fueran SAP es posible usar el debuugger.
Ejemplo de llamada a una función RFC:
DATA: vl_destino(6) TYPE c.
* Destination
vl_destino = 'BD3110'.
*Ejemplo de uso
CALL FUNCTION 'Z01FIAP_EXTR_RFC_RETEN_PDF'
DESTINATION vl_destino
EXPORTING
bukrs = d_bukrs
belnr = d_belnr
gjahr = d_gjahr
autorizacion = d_autoriz
firma = d_firma
rspolname = d_rspolname
witht = d_witht
zlsch = d_zlsch
IMPORTING
bin_length = bin_length
TABLES
content_bin = content_bin2
 
 
 
Sobre el autor
Publicación académica de Gerardo De La Rosa Rivera, en su ámbito de estudios para la Carrera Consultor ABAP.
Gerardo De La Rosa Rivera
Profesión: Ingeniero en Sistemas Computacionales - Mexico - Legajo: OO30U
✒️Autor de: 39 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Inicial
Certificación Académica de Gerardo De