Funciones ABAP – Cómo encapsular código

Funciones ABAP

Los módulos de funciones ABAP sirven para encapsular porciones de código, brindando una forma sencilla de intercambiar datos; se agrupan en librerías dentro de un grupo de funciones. Generalmente, estos grupos de funciones contienen módulos de funciones que sirven a un propósito en particular; como ejemplo tenemos las BAPIs.

SAP contiene una larga lista de módulos de funciones estándar, los cuales nos pueden ayudar en múltiples escenarios.

Grupos de Funciones ABAP

Son programas que contienen los módulos de funciones, esto permite tener declaraciones globales y rutinas utilizadas por todos los módulos de funciones. Ademas, sus módulos de funciones pueden llamarse desde otros programas.

Estructura de un grupo de funciones

La arquitectura de un grupo funciones se compone de la siguiente manera:

  • Programa ABAP control nombrado con la siguiente nomenclatura SAPL<fgrp>, contiene todos los INCLUDES.
  • INCLUDE L<fgrp> TOP: Declaraciones globales.
  • INCLUDE L<fgrp> Uxx:: Módulos de funciones SAP.
  • L<fgrp> F01, L<fgrp> F02… L<fgrp> Fxx: Subrutinas.

Crear Módulo de Funciones ABAP

Para crear un módulo de funciones en ABAP, es necesario crear primero el grupo de funciones, esto lo podemos realizar en la transacción SE80.

Crear Grupo de Funciones ABAP

Posteriormente, desde la transacción SE37 podemos crear nuestro módulo y asignárselo a nuestro grupo de funciones.

Crear Modulo de Funciones ABAP

LLamado de una función ABAP

Puedes utilizar la función dentro de cualquier programa ABAP, unicamente tienes que utilizar la siguiente sentencia.

CALL FUNCTION 'NOMBRE DE LA FUNCIÓN'

Ejemplo Function Module

En el siguiente ejemplo declaramos dos variables, una de tipo entera y otra de tipo spell, las cuales utilizaremos como parámetros al momento de llamar nuestro modulo de funciones.

DATA lv_integer TYPE i.
DATA lv_words TYPE spell.

CALL FUNCTION 'SPELL_AMOUNT'
  EXPORTING
    AMOUNT = num_1
  IMPORTING
    IN_WORDS = lv_words.

Por último, es importante declarar los parámetros que se van a utilizar. Es decir, los datos a enviar para ser procesados y la respuesta a recibir. Los tipos de parámetros son los siguientes:

  • EXPORTING: Los datos que vas a enviar a la función. Ej: El número de factura
  • IMPORTING: Los datos que esperas recibir. Ej: La fecha de creación de la factura.
  • CHANGING: Un valor que se va a cambiar Ej: Un importe a calcular después de impuestos.
  • TABLES: Una tabla de dos dimensiones. Ej: Los items o posiciones que corresponden a esa factura.
  • EXCEPCIONES: Una alerta por parte del módulo de función, en caso de falla.

Para cada caso es necesario revisar cuales son los tipos de datos que utiliza la función SAP, si enviamos un parámetro cuyo tipo de dato ABAP no concuerde, recibiremos un excepción, la cual en caso de no ser manejada terminará en un DUMP.

Documentación Oficial SAP

Para más información sobre los ABAP Function Modules y los Function Group puedes visitar el siguiente enlace.