
SUBRUTINAS
Estas son secciones de código que pueden se utilizadas mas de una vez dentro de un mismo programa y también pueden ser utilizadas por otros programas que las referencien. La idea de pasar el código de los programas a subrutinas, es para los programas sean más fáciles de leer y de mantener, en la practica se tendrá que modularizár el código, se llama así a la acción de pasar el código de un programa a subrutinas, para mejorar la lectura y el mantenimiento del mismo.
Lo ideal es que una subrutina no tenga mas de 50 lineas de código, ayuda a encontrar mas fácilmente los errores en los programas. Esto se debe a que al debuguear un programa solo nos preocupamos que el resultado de una subrutina sea el esperado sin entrar en detalle de cómo se llega a ese resultado. De inicio se debe de conocer que una subrutina se declara con la palabra reservada PERFORM seguida del nombre de la subrutina, por ejemplo.
PERFORM seleccionar_datos.
una vez que declaro la subrutina, le damos doble clic y generara un bloque de código de nuestro programa para que lo completemos con el código que corresponda:
*&-------------------------------------------------------------------------------------------------------------------*
*& Form SELECCIONAR_DATOS
*&-------------------------------------------------------------------------------------------------------------------*
* text Reservado para escribir que hace la subrutina
*&--------------------------------------------------------------------------------------------------------------------*
* --> p1 text Reservado para escribir los parámetros de entrada y salida
* -->p2 text
*&---------------------------------------------------------------------------------------------------------------------*
FORM seleccionar_datos .
ENDFORM. "SELECCIONAR_DATOS"
Tal como podemos ver en la imagen anterior, dentro de la plantilla de comentarios que se crea cuando generamos una subrutina, podemos especificar el objetivo de la subrutina y más abajo de este podemos detallar los parámetros de entrada y de salida de la subrutina junto con una descripción de cada uno de ellos.
por ejemplo, para la subrutina SELECCIONAR_DATOS podríamos escribir el texto "Seleccionamos los datos de la tabla de usuarios ZTABLA_USUARIOS" y también vamos a especificar el parámetro de salida P_TI_USUARIOS que será la tabla interna que contendrá los registros de la tabla base de datos de usuarios ZTABLA_USUARIOS tal como vemos en el siguiente ejemplo:
*&----------------------------------------------------------------------------------------------------------------------*
*& Form SELECCIONAR_DATOS
*&----------------------------------------------------------------------------------------------------------------------*
* Seleccionar los datos de la tabla de usuarios ZTABLA_USUARIOS
*-----------------------------------------------------------------------------------------------------------------------*
* --> p_ti_usuarios tabla interna de usuarios
*-----------------------------------------------------------------------------------------------------------------------*
FORM seleccionar_datos .
ENDFORM. "SELECCIONAR_DATOS
Como Tip, le nombre que se le asigne a una subrutina debe ser lo más representativo posible del resultado que produce la subrutina, la longitud del nombre de una subrutina no puede exceder los 30 caracteres.