✒️ABAP Los módulos de funciones
ABAP Los módulos de funciones
Módulos de Función
1 ¿Qué son los Módulos de Función?
Los Módulos de Función son funciones que han sido creadas y almacenadas en SAP, y que pueden ser utilizadas por cualquier programa ABAP.
Para acceder a estas funciones se utiliza la transacción SE37. Utilizaremos la "Biblioteca de funciones" correspondiente a la transacción estándar SE37 para la creación, modificación y visualización de los módulos de funciones existentes en el sistema.
Los módulos de función tienen una interfaz definida, ya que su diseño facilita el paso de parámetros tanto de entrada como de salida:
<< imagen 1.2 >>
Con "EXPORTING" se especifican los parámetros de entrada, con "IMPORTING" los parámetros de salida, con "TABLES" las tablas del sistema y con "EXCEPTIONS" se especifican las excepciones a tratar en el módulo de función.
Vemos a continuación un ejemplo de como utilizar un módulo de función ya existente. Creamos un programa ABAP en el que se ejecuta el módulo de función "POPUP_TO_CONFIRM" que se utiliza para pedir confirmación al usuario antes de tomar una acción determinada:
<< imagen 1.3 >>
Que da como resultado la siguiente salida:
<< imagen 1.4 >>
=> En el menú del editor ABAP existe el botón Modelo (Pattern en inglés) que nos permite crear dentro de un programa el esqueleto de cualquier función que haya sido creada a través de la transacción SE37, simplemente ingresando el nombre de la función que necesitamos.
2 ¿Cómo crear un Módulos de Función?
Para crear un módulo de función accedemos a la transacción SE37. Allí escribiremos el nombre de nuestra función que será Z_TEST_CLIENTES y presionaremos el botón Crear.
<< imagen 2.1 >>
A continuación nos mostrará la ventana de diálogo en donde debemos escribir el nombre del grupo de funciones al que pertenece la función, y una descripción breve de la función que queremos crear.
<< imagen 2.2 >>
Si el grupo de funciones no está creado de forma previa a la creación del módulo de funciones, el sistema nos informará de un error:
<< imagen 2.3 >>
El Grupo de Funciones es un repositorio que agrupa funciones y que se utiliza principalmente para compartir subrutinas y declaraciones de variables entre las distintas funciones pertenecientes al grupo.
Para crear un grupo de funciones debemos seleccionar en el menú de la transacción SE37 la ruta: Pasar a >> Gestión gr.funciones >> Crear grupo:
<< imagen 2.4 >>
Aquí ingresamos el nombre de nuestro grupo de función y presionamos el botón Grabar:
<< imagen 2.5 >>
En la parte inferior de la pantalla se mostrará el mensaje que indica que el grupo de funciones ha sido creado correctamente:
<< imagen 2.6 >>
Si dentro del Grupo de Funciones quisiéramos definir variables que se puedan utilizar en todas las funciones pertenecientes a nuestro grupo de funciones, debemos dirigirnos en el menú de la transacción SE37 a Pasar a >> Datos Globales, donde veremos la pantalla de definición de variables globales:
<< imagen 2.7 >>
Si dentro del Grupo de Funciones quisiéramos declarar subrutinas que puedan ser utilizadas por todas las funciones del grupo, debemos acceder en el menú de la transcción SE37 a Pasar a >> Programa de Control:
<< imagen 2.8 >>
En este punto, descomentamos el primero de los include que está especificado para subprogramas, le cambiamos el nombre para que comience con Z, y lo creamos haciendo doble clic sobre el nombre. Después colocamos las subrutinas dentro del mismo.
<< imagen 2.9 >>
Una vez creado nuestro Grupo de Funciones, podremos desde la transacción SE37 crear el Módulo de Función asociado al grupo de funciones. Al crear el Módulo de función Z_TEST_CLIENTES, veremos la siguiente pantalla:
<< imagen 2.10 >>
Veamos la utilidad de cada una de las solapas que se visualizan:
- Atributos (Attributes): aquí especificamos la descripción de la función y el tipo de función que puede ser: Normal, RFC o Update module.
- Import: aquí especificamos los parámetros de entrada de la función.
- Export: aquí especificamos los parámetros de salida de la función.
- Modificaciones (Changing): aquí especificamos los parámetros de entrada/salida que cambiarán de valor con la ejecución de la función.
- Tablas (Tables): aquí especificamos las tablas que se utilizan en la función.
Audio: En la versión actual de SAP no debemos especificar las tablas internas en la solapa "Tablas", ya que ha sido considerada como obsoleta por SAP. Debemos especificar las tablas internas en la solapa "Modificaciones".
- Excepciones (Exceptions): aquí especificamos las excepciones de la función. Una excepción es un error que se produce al ejecutar la función y que ha sido catalogado cuando se creó el módulo de función de modo de poder identificar rápidamente el motivo del error.
- Código Fuente (Source Code): aquí pondremos el código ABAP de la función.
Volviendo al ejemplo de la función Z_TEST_CLIENTES, para agregarle un parámetro de entrada como el DNI, haríamos:
<< imagen 2.11 >>
Y como parámetro de salida, en la solapa "Modificaciones" definimos la estructura de usuarios de la tabla que creamos anteriormente ZTABLA_USUARIOS.
<< imagen 2.12 >>
Para pasar como parámetro una tabla interna en lugar de una estructura, entonces debemos crear un tipo tabla mediante la transacción SE11, por ejemplo la tabla ZTT_USUARIOS con la estructura de la tabla ZTABLA_USUARIOS, y la incluiremos en la solapa "Modificaciones":
<< imagen 2.13 >>
Y pondremos el código en la solapa "Códifo Fuente" para recuperar de la tabla ZTABLA_USUARIOS los datos del usuario al que pertenezca el DNI de entrada:
<< imagen 2.14 >>
Finalmente activamos nuestro módulo de funciones.
Audio: Al momento de activar el módulo de funciones que acabamos de crear, es indispensable también activar los demás objetos que acabamos de crear y que están estrechamente relacionados al módulo de funciones, es decir, el grupo de funciones y los includes pertenecientes al grupo. Para ello basta con seleccionarlos en la pantalla de activación junto con el módulo de funciones.
SI probamos nuestro módulo de función mediante la tecla F8 o el botón de ejecutar, introducimos un DNI:
<< imagen 2.15 >>
Y observamos los resultados de dicha ejecución:
<< imagen 2.16 >>
Audio: Repasemos los pasos que realizamos para crear y ejecutar un módulo de funciones. Primero creamos el grupo de funciones y luego el módulo de funciones. Conjuntamente y de forma automática se generan varios includes. Posteriormente ingresamos el código correspodiente al módulo de funciones. Las declaraciones de datos y subrutinas las realizaremos en los datos globales del grupo de funciones. Finalmente al momento de activar, debemos tener presente que debemos activar todos los objetos que se generaron, es decir, el grupo de funciones, el módulo de funciones y los includes que se generaron de forma automática. Ahora bien, para probar el módulo de funciones lo ejecutamos con F8. Inmediatamente luego veremos la pantalla de ejecución del módulo de funciones, donde podremos completar los parámetros de entrada del módulo. En caso de que no los tenga, se procesará directamente el código ABAP dentro del módulo de funciones.
 
 
 
Agradecimiento:
Ha agradecido este aporte: Lorena Amoretti
Favorito:
Está publicación ha sido agregada a sus favoritos por: Lorena Amoretti
Sobre el autor
Publicación académica de Jos? Antonio Saavedra Rodr?guez, en su ámbito de estudios para la Carrera Consultor ABAP.
Jos? Antonio Saavedra Rodr?guez
El Salvador - Legajo: SX28V
✒️Autor de: 166 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP SD Nivel Avanzado
- Carrera Consultor en SAP SD Nivel Inicial