✒️ABAP Las subrutinas
ABAP Las subrutinas
Las subrutinas son secciones de código que pueden ser utilizadas mas de una vez (Son funciones reutilizables en varios programas).
MODULARIZAR:
Se llama así a la acción de pasar el código de un programa a subrutinas, para mejorar la lectura y mantenimiento del mismo. Lo ideal es que una subrutina no tenga mas de 50 líneas de código.
La modularización ayuda a encontrar mas fácilmente los errores en los programas. Esto se debe a que al hacer debug en un programa el resultado de la subrutina sea el esperado.
Para declarar una subrutina, se utiliza la palabra reservada PERFORM seguida del nombre de la subrutina, Ejemplo:
* Selecciono datos de tabla de usuarios
PERFORM selecciono_datos.
Si hacemos doble clic en la subrutina, el sistema nos propondrá crearla, seleccionamos que si, despues el sistema genera automaticamente un código para que despues lo agreguemos lo que necesitamos.
TIPOS DE SUBRUTINAS:
INTERNAS: Cuando la subrutina esta dentro del mismo programa que la llama.
EXTERNAS: Cuando la subrutina esta en un programa distinto al que las llama. Como puede ser el caso de un include de subrutinas o otro programa.
PASO DE PARAMETROS A SUBRUTINAS:
Para pasar parámetros utilizaremos tres opciones: USING, CHANGING y TABLES, estas opciones de deben escribir en el orden que mostramos a continuación en el siguiente ejemplo.
PERFORM subrutina TABLES <tabla de salida> USING <parámetro de entrada> CHANGING <parámetro de salida>.
En el bloque FORM-ENDFORM debemos especificar el tipo de los parámetros formales. De esta forma nos aseguramos que solo se pasen parámetros del tipo que corresponde a la subrutina. Veamos un ejemplo donde pasamos un tabla interna, una estructura y una variable de tipo carácter.
DATA: ti_vuelos LIKE STANDARD TABLE OF sflight, st_vuelos LIKE LINE OF ti_vuelos, v_flag TYPE sy-subrc. * Procesar los datos de entrada PERFORM procesar_datos TABLES ti_vuelos USING st_vuelos CHANGING v_flag. FORM procesar_datos TABLES t_vuelos STRUCTURE sflight USING st_vuelos STRUCTURE sflight CHANGING p_flag TYPE sy-subrc. ENDFORM. "procesar_datos
NOTA:
Cuando una subrutina es llamada, los parámetros deben ser pasados en el mismo orden en el que fueron declarados.
Existen 3 formas de pasar parámetros:
Paso Por Valor: Durante la llamada a la subrutina, los parámetros formales, son creados como copias de los parámetros actuales. Los cambios en los parámetros formales no afectan a los parámetros actuales. Ejemplo:
************************************************************************ *** Paso de parametros por valor *************************************** ************************************************************************ DATA: v_f1(1) TYPE c VALUE 'B'. PERFORM paso_por_valor USING v_f1. WRITE v_f1.*&---------------------------------------------------------------------* *& Form PASO_POR_VALOR *&---------------------------------------------------------------------* FORM paso_por_valor USING value(pf1). pf1 = 'X'. ENDFORM. " PASO_POR_VALOR
 
 
 
Sobre el autor
Publicación académica de Carlos Nahum Mada Reyes, en su ámbito de estudios para la Carrera Consultor ABAP.
Carlos Nahum Mada Reyes
Profesión: Ing. en Sistemas Computacionales - Mexico - Legajo: QD42U
✒️Autor de: 11 Publicaciones Académicas
🎓Egresado del módulo:
Presentación:
Superarme en todos los aspectos de mi vida, brindando lo mejor de mí cada día, tanto en el aspecto laboral como en el aspecto personal.
Certificación Académica de Carlos Mada