✒️ABAP / Las subrutinas Por Gabriel Luces González
ABAP Las subrutinas

¿Qué son las subrutinas y la modularización?
Las subrutinas son secciones de código que pueden ser utilizadas más de una vez dentro de un mismo programa, o incluso por otros programas. El proceso de pasar el código de un programa a subrutinas se denomina modularización, y su objetivo principal es hacer que los programas sean más fáciles de leer y de mantener.
Además, la modularización facilita la búsqueda de errores (debugging), ya que permite concentrarse en que el resultado de una subrutina sea el esperado sin perderse en los detalles de cómo se llega a él.
Definición y Creación- Declaración: En ABAP, una subrutina se declara con la palabra reservada PERFORM seguida del nombre de la subrutina.
- Definición: El bloque de código que contiene la lógica se define con las palabras FORM y ENDFORM.
- Ubicación: Al crear una subrutina, el sistema permite definirla en el mismo programa de control o en un include específico.
- Nombre: La longitud del nombre no puede exceder los 30 caracteres y debe ser representativo de su función. Se recomienda que una subrutina no tenga más de 50 líneas de código.
Existen dos tipos principales:
- Internas: El código está en el mismo programa que la llama o en un include declarado en él.
- Externas: El código reside en un programa distinto. Para llamarlas se usa la sintaxis: PERFORM <nombre_subrutina> IN PROGRAM <nombre_programa>.
Podemos intercambiar datos entre el programa principal y la subrutina.
- Parámetros Actuales: Son los definidos en el programa principal, a la derecha de PERFORM.
- Parámetros Formales: Son los definidos en la subrutina, a la derecha de FORM. Se debe especificar el tipo de estos parámetros para asegurar la integridad de los datos.
Para pasar estos parámetros se usan tres palabras reservadas que deben escribirse en este orden específico:
- TABLES: Para pasar tablas internas.
- USING: Para parámetros de entrada (datos que van del programa a la subrutina).
- CHANGING: Para parámetros de entrada/salida (datos que entran y pueden salir modificados).
Existen tres formas técnicas de pasar los datos:
- Paso por valor (USING value(p1)): Se crea una copia del parámetro actual en el formal. Los cambios dentro de la subrutina no afectan al dato original en el programa principal.
- Paso por referencia (USING p1 o CHANGING p2): No se crea una copia; la subrutina trabaja directamente con la dirección de memoria del dato original. Si se cambia el parámetro formal, cambia inmediatamente el actual.
- Paso por valor y resultado (CHANGING value(p1)): Se crea una copia, pero al finalizar la subrutina (en el ENDFORM), el valor modificado se copia de vuelta al parámetro original.
- Datos Globales: Se declaran al inicio del reporte (tras REPORT y antes de START-OF-SELECTION). Son accesibles desde cualquier parte del programa y sus subrutinas. Facilitan el armado inicial pero pueden complicar el mantenimiento y la eficiencia.
- Datos Locales: Se declaran dentro de una subrutina. Solo existen y son accesibles mientras esa subrutina se ejecuta. Esto modulariza mejor el código y hace más eficiente el uso de la memoria.
Analogía: Imagina que una subrutina es como una "receta de cocina" específica (ej. hacer masa de pizza) dentro de un gran libro de cocina (tu programa).
- Modularizar es escribir la receta de la masa en una página aparte y simplemente decir "Ver pág. 10 para la masa" (el PERFORM) cada vez que la necesites, en lugar de reescribir los pasos en cada receta de pizza diferente.
- Los parámetros son los ingredientes que le entregas al cocinero.
- El paso por valor es como darle una fotocopia de tu lista de compras; si él tacha algo, tu lista original sigue intacta. El paso por referencia es darle tu lista original; si él tacha algo, tu lista queda modificada.
 
 
 
Sobre el autor
Publicación académica de Gabriel José Luces González, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Inicial.
Gabriel José Luces González
Profesión: Consultor Sap Pm - Chile - Legajo: LA36W
✒️Autor de: 214 Publicaciones Académicas
🎓Cursando Actualmente: Carrera Consultor ABAP Nivel Avanzado
🎓Egresado de los módulos:
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor SAP FI Nivel Inicial
- Carrera Consultor SAP MM Nivel Inicial
Presentación:
Objetivo principal, adquirir todos los conococimiento relacionado al modulo de mm que me permita complementar mis conocimientos en el mundo sap
Certificación Académica de Gabriel Luces






Disponibilidad Laboral: FullTime


















