✒️ABAP Los módulos de funciones RFC
ABAP Los módulos de funciones RFC
QUE ES UN MÓDULO DE FUNCIÓN RFC
Consiste en una llamada a una función que existe en un sistema distinto al del programa que la llama.
El objetivo principal de RFC es acceder a otro ambientes para obtener datos. La comunicación entre diferentes sistemas en el entorno de SAP incluye conexiones entre sistemas SAP, así como tambien entre los sistemas SAP y No SAP.
Debemos agregar la cláusula DESTINATION (Utilizada en la declaración de módulos de funciones RFC para especificar un destino RFC) al momento de declarar la función RFC.
NOTA: La RFC llamada no existe en el sistema origen pero si en el sistema destino.
Ejemplo de utilizar un RFC: Para leer un registro de un cliente del sistema o ambiente DTR a traves de un programa ABAP existente en el ambiente DCR, se crea una RFC en DTR que devuelva los registros de los clientes. Luego llamamos a la función en el ambiente DCR utilizando un destino que hemos creado a traves de la transacción SE59.
Cuando 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 SY-MSGID, SY-MSGTY, SY-MSGNO, SY-MSGV1 (V2) (V3) (V4).
CREAR UNA RFC.
- Se crea de igual forma que una función:
- Accediento a la transacción SE37
- Complementando con los mismos parámetros que ingresamos en una función,
- Seleccionar en la solapa ATRIBUTOS la opción MÓDULO DE ACCESO REMOTO (REMOTE ENABLED MODULE)
NOTA: Los modulos creados en RFC no se pasan por Referencia, se deben pasar por valor. Esto se logra tildando el check TRANSPORTAR VALORES (PASS VALUE) para cada parámetro en la solapa IMPORT, EXPORT y CHANGING.
Las funciones creadas como RFC, pueden ser utilizadas como módulos de función Normales, utilizando dos maneras diferentes:
- La declaración CALL FUNCTION DESTINATION 'NONE'
- La declaración de un módulo de función normal, sin el agregado de la cláusula DESTINATION.
TIPOS DE RFC.
- SINCRÓNICAS: Ambos deben estar disponibles al momento de la llamada de la función (comunicación sincrónica)
- TRANSACCIONALES: los sistemas no necesitan estar disponibles al momento de la llamada a la función. Para crearlas utilizamos el sufijo IN BACKGROUND TASK (Cláusula que se utiliza para la declaración de módulos de función transaccionales).
NOTA: El sistema deja un log con el pedido de la llamada remota en la tabla estandar de SAP ARFCSSTATE y ARFCSDATA con todos los valores de los parámetros.
Para visualizar este log, utilizamos la transacción SM58
Al ejecutar la RFC se ejecuta la sentencia COMMIT WORK
- ASINCRÓNICAS: El programa llamador, llama a la función RFC y inmediatamente después termina su procesamiento. Para crearlas debo utilizar el sufijo STARTING NEW TASK (Sentencia que se utiliza en la declaración de módulos de función RFC asincrónicos.)
No es posible debuggear una llama o funcion remota de otro sistema cuando estamos progrando
cuando estampos probando una llama RFC desde un sistema SAP a otro sistema SAP podemos utilizar el debugger para monitorear la ejecución de la función RFC en el sistema remoto.
Con las llamadas remotas el debugger ABAP se ejecuta en el sistema local, los valores de los datos y otra información de ejecución de la funcion remota son pasados al sistema remoto.
 
 
 
Sobre el autor
Publicación académica de Ixhel Magai Lopez Valencia, en su ámbito de estudios para la Carrera Consultor ABAP.
Ixhel Magai Lopez Valencia
Mexico - Legajo: PM62E
✒️Autor de: 134 Publicaciones Académicas
🎓Egresado de los módulos:
- Máster ABAP for HANA
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: PartTime
Presentación:
Soy ingeniera en telematica, estoy interesada en aprender programacion en sap, solo tengo conocimientos basicos en java
Certificación Académica de Ixhel Lopez