✒️ABAP Las subrutinas
ABAP Las subrutinas
SUBRUTINAS
Las subrutinas son conjuntos de instrucciones que pueden ser llamadas desde el programa en diversas ocasiones, evitando así su codificación cada vez que se necesiten ejecutar y dando además mayor claridad al programa.
Modularizar
Podemos modularizar ABAP, esto es dividir el programa en varias partes, mediante el uso de procedimientos o subrutinas (también llamados métodos o funciones en otros lenguajes). Esto hace que el código sea más fácil de entender, de mantener, y de encapsular los datos. Esto último se consigue porque los datos que se manejan en un procedimiento tan sólo están activos dentro del procedimiento y desaparecen cuando este se ha terminado de ejecutar. Ayuda a encontrar mas rápido los errores, ya que al debaguear solo se examina que el resultado arrojado por la subrutina sea el indicado y no cómo se llega a él.
Para definir una subrutina se utilizan las sentencias FORM y ENDFORM, que se especifican respectivamente al inicio y final de las instrucciones que forman la subrutina.
Para realizar una llamada a la misma se utiliza la sentencia PERFORM.
PERFORM EJEMPLO. “ Llamada a la subrutina
Al hacer doble click sobre el nombre el sistema nos propone crear la subrutina, al darle click en si nos pregunta si deseamos guardarla como un include de datos o en el mismo programa de control, escogemos programa de control y el sistema nos crea el bloque respectivo de la subrutina:
FORM EJEMPLO. “ Definición de subrutina
ENDFORM.
Tipos de subrutinas
Existen 2 tipos de subrutinas: internas (el código de la subrutina está dentro del programa que la llama) y externas (la subrutina está en un programa distinto al llamante). Las subrutinas se codifican al final del programa principal, tras todos los eventos.
Subrutinas Internas
El programa principal y la subrutina se podrán comunicar mediante parámetros que pueden ser pasados por valor o por referencia, siendo recomendable especificar el tipo de dato al definirlos. Los parámetros pueden ser de entrada, de salida o de entrada y salida.
Para pasar parámetros se utilizará USING, CHANGING Y TABLES y se deben escribir en el siguiente orden:
PERFORM EJEMPLO2 TABLES …. USING …. CHANGING
Los parámetros que son pasados a la subrutina en la llamada se les conoce como ACTUALES, y los parámetros definidos en la subrutina se les conoce como FORMALES.
PERFORM <nombre> USING parametro1 parametro2 ...
...
FORM <nombre> USING VALUE(parametro1) VALUE(parametro2) ...
...
ENDFORM.
Ej:
DATA x TYPE i VALUE 1.
PERFORM suma USING VALUE x.
FORM suma USING VALUE y LIKE x.
y = y 1.
WRITE / y.
ENDFORM.
En este caso al ejecutar la subrutina aparece en pantalla un 2, ya que este es el valor de
y . Sin embargo el valor de x permanece inalterado, ya que tan sólo hemos pasado una copia.
La variable y tan sólo existe durante el tiempo en que se está ejecutando la subrutina suma, y desaparece con la instrucción ENDFORM.
Ej 2:
DATA: D_NUMERO_1 TYPE I VALUE 1, D_NUMERO_2 TYPE I VALUE 2.
PERFORM SUMAR USING D_NUMERO_1 D_NUMERO_2.
FORM SUMAR USING PS_NUMERO TYPE I VALUE(PE_CANTIDAD) TYPE I.
PE_CANTIDAD = 3.
PS_NUMERO = PS_NUMERO PE_CANTIDAD.
ENDFORM.
Al finalizar la ejecución de la subrutina las variables tendrán estos valores:
D_NUMERO_1 => 4
D_NUMERO_2 => 2
PERFORM <nombre> USING parametro1 parametro2 ...
FORM <nombre> USING parametro1 parametro2 ...
...
ENDFORM.
Ej:
DATA: D_NUMERO_1 TYPE I VALUE 1, D_NUMERO_2 TYPE I VALUE 2.
PERFORM SUMAR USING D_NUMERO_1 D_NUMERO_2.
FORM SUMAR USING PS_NUMERO TYPE I PS_CANTIDAD TYPE I.
PS_NUMERO = PS_NUMERO PS_CANTIDAD.
ENDFORM.
Al finalizar la ejecución de la subrutina las variables tendrán estos valores:
D_NUMERO_1 => 3
D_NUMERO_2 => 2
Ej 2:
DATA x TYPE i VALUE 1.
PERFORM suma CHANGING x.&
 
 
 
Sobre el autor
Publicación académica de Alberth Julian Bolanos Bravo, en su ámbito de estudios para la Carrera Consultor ABAP.
Alberth Julian Bolanos Bravo
Profesión: Analista de Sistemas Web - Colombia - Legajo: FC65L
✒️Autor de: 46 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Alberth Bolanos