✒️ABAP Los módulos de funciones RFC
ABAP Los módulos de funciones RFC
- MÓDULO DE FUNCIÓN RFC (Se crea el destino en la SM59)
Llamada a una función que existe en un sistema distinto al del programa que la llama.
La comunicación puede darse entre sistemas SAP e incluso con otro sistema que no sea SAP. Para llamar a una función RFC agregamos la claúsula DESTINATION al declarar la función.
Ejemplo/ Leer un registro de un cliente del sistema DTR, a través de un programa ABAP existente en el sistema DCR, crearíamos una RFC en DTR que devuelva los registros de los clientes.
Luego llamaríamos a la función en el ambiente DCR, utilizando un destino que previamente hemos creado desde la transacción SM59.
En el sistema DTR (creamos la RFC) -> FUNCTION zObtenerClientes .... ENDFUNCTION.
En el sistema DCR (llamamos a la RFC) -> CALL FUNCTION zObtenerClientes DESTINATION .. EXPOTING .. TABLES .. EXCEPTIONS.
Los mensajes de error devueltos por el sistema en una RFC: SY-MSGID, SY-MSGTY, SY-MSGNO, SY-MSGV1, SY-MSGV2, SY-MSGV3 y SY-MSGV4.
- COMO CREAR UNA RFC
De la misma manera que una función. Transacción SE37 y se completan los mismos parámetros a excepción de en la pestaña "Atributos" debemos seleccionar "Módulo de acceso remoto"
Los parámetros en una RFC no se pueden pasar por referencia, deban pasarse por valor. Para ello debemos tickar el check "Transportar valores" de cada parámetros en las pestañas IMPORT, EXPORT y CHANGING.
Para usar una función RFC como si fuera una función normal basta con hacerle la llamada con sin la clausula DESTINATION o con el valor NONE -> CALL FUNCTION DESTINATION 'NONE'.
- TIPOS DE RFC
- Sincronas: Ambos sistemas deben estar disponibles al momento de la llamada de la función.
- Transaccionales: No es necesario que dos sistemas estén disponibles en el momento de la llamada. Se añade el sufijo IN BACKGROUND TASK. Ej/ CALL FUNCTION 'RFC_FUNCTION_N' IN BACKGROUND TASK DESTINATION 'DEST' EXPORTING ... TABLES ... . En estas RFC el sistema deja un log con el pedido de la llamada remota en las tablas estándard ARFCSSTATE y ARFCSDATA que se podrán visualizar desde la SM58. Cuando el programa que ejecuta la RFC ejecuta COMMIT WORK es cuando la llamada remota es enviada al sistema remoto para su ejecución.
- Asincronas: El programa llamador, llama a la RFC e inmediatamente después termina su procesamiento, por lo que la RFC se ejecuta independientemente a su llamador. Para crearla usaremos el sufijo STARTING NEW TASK. Ej/ CALL FUNCTION RemoteFunction STARTING NEW TASK taskname DESTINATION .. EXPORTING .. IMPORTING .. EXCEPTIONS .. .
 
 
 
Sobre el autor
Publicación académica de Ignacio Mart?n Bolumar, en su ámbito de estudios para la Carrera Consultor ABAP.
Ignacio Mart?n Bolumar
Profesión: Ingeniero Inform?tico - Espa?a - Legajo: ZL84Z
✒️Autor de: 94 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Ignacio Mart?n