✒️ABAP Los módulos de funciones
ABAP Los módulos de funciones
MODULOS DE FUNCIÓN
Una función es una subrutina externa especial que se almacena en una “biblioteca central” de SAP. Hay muchas predefinidas, de librería, así como subrutinas, que pueden ser llamados desde cualquier programa Abap/4. Se pueden crear otras nuevas (indicando el grupo de funciones al que van a pertenecer). Las funciones se crean por menú en Workbench Abap/4 – Biblioteca de Funciones. También se pueden ver y testear (probar su funcionamiento introduciendo valores en los parámetros de entrada de forma manual, al pulsar en el botónTest).
Los módulos de funciones son objetos que realizan operaciones que pueden ser utilizadas en varios programas. Al crear un módulo de función con el código que realiza una operación, se evita tener que repetirlo en todos los programas que realicen esa operación añadiendo en ellos una llamada al módulo de función. Además de evitar que se repita el mismo código en diferentes programas, se facilita el mantenimiento del proceso, ya que las modificaciones que se realicen en un módulo de función afectan a todos los programas que lo utilicen. SAP dispone de un gran número de módulos de función predefinidos que se pueden utilizar en nuestros programas, a las que se añadirán los que se desarrollen a medida. Los módulos de función pertenecen a grupos de funciones, que los agrupan según su funcionalidad. Los módulos de funciones de un mismo grupo de funciones comparten las definiciones de datos globales.
CREAR UN MÓDULO DE FUNCIÓN
Para crear un grupo de función se realiza por la opción de menú del OBJET NAVIGATOR
Ruta de acceso: (En el menú principal de SAP) ‘Herramientas-> Workbench ABAP4-> Resumen-> Object Navigator (SE80). Seleccionar ‘Grupo de funciones’, digitar el nombre del grupo de funciones a Crear.
Aparecerá una ventana de diálogo donde se definiran los atributos del grupo de funciones.
- Grupo de funciones: Nombre del grupo de funciones.
- Texto breve: Descripción del grupo de funciones.
CALL FUNCTION
La sentencia CALL FUNCTION se utiliza para llamar a un módulo de función. Esta sentencia tiene varias variantes en función de la tarea de trabajo que procesa el módulo de función.
Sintaxis: CALL FUNCTION <función>
[ EXPORTING <p1> = <f1> ... <pn> = <fn> ]
[ IMPORTING <p1> = <f1> ... <pn> = <fn> ]
[ TABLES <p1> = <tabla1> ... <pn> = <tablan> ]
[ CHANGING <p1> = <f1> ... <pn> = <fn> ]
[ EXCEPTIONS <p1> = <exc1l> ... <pn> = <excn> [ OTHERS = <nn>] ].
- Grupo de funciones: Sirve para reutilizar funciones (son programas que calculan algo, que devuelven algo como parámetro(s) de salida). Es análogo a un pool de subrutinas (agrupación de subprogramas). El grupo de funciones crea un programa module pool (se compone sólo de sentencias INCLUDE) de nombre SAPLXXXX, con XXXX el nombre del grupo de funciones.
- Sintaxis de la llamada a una función: Con esta sentencia se llama a un módulo de función desde programa. Conviene escribir la sintaxis de esta sentencia usando el botón de Traer Modelo del Editor Abap/4, para que aparezcan automáticamente los parámetros de concretos de la función.
CALL FUNCTION nombre [ EXPORTING f1 = a1 ... fn = an ]
[ IMPORTING f1 = a1 ... fn = an ]
[ CHANGING f1 = a1 ... fn = an ]
[ TABLES f1 = a1 ... fn = an ]
[ EXCEPTIONS f1 = a1 ... fn = an ].
- EXPORTING: Parámetros que van hacia el módulo, son los de entrada (la función por tanto no los modifica). Se dan valores actuales a1 ... an a los parámetros formales f1 ... fn de la función (que estarán declarados como IMPORT en la función).
- IMPORTING: Parámetros de salida (en la función estarán declarados como EXPORT). CHANGING: Parámetros de entrada / salida (son modificables). TABLES: Se usa para pasar tablas internas como parámetros.
- EXCEPTIONS: Se usa para gestionar excepciones y errores. Cuando se activa la excepción fi, en el campo de retorno SY-SUBRC se tendrá el valor ai. Así se puede saber qué ocurrió al ejecutar la función. Con OTHERS = a se da tratamiento a errores no contemplados.
- ERROR-MESSAGE = re. Se usa para tratar errores generando un mensaje. Se tendrá el valor re en SY-SUBRC. Se podrá mandar el mensaje desde el programa llamante, accediendo a los campos del sistema:SY-MSGID (nombre del mensaje), SY-MSGNR (número del mensaje), SY-MSGTY (tipo del mensaje), SY-MSGV1 ... SY-MSGV4 (4 textos para los 4 posibles parámetros & del mensaje).
- Objetos parciales de una función:
Atributos y parámetros: Una función tiene los siguientes parámetros: EXPORTING (de entrada a la función), IMPORTING (de salida. Resultado de la función), CHANGING (de entrada / salida), TABLES (tablas internas de entrada / salida), EXCEPTIONS (excepciones producidas por la función. Se usa para el manejo de errores).
Texto fuente: Código Abap/4 de la función.
Documentación: Asociada a la función, dependiente del idioma.
Datos globales: Código Abap/4 con las sentencias declarativas del grupo de función.
Programa principal: Programa que llama a la función. Cada módulo de función tiene su correspondiente “include” (CALL FUNCTION) en el programa.
- Gestión de excepciones dentro de un módulo de función. Hay 2 maneras:
RAISE excepción.
MESSAGE ... RAISING excepción.
La única manera de gestionar errores dentro de un módulo de función es elevar excepciones, ya que no se pueden usar mensajes en ellas. La segunda sentencia activa un mensaje, pero no lo muestra. Para poder visualizarlo hay que acceder a los campos del sistema de la tabla SYST, donde se almacena el texto del mensaje, número, ... pero desde el programa principal).
 
 
 
Sobre el autor
Publicación académica de Sergio Armando Beltran Castaneda, en su ámbito de estudios para la Carrera Consultor ABAP.
Sergio Armando Beltran Castaneda
Profesión: Ingeniero de Sistemas con Especialización en Gerencia de Proyectos - Colombia - Legajo: WK55K
✒️Autor de: 70 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Soy ingeniero de sistemas desde hace mas de 10 años y quiero enfocarme en el mundo sap, iniciando en el lenguaje abap, con miras a ampliar mi conocimiento profesional y laboral.
Certificación Académica de Sergio Beltran