================= ******** UNIDAD 4 ******** =================
******** Lección 4: "Módulos de función RFC" *********
RFC: Protocolo que permite ejecutar codigo en una maquina remota, consiste en llamar a una funcion de un programa distinto.
El objetivo es acceder a otros ambientes para obtener data, puede ser entre un sistema SAP y otro SAP o SAP Y otro no SAP.
Para llamarlo se debe de usar DESTINATION la momento de declarar la funcion.
Para hacer las configuraciones al RFC usamos la transaccion SM59 , en caso de producir algun error los mensajes se visualizan en el sistema remoto alojados en variables:
SY-MSGID, SY-MSGTY, SY-MSGNO, ST-MSGV1, ST-MSGV2, ST-MSGV3, ST-MSGV4
COMO SE CREA UN RFC?
Se crea de la misma manera como se crea una funcion, en la SE37 y se completan los mismos parametros para hacer una funcion a excepcion de que se debe de seleccionar en la solapa ATRIBUTOS la opcion MODULO DE ACCESO REMOTO.
Los parameotrs en un RFC, solo se pasa por valor, para esto hacemos check en TRANSPORTAR VALORES(PASS VALUE) en cada parametro de la solapa IMPORT, EXPORT, CHANGING
Una vez creada , se pueden usar como funciones normales
usando CALL FUNCTION DESTINATION 'NONE'
o usando la declaracion normal de la funcion CALL FUNCTION 'NOMBREFUNCION'
TIPOS DE RFC
- Sincronicas: Ambas deben estar disponible al momento de la llamada, se usa en la mayoria de casos.
- Transaccionales: Los sistemas no necesitan estar disponibles en la llamada, para crearlo se debe de usar el sufijo
IN BACKGROUND TASK.
Sintaxis:
CALL FUNCTION 'RFC_FUNCION_X'
IN BACKGROUND TASK
DESTINATION 'DEST'
EXPORTING ....
TABLES ....
El sistema deja un log con pedido de la llamada remota en las tablas ARFCSSTATE Y ARFCSDATA para visualizar el LOG entramos en la transaccion SM58(Transaccion donde podemos visualizar el log de errores de los RFC Transaccionales).
Se usa en ciertos casos donde las actualizaciones no se requiera de forma inmediata si no cuando el programa lo requiera.
- Asincronicas: El programa llama a la funcion RFC, luego se termina su procesamiento, la funcion RFC cumple independientemente la solicitud, para el llamado se usa:
STARTING NEW TASK :
Sintaxis:
CALL FUNCTION 'RFC_FUNCION_X'
STARTING NEW TASK
DESTINATION 'DEST'
EXPORTING ....
TABLES ....
AUDIO: No es posible debbug en una llamada de un sistema remoto a un sistema SAP, pero si es posible de un SAP a otro SAP.