✒️ABAP Las subrutinas
ABAP Las subrutinas
Las subrutinas son secciones de codigo que pueden ser utilizadas mas de una vez. La idea de pasar el codigo de los programas a subrutinas, es para que los programas sean mas faciles de leer y mantener.
Modularizar. se llama asi a la accion de pasar el codigo de un programa a subrutinas, para mejorar la lectura y mantenimiento del mismo. Lo ideal es que una subrutina no tenga mas de 50 lineas de codigo.
Ayuda a encontrar mas facilmente los errores en los programas. Esto se debe a que al debaguear un programa solo me preocupo que el resultadode una subrutina sea el esperado sin entrar en detalle de como se llega a ese resultado.
Una subrutina se declara con la palabra reservada PERFORM(utilizada para la creacion de subrutinas).seguida del nombre de la subrutina.
Include de datos. Objeto ABAP que se crea para agrupar en ellos toas las declaraciones de datos que se utilzian en el programa.
Es importante que el nombre que se le asigne a una subrutina sea lo mas representativo posible del resultado que produce la subrutina. La longitud del nomobre no puede exceder los 30 caracteres.
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 uninclude de subrutinas o otro programa.
Se pueden pasar datos entre los programas principales y una subrutina a traves de los parametros. A los parametros definidos en el programa principal, a la derecha de la palabra PERFORM se los llama parametros actuales.
A los parametros definidos en la subrutina , a la derecha de la palabra FORM , se los llama parametros formales.
Los parametros pueden ser de tres tipos:
De entrada . cuando se utilizan para pasar datos del programa principal a la subrutina.
De salida. cuando se utilizan para pasar datos de la subrutina al programa principal.
De entrada y salida. cuando se utilizan para pasar datos de la subrutina al programa principal y tambien viceversa.
Paso de parametros a subrutinas
Para pasar los parametros utilizaremos tres opciones : USING, CHANGING y TABLES. Estas opciones se deben escribir en el orden que mostramos a continuacion en el siguiente grafico.
PERFORM subrutina TABLES <tabla de salida>
USING <parametro de entrada>
CHANGING <parametro de salida>
En el bloque FORM-ENDFORM debemos especificar el tipo de los parametros formales(parametros definidos en la subrutina, ala derecha la palabra reservada FORM) de esta forma nos aseguramos que solo se pasen parametros del tipo que corresponde a la subrutina.
Cuando una subrutina es llamada , los parametros deben ser pasados en el mismo orden en el que fueron declarados, por lo tnato, se debe respetar esta misma secuencia en el bloque FORM-ENDFORM.
Existen tres formas de pasar parametros:
Paso por valor. durante la llamada a subrutina, los parametros formales son creados como copias de los parametros actuales.
Paso por referencia. durante la llamada a la subrutina, solo la direccion de los parametros actuales se transfieren a los parametros formales. Dentro de la subrutina, se trabaja con el campo del programa que hace la llamada.
Si cambiamos los parametros formales, el contenido del campo del programa que hace la llamada tambien cambia.
Paso por valor y resultado. durante la llamada a la subrutina, los parametros formales son creados como copias de los parametros actuales. Los cambios en los parametros formales son copiados a los parametros actuales al final de la subrutina.
Subrutinas Externas
Si quisieramos llamar a una subrutina que es ta en un programa distinto al que estamos procesando, debemos utilizar la sig. sintaxis.
PERFORM <sub>(<programa>)USING....
Tambien podemos agregar includes de subrutinas a nuestro programa de la siguiente manera.
INCLUDE<report>.
 
 
 
Sobre el autor
Publicación académica de Marco Antonio Vazquez Gonzalez, en su ámbito de estudios para la Carrera Consultor ABAP.
Marco Antonio Vazquez Gonzalez
Mexico - Legajo: RB98L
✒️Autor de: 60 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Marco Vazquez