SAP ABAP - Subrutinas
Una subrutina es una sección de código reutilizable. Es una unidad de modularización dentro del programa donde se encapsula una función en forma de código fuente. Se pasa una parte de un programa a una subrutina para obtener una mejor descripción general del programa principal y utilizar la secuencia correspondiente de declaraciones muchas veces como se muestra en el siguiente diagrama.
Tenemos el programa X con 3 diferentes source code blocks. Cada bloque tiene las mismas declaraciones ABAP. Básicamente, son los mismos bloques de código. Para que este código sea más fácil de mantener, podemos encapsular el código en una subrutina. Podemos llamar a esta subrutina en nuestros programas tantas veces como queramos. Se puede definir una subrutina mediante las instrucciones Form y EndForm.
A continuación se muestra la sintaxis general de una definición de subrutina.
FORM <subroutine_name>.
<statements>
ENDFORM.
Podemos llamar a una subrutina usando la instrucción PERFORM. El control salta a la primera instrucción ejecutable en la subrutina <subroutine_name>. Cuando se encuentra ENDFORM, el control vuelve a la instrucción que sigue a la instrucción PERFORM.
Ejemplo
Step 1- Vaya a la transacción SE80. Abra el programa existente y luego haga clic derecho en el programa. En este caso, es 'ZSUBTEST'.
Step 2- Seleccione Crear y luego seleccione Subrutina. Escriba el nombre de la subrutina en el campo y luego haga clic en el botón Continuar. El nombre de la subrutina es 'Sub_Display' como se muestra en la siguiente captura de pantalla.
Step 3- Escriba el código en el bloque de instrucciones FORM y ENDFORM. La subrutina se ha creado correctamente.
Necesitamos incluir la instrucción PERFORM para llamar a la subrutina. Echemos un vistazo al código:
REPORT ZSUBTEST.
PERFORM Sub_Display.
* Form Sub_Display
* --> p1 text
* <-- p2 text
FORM Sub_Display.
Write: 'This is Subroutine'.
Write: / 'Subroutine created successfully'.
ENDFORM. " Sub_Display
Step 4- Guardar, activar y ejecutar el programa. El código anterior produce la siguiente salida:
Subroutine Test:
This is Subroutine
Subroutine created successfully
Por lo tanto, el uso de subrutinas hace que su programa esté más orientado a funciones. Divide la tarea del programa en subfunciones, de modo que cada subrutina es responsable de una subfunción. Su programa se vuelve más fácil de mantener ya que los cambios en las funciones a menudo solo deben implementarse en la subrutina.