✒️ABAP Los módulos de funciones RFC
ABAP Los módulos de funciones RFC
MODULOS DE FUNCION RFC.
1.-¿Que es un modulo RFC?
Consiste en una llamada a una funcion que existe en un sistema distinto al del programa que la llama.
El objetivo principal de las RFC es acceder a otros ambientes para obtener datos.
La comunicacion puede darse entre sistemas SAP o entre un sistema SAP y otro sistema que no sea SAP.
Para llamar a una funcion RFC se debe agregar la clausula DESTINATION al momento de declarar la funcion.
La RFC llamada no existe en el sistema origen pero si debe existir en el sistema de destino.
* Si se produjera un error en la ejecucion de una RFC, los mesajes de error son devueltos por el sistema remoto y alojados en la variables del sistema SY-MSGTY, SY-MSGNO, SY-MSGV1, SY-MSGV2, SY-MSGV3 y SY-MSGV4
2.-¿Como crear una RFC?
Una funcion RFC se crea de la misma manera que se crea una funcion.Se accede a la transaccion SE37 y se completan los mismos parametros que completamos para crear una funcion a excepcion de que debe seleccionar en la solapa de Atributos la opcion Modulo de acceso remoto (Remote Enabled Module)
* Los parametros que se crean en una funcion RFC no se pueden pasar por Referencia, deben pasarse por valor.
Esto se logra tildando el check Transportar valores (Pass value) para cada parametro en las solapas IMPORT, EXPORT y CHANGING.
A su vez, las funciones creadas como RFC, pueden ser utilizadas como modulo de funcion Normales. Esto se logra de dos maneras diferentes:
*Utilizando la declaracion CALL FUNCTION DESTINATION 'NONE'.
* Utilizando la declaracion de un modulo de funcion normal, sin el agregado de la clausula DESTINATION.
3.-Tipos de RFC.
Existen tres tipos de RFC
*Sincronicas: ambos sistemas deben estar disponibles al momento de la llamada de la funcion. Estas RFC estan basadas en una comunicacion sincronica.
.*Generalmente, utilizaremos el tipo de RFC sincronico para la mayoria de nuestros desarrollos.
*Transaccionales: Los sistemas no necesitan estar disponibles al momento de la llamada a la funcion. Un unico ID de la transaccion es generado y los programas llamados son los almacenados en el sistema junto con los datos. Para crear una RFC transaccional debo utilizar el sufijo IN BACKGROUND TASK.
*En las RFC transaccionales, el sistema deja un log con el pedido de la llamada remota en las tablas estandar de SAP ARFCSSTATE y ARFCSDATA.
*Tablas ARFCSSTATE Y ARFCSDATA : Tablas estandar del sistema SAP que almacenan informacion realacionada a la llamada RFC transaccionales en el sistema.
*TRANSACCION SM58: Transaccion estandar del sistema SAP que nos permite visualizar el log de errores de las RFC transaccionales que se ejecutan en el sistema.
*Cuando el programa que ejecuta la RFC ejecuta la sentencia COMMIT WORK, entonces es cuando la llamada remota es enviada al sistema remoo para su ejecucion.
*Utilizremos el tipo de RFC transaccional para ciertos casos especificos de actualizaciones donde no se requiera que dichas actualizaciones se realicen en forma inmediata sino cuando el programa llamador ejecuta un COMMIT WORK.
*Asincronicas: el programa llamador, llama a la funcion RFC e inmediatamente despues termina su procesamiento. Luego la funcion RFC se ejecuta independientemente del programa llamador. Para crear una RFC asincronica debo utilizar el sufijo STARTING NEW TASK.
 
 
 
Sobre el autor
Publicación académica de Miguel Ochoa, en su ámbito de estudios para la Carrera Consultor ABAP.
Miguel Ochoa
Profesión: Estudiante de Ing. Industrial - Chile - Legajo: TB61K
✒️Autor de: 47 Publicaciones Académicas
🎓Egresado del módulo:
Presentación:
Soy estudiante universitario con ganas de desarrollarme en el mundo de sap abap no tengo experiencia laboral, mis expectativas es poder comprender la filosofía de sap que me permita desarrollar
Certificación Académica de Miguel Ochoa