✒️ABAP Los módulos de funciones RFC
ABAP Los módulos de funciones RFC
Qué es el modulo de función RFC?
Consiste en una llamada de función que existe en un sistema distinto al del programa que la llama.
El objetivo principal de los RFC es acceder a otros ambientes para obtener datos. Se puede dar entre sistemas SAP o entre un sistema SAP y otro sistema que no sea SAP. Para llamar a una función RFC se debe agregar la claúsula 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.
Cuando utilizamos un RFC: si queremos leer un registro de un cliente del sistema o ambiente DTR, a travez de ABAP existente en el ambiente DCR, crear{iamos una RFC en DTR que devuelva registros de los clientes.
La función de ambiente DCR, utilizando un destino que previamente hemos creado a trav´z de la transacción SM59.
EN el sistema DTR, creo la RFC
FUNCTION ZOBTENERCLIENTES.
.." Leo los registro del cliente"
ENDFUNCTION.
En el 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
Si se produce un error en la ejecución 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, SY-MSGV1, SY-MSGV2, SY-MSGV3, SY-MSGV4.
Como se crea un RFC?
Una función RFC se crea de la misma manera que se crea una función- se accede con SE37 y se completan los mismo parámetros que completamos para crear la función a excepción de los ATRIBUTOS la opción Módulo de acceso remoto.
Los parámetros que se crean en una función RFC no se pueden pasar por la referencia, deben pasarse por valor.
Las funciones creadas como RFC, pueden ser utilizadas como módulos de funcion Normales, se logra de dos maneras diferentes.
- Utilizando la declaración CALL FUNCTION DESTINATION 'NONE'.
- Utilizando la declaración de módulo de función normal, sin el agregado de la cláusula DESTINATION.
Tipos de RFC
- Sincrónicas: ambos sistemas deben estar disponibles al momento de la llamada función: Estas RFC están basadas en una comunicación sincrónica.
- Se utiliza el tipo RFC sincrónico para la mayoría de nuestros desarrollos.
- Transaccionales: no necesitan estar disponibles al momento de la llama a la función. Un único ID de transacción es generado y los programas llamados son almacenados en el sistema junto con los datos. Para crear un RFC transaccional se debe utilizar el sufijo IN BACKGROUND TASK.
CALL FUNCTION 'RFC_FUNCTION_N'
IN BACKGROUND 'DEST'
EXPORTING ...
TABLES .....
Las RFC transaccionales el sistema deja un LOG con el pedido de la llamada remota y las tablas estándar de SAP ARFCSSTATE y ARFCSDATA. son todos los valores de los parámetros pasados en la ejecución. Para visualizarlas de utiliza la transacción SM58. Se usa para visualizar el log de errores de las RFC.
Cuando el programa que ejecuta la RFC ejecuta la sentencia COMMIT WORK, es cuando la llamada remota es enviada al sistema remoto para su ejecución.
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 crear una RFC asincrónica se utiliza STARTING NEW TASK
CALL FUNCTION RemoteFunction STARTING NEW TASK taskname
Destination .....
EXPLORTING....
TABLES ....
EXCEPTIONS...
 
 
 
Sobre el autor
Publicación académica de Juan Carlos Pavicich, en su ámbito de estudios para la Carrera Consultor ABAP.
Juan Carlos Pavicich
Profesión: Técnico Informático - Argentina - Legajo: VR91L
✒️Autor de: 116 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Tengo el agrado de dirigirme a ud/s con el objeto de mencionar mi experiencia y conocimientos técnicos necesarios para desarrollar actividades en el rubro de su empresa.
Certificación Académica de Juan Pavicich