✒️ABAP Los módulos de funciones RFC
ABAP Los módulos de funciones RFC
Módulo de Función RFC: Consiste en una llamada a una función remota que existe en un sistema distinto al programa que la llama. es un protocolo que permite a un programa ejecutar un código en otra máquina remota sin tener que preocuparse por las comunicaciones entre ambos, con la intención de acceder a otros ambientes para obtener datos.
La comunicación puede darse entre sistemas SAP o entre un SAP y otro sistema que no sea SAP.
Se debe agregar la cláusula DESTINATION al momento de declarar la función.
La RFC llamada no existe en el sistema de origen pero si debe existir en el sistema de destino.
Transacción SM59: utilizada para la configuración de las conexiones RFC.
Si se produjera 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 y SY-MSGV4.
Para crear una RFC se accede por la Tx SE37 y en la pestaña Atributos MODULO DE ACCESO REMOTO.
Los parámetros que se crean en una función RFC no se pueden pasar por Referencia, deben pasarse por valor.
Esto se logra tildando el Check Transportar Valores (Pass Value) para cada parámetro en las pestañas IMPORT, EXPORT y CHANGING.
También se pueden utilizar las RFC como módulos de función normales:
- Utilizando la declaración CALL FUNCTION DESTINATION 'NONE'.
- Utilizando la declaración de un módulo de función norma, sin el agregado de la cláusula DESTINATION.
Tipos:
- Sincrónicas: ambos sistemas deben estar disponibles al momento de la llamada de la función estas RFC están basadas en una comunicación sincrónica.
- Transaccionales: los sistemas no necesitan estar disponibles al momento de la llamada 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 crearla se debe utilizar el sufijo IN BACKGROUND TASK. En esta el sistema deja un log con el pedido de la llamada remota en las tablas estándar de SAP ARFCSSTATE y ARFCSDATA con todos los valores de los parámetros pasados en la ejecución.
Para visualizar este log 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.
Es utilizada en ciertos casos específicos de actualizaciones donde no se requiera que dichas actualizaciones se realicen en forma inmediata sino recién cuando el programa llamador ejecuta un COMMIT WORK.
- 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 crearla se debe utilizar el sufijo STARTING NEW TASK.
No es posible Debagear una llamada a una función remota de otro sistema, sin embargo cuando se está probando una llamada RFC desde un sistema SAP a otro sistema SAP podemos utilizar el DEBUGER para monitorear la ejecución del RFC en el sistema remoto, con la llamadas remotas el DEBUGER ABAP se ejecuta en el sistema local los valores de los datos y otras información de ejecución de la función remota son pasados al sistema remoto.
 
 
 
Sobre el autor
Publicación académica de Jeferson Jos? Pe?a Curvelo, en su ámbito de estudios para la Carrera Consultor ABAP.
Jeferson Jos? Pe?a Curvelo
Venezuela - Legajo: PD49W
✒️Autor de: 128 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Jeferson Pe?a