✒️ABAP Los módulos de funciones
ABAP Los módulos de funciones
Son funciones que han sido creadas y almacenadas en SAP y que pueden ser utilizadas por cualquier programa ABAP.
SAP dispone de un gran número de módulos de funciones predefinidas que son estándar del sistema y que pueden ser llamados por cualquier programa ABAP desarrollado por el usuario. También el usuario puede desarrollar nuevos módulos de funciones Z.
Para acceder a los módulos de funciones, ya sea que sean estándar del sistema o Z, utilizaremos la transacción estándar SE37 correspondiente a la Biblioteca de Funciones
Transacción SE37: Utilizaremos la biblioteca de funciones correspondiente para la creación, modificación y visualización de los módulos de funciones existentes en el sistema SAP.
Los módulos de funciones tienen una interfaz o estructura definida, ya que su diseño facilita el paso de los parámetros tanto de entrada como de salida y se declaran con la palabra reservada CALL FUNCTION seguida del nombre del módulo de funciones.
- EXPORTING: se expecifican los parámetros de entrada del módulo de funciones.
- IMPORTING: se especifican los parámetros de salida del módulo de funciones.
- TABLES: se especifican las tablas internas que se pasan como parámetros en el módulo de funciones.
- EXCEPTIONS: se especifican las excepciones que manerjará el módulo de funciones.
Veamos un ejemplo de cómo utilizar un módulo de funciones ya existente en la biblioteca de funciones.
Para ello crearemos un nuevo programa ABAP cuyo nombre será ZTEST_MODULO_DE_FUNCIONES, en donde vamos a ejecutar el módulo de funciones POPUP_TO_CONFIRM que se utiliza para solicitar la confirmación al usuario antes de tomar una acción determinada.
Editando el programa ZTEST_MODULO_DE_FUNCIONES posicionamos el puntero del mouse en la línea de código ABAP donde deseamos crear la declaración del módulo de funciones y hacemos clic en Modelo.
A continuación, el sistema nos muestra una ventana de dialogo en donde dejamos seleccionada la opción CALL FUNCTION, escribimos el nombre del módulo de funciones POUP_TO_CONFIRM y hacemos clic en continuar. Tenemos la posibilidad de buscar el módulo de funciones que deseamos seleccionar haciendo clic en el matchcode del campo o presionando la tecla F4.
Automáticamente se generará en el programa la plantilla correspondiente al módulo de funciones POPUP_TO_CONFIRM.
amos a completar la interfaz del módulo de funciones de acuerdo a lo que deseamos ejecutar.
Los parámetros o las secciones que no se utilicen se deben borrar o comentar.
Finalmente si ejecutamos el programa.
2 | El Paso a Paso para la Creación de un Módulo de Funciones.Para crear un módulo de funciones Z accedemos a la Biblioteca de Funciones correspondiente a la transacción estándar SE37. Allí escribiremos el nombre del nuevo módulo de funciones que será Z_TEST_CLIENTES y hacemos clic en el botón Crear.
Inmediatamente después veremos la siguiente ventana de diálogo en donde debemos escribir el nombre del grupo de funciones al que pertenece el módulo de funciones y una descripción breve para el módulo de funciones que estamos por crear que será "Módulo de funciones de clientes".
Grupo de funciones: Es el repositorio que agrupa módulos de funciones según su funcionalidad y que se utiliza principalmente para compartir subrutinas y declaraciones de variables entre los distintos módulos de funciones pertenecientes al grupo de funciones.
Por lo que previamente a la creación del módulo de funciones deberemos crear un grupo de funciones o también tenemos la opción de utilizar un grupo de funciones ya existente en el sistema.
Vamos a crear un "grupo de funciones" nuevo, para ello seleccionamos en el menú de la transacción SE37 la opción Pasar a / Gestión gr.funciones / Crear grupo.
Aquí ingresaremos el nombre del grupo de funciones y hacemos clic en el botón Grabar.
Luego veremos en la parte inferior de la pantalla el siguiente mensaje que nos indica que el grupo de funciones ha sido creado correctamente.
Si quisiéramos definir variables que se pueda utilizar en todos los módulos de funciones pertenecientes al grupo de funciones, debemos dirigirnos en el menú de la transacción estándar SE37 a Pasar a / Datos Globales.
Allí vamos a ver la siguiente pantalla en donde podemos definir las variables globales, las cuales pueden ser utilizadas por todos los módulos de funciones pertenecientes al grupo de funciones.
Si quisiéramos declarar subrutinas que puedan ser utilizadas por todos los módulos de funciones del grupo de funciones entonces debemos, en el menú de la transacción SE37, ir a Pasar a / Programa de Control.
Allí descomentamos el primer include que está especificado para subprogramas, modificamos su nombre para que comience con Z, lo creamos haciendo doble clic en él y luego escribamos las subrutinas dentro del include.
Ahora volvamos a la transacción SE37 con el grupo de funciones creado y vamos a crear el módulo de funciones.
Completamos el nombre del módulo de funciones que será Z_TEST_CLIENTES, el nombre del grupo de funciones que será Z_TEST_CLIENTES_GRP, un texto breve para el módulo de funciones y hacemos clic en el botón Grabar.
Finalmente hemos creado el módulo de funciones Z_TEST_CLIENTES.
- Atributos: aquí especificamos un texto breve para el módulo de funciones, que en este caso será "Módulo de funciones de clientes", la forma de ejecución del módulo de funciones que puede ser Módulo de funciones normal, Módulo de acceso remoto o Módulo de actualización, en este caso será "Módulo de funciones normal", y dejamos seleccionado "Inicio inmediato" tal como viene por defecto.
- Import: aquí especificamos los parámetros de entrada del módulo de funciones.
- Export: aquí especificamos los parámetros de salida del módulo de funciones.
- Modificaciones: aquí especificamos los parámetros de salida que cambiarán de valor con la ejecución del módulo de funciones.
- Tablas: aquí especificamos las tablas que se utilizan en el módulo de funciones.
AUDIO ACLARATIVO: En la versión actual de SAP no debemos especificar las tablas internas en esta sección ya que ha sido considerada como obsoleta por SAP. Debemos especificar las tablas internas en la solapa Modificaciones, tal como veremos mas adelante en la lección. - Excepciones: aquí especificamos las excepciones del módulo de funciones. Una excepción es un error que se produce al ejecutar el módulo de funciones y que ha sido catalogado cuando se creó el módulo de funciones de modo de poder identificar rápidamente el motivo del error.
- Código Fuente: aquí escribiremos el código ABAP del módulo de funciones.
Ahora, volviendo al módulo de funciones Z_TEST_CLIENTES, vamos a agregarle como parámetro de entrada el DNI.
Y como parámetro de salida definimos en la solapa Modificaciones, la estructura de usuarios WA_USUARIOS, del tipo de la tabla base de datos de usuarios ZTABLA_USUARIOS.
Si quisiéramos pasar como parámetro una tabla interna en lugar de una estructura, entonces debemos crear un Tipo Tabla a través del Diccionario de datos ABAP correspondiente a la transacción estándar SE11.
Por ejemplo, el tipo tabla ZTT_USUARIOS, el cual va a tener la estructura de la tabla ZTABLA_USUARIOS.
Luego escribiremos el código ABAP del módulo de funciones en la solapa Código Fuente para recuperar de la tabla base de datos ZTABLA_USUARIOS, los datos del usuario al que pertenezca el DNI de entrada.
Por último activamos el módulo de funciones, el grupo de funciones y los includes.
Y podremos probar el módulo de funciones ejecutándolo haciendo clic en el botón ejecutar o presionando la tecla F8.
En la pantalla que vemos a continuación vamos a introducir el parámetro de entrada DNI y vamos a ejecutar el módulo de funciones haciendo clic en el botón ejecutar.
Y finalmente veremos los resultados de la ejecución.
Si hacemos clic en la vista detallada veremos el registro completo de la tabla base de datos ZTABLA_USUARIOS cuyo DNI se corresponde con el parámetro de entrada del módulo de funciones.
 
 
 
Sobre el autor
Publicación académica de Pedro Antonio Duarte, en su ámbito de estudios para la Carrera Consultor ABAP.
Pedro Antonio Duarte
Profesión: Consultor de Sap Abap - Argentina - Legajo: JP24O
✒️Autor de: 128 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Certificación Académica de Pedro Duarte