✒️ABAP Los módulos de funciones RFC
ABAP Los módulos de funciones RFC
Resumen
Unidad 4 leccion 4
Módulo de funciones RFC
1- Que es un módulo de funciones RFC?
Consiste en una llamada a un modulo de funciones q existe en un sist. SAP o no SAP distinto al sist de programa de donde se se realiza la llamada del módulo de funciones.
El objetivo ppal de los modulos de funciones RFC es acceder a otros ambites del sist xa obtner datos.
La comunicación puede darse entre sist SAP o entre el sist. SAP y otro sist q no sea SAP.
La clausula DESTINATION es la q se agrega.
CLEAR v_destino.
* Armado del destination
IF sy-sysid(3) EQ 'LDO'. "Desarrollo
v_destino = 'BD3ARG110'.
ELSEIF sy-sysid(3) EQ 'LKO'. "Testing
v_destino = 'BK3ARG311'.
ELSEIF sy-sysid(3) EQ 'LPO'. "Produccion
v_destino = 'BP3ARG311'.
ENDIF.
CALL FUNCTION 'Z_OV_REC_ESTADO_DEUDA'
DESTINATION v_destino
EXPORTING
i_vkont = v_vkont
i_fecha_int = sy-datum
TABLES
t_account = ti_account
t_det_xblnr = ti_det_xblnr.
El modulo de funciones RFC llamado no existe en el sist origen xo si debe existir en el sist. destino
si necesitamos leer un registro de datos de un cliente o ambiente DTR, a través de un programa ABAP existen en el ambiente DCR, entonces creamos un modulo de funciones RFC en el ambiente DTR q devuelve los registros de clientes.
Luego llamaremos a este modulo de funciones en el ambiente DCR, utilizando un destino q previamente hemos creado x la TX SM59.
En en ambiente DTR creamos el modulo de funciones RFC.
FUNCTION ZOBTENER_CLIENTES
"Leemos el registro del cliente
ENDFUNCTION
En el ambiente DCR llamamos al modulo de funciones RFC
CALL FUNCTION 'ZOBTENER_CLIENTES'
DESTATION | V_DCR |
EXPORTING | KUNNR= V_CLIENTE |
TABLES | CUSTOMER = TI_CLIENTES |
EXCEPCTIONS | NO_RECORD_FOUND = 01 |
si se produjera un error en la ejecución del modulo de funciones RFC, entonces los mensajes de error será devueltos x el sist remoto y alojados en las variables
- SY-MSGID
- SY-MSGTY
- SY-MSGNO
- SY-MSGV1
- SY-MSGV2
- SY-MSGV3
- SY-MSGV4
2- Como crea un módulo de funciones RFC?
Un modulo de funciones se crea normal/ x TX SE37 y se completa los mismos parámetros q completamos xa crear un modulo de funciones normal a excepción de q se debe seleccionar el la solapa Atributos la opción del módulo de acceso remoto.
Los parámetros q se crean en el módulo de funciones RFC no se pueden pasar x referencia, sino x valor. Esto se logra tildando el check transporte de vlaores x c/parámetro en las solapas IMPORT, EXPORT Y CHANGING.
Los módulos de funciones creados como RFC, pueden ser utilizados como módulos de funciones normales, se hacen de dos maneras:
- Utilizando la declaración CALL FUNCTION 'NONE'
CALL FUNCTION 'Z_OV_RFC_ESTADO_DEUDA'
DESTINATION 'NONE'
EXPORTING
i_vknont = v_vkont
i_fecha_int = sy-datum
TABLES
t_account = ti_account
t_det_xblnr = ti_det_xblnr.
- CALL FUNCTION 'Z_OV_RFC_ESTADO_DEUDA' ***SIN DESTINATION
EXPORTING
i_vknont = v_vkont
i_fecha_int = sy-datum
TABLES
t_account = ti_account
t_det_xblnr = ti_det_xblnr.
3- Los tipos de módulos de funciones RFC.
Existen 3 tipos de módulos de funciones RFC
- Sincrónicos => en donde ambos sist. es decir el sist. de origen y elle sist. destino, deben estar disponibles en el momento de la llada del módulo.
General/ se utilza el tipo de modulo de funciones sincrónico.
- Transaccional => En donde los sist. de orgine y destino no necesitan estar disponibles al momento de la llamdas al moduulo de fucniones.
xa crear un modulo de fucniones RFC transaccional se debe utilizar el sufijo IN BACKGROUND TASK
CALL FUNCTION 'Z_OV_RFT_ESTADO_DEUDA' IN BACKGROUND TASK
DESTINATION v_destino
EXPORTING
i_vknont = v_vkont
i_fecha_int = sy-datum
TABLES
t_account = ti_account
t_det_xblnr = ti_det_xblnr.
Este modulo de funciones transaccional deja un log con el pedido de llamada remota en las tablas DB de SAP.
Tablas: ARFCSSTATE
ARFCSDATA => con todos los valores pasados x parámetro en la ejecución.
son tablas estándar de DB q almacenan información de llamada del módulo de funciones RFC transaccionales.
Xa visualizar el log es x la TX SM58
Cuando el programa se ejecuta en el módulo de funciones RFC ejecuta la sentencia COMMIT WOERK, entonces remota es enviada al sist. remoto xa su ejecución.
Este modulo de funciones es xa cierto casos específicos de actualizaciones donde no se requiera q dichas actualizaciones se realicen de forma inmediata sino recien cuando el programa llamador ejecuta la sentencia commit work.
Asincrónicos => en donde el programa llamador, llama al modulo de funciones RFC e inmediatamente después termina el procesamiento luego el módulo de funciones RFC se ejecuta inmediata/ del programa.
xa crear un módulo de funciones RFC asincrónico debemos utilizar el sufijo STARTING NEW TASK
CALL FUNCTION 'Z_OV_RFC_ESTADO_DEUDA' STARTING NEW TASK v_taskname
DISTINATION v_destino
EXPORTING
i_vknont = v_vkont
i_fecha_int = sy-datum
TABLES
t_account = ti_account
t_det_xblnr = ti_det_xblnr.
xx
 
 
 
Sobre el autor
Publicación académica de Gustavo Betancur Guzmán, en su ámbito de estudios para la Carrera Consultor ABAP.
Gustavo Betancur Guzmán
Profesión: Ingeniero de Sistemas - Colombia - Legajo: WS86O
✒️Autor de: 164 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP MM Nivel Avanzado
- Carrera Consultor en SAP MM Nivel Inicial