✒️ABAP Los módulos de funciones RFC
ABAP Los módulos de funciones RFC
MÓDULOS DE FUNCIÓN RFC
Consisten en realizar una llamada a una funcion que exsite en un sistema distinto al del programa que la llama.
El objetivo principal es acceder a otros sistemas o ambientes para obtener datos
La comunicación pude darse SAP ↔ SAP ó SAP ↔ NO SAP.
Para hacer esto debe agregarse el modificador DESTINATION a la llamada CALL FUNCTION
NOTA: La función debe existir en el sistema destino.
Ejemplo: Tenemos 2 ambientes DTR (REMOTO) y DLC (LOCAL). En DTR definimos la función:
En DLC llamo a la función:
|
Si se produce un error en la RFC los errores son devueltos por el sistema remoto y hay que observar estas variables del sistema:
SY-MSGID, SY-MSGTY, SYMSGNO, SY-MSGV1, SY-MSGV2, SY-MSGV3, SY-MSGV4
Mediante la Tx SM59 se gestionan las conexiones RFC.
COMO CREAR UNA RFC
Se crean como cualquier otra función mediante la transacción SE37 solo que en la pestaña ATRIBUTOS (Attributes) se debe seleccionar Modulo de Acceso Remoto (Remote Enabled Module)
NOTA: Los parametros de una funcion RFC deben pasarse por valor, no por referencia. Para esto en las solapas IMPORT, ESPORT, CHANGING hay que marcar Transportar Valores (Pass Values)
Las funciones RFC pueden usarse por el sistema que las contiene indicando en el modificador DESTINATION ‘NONE’ o no agregando el modificado DESTINATION cuando se llama a CALL FUNCTION.
TIPOS DE RFC
Hay tres tipos de RFC
SINCRONICAS: Ambos sistemas debe estar disponibles en el momento de la llamada. Basadas en comunicación sincrona.
Son las que mas utilizaremos en nuestro desarrollos.
TRANSACCIONALES: Los sistemas no necesitan estar disponibles en el momento de la ejecución, se genera un único ID de transacción, los programas llamados son almacenados en el sistema junto con los datos.
Para crear una RFC transaccional debo llamarla con el modificador IN BACKGROUND TASK.
Ejemplo:
CALL FUNCTION ‘ZRFC_TRANS’ IN BACKGROUND TASK
DESTINATION dtr
EXPORTING …
En estas RFC el sistema deja un log en las tablas ARFCSTATE y ARFCDATA con todos los valores de los parámetros pasados en la ejecución. Para visualizar este LOG usaremos la Tx SM58 |
Cuando el programa que ejecuta la RFC ejecuta la sentencia COMMIT WORK entonces es cuando la llamada remota es enviada al sistema remoto para su ejecución.
Utilizaremos este tipo de RFC para ciertos casos donde no se requiera que las actualizaciones no se hagan de forma inmediata sino cuando se ejecute un COMMIT WORK.
ASINCRONAS: el programa llamador, llama a la RFC e inmediatamente después termina su procesamiento. Luego se ejecuta la RFC independiente del programa llamador. Para crear una RFC de este tipo debo utilizar el MODIFICADOR: STARTING NEW TASK.
Ejemplo
CALL FUNCTION ‘ZFRC_ASINC’ STARTING NEW TASK ‘tarea_asin’
DESTINATION dtr
EXPORTING …
No es posible hacer DEBUGG de una RFC, pero si ambos sistemas son SAP podemos usar el debugger para monitoreo.
 
 
 
Sobre el autor
Publicación académica de Josep Antoni Lopez Moyano, en su ámbito de estudios para la Carrera Consultor ABAP.
Josep Antoni Lopez Moyano
Profesión: It Manager - España - Legajo: QP26P
✒️Autor de: 375 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP HCM Nivel Inicial
- Carrera Consultor Basis NetWeaver Nivel Avanzado
- Carrera Consultor Basis NetWeaver Nivel Inicial
- Máster Funcional ABAP
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial