✒️ABAP Las subrutinas
ABAP Las subrutinas
- Subrutinas
- ¿Qué son las subrutinas?
Subrutinas: Son secciones de código que pueden ser utilizados más de una vez. Esto con la finalidad de hacer los programos más fáciles de leer y de mantener.
Modularidad: 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 más de 50 líneas de código. La modularización ayuda al reconocimiento de errores en los programas de manera más fácil.
Una subrutina se declara con la palabra reservada PERFORM seguida del nombre de la subrutina.
Ej.: PERFORM seleccione_datos.
Al hacer doble click en el nombre de la suburbana nos aparecerá una ventana de diálogo donde el sistema nos pregunta si queremos crear la subrutina, decimos que si y el sistema nos preguntará donde queremos crear la suburbana: crear un nuevo include de datos o crearlas en el mismo programa de control.
Si damos la opción de en el mismo programa de control, el sistema generará un bloque de código en nuestro programa, el cual completaremos con el código que corresponda:
*Bloque de código generado: form selecciono_datos.
endform.
* Nota: El nombre de la suburbana debe de ser lo más representativo posible sin exceder los 30 caracteres.
- Tipos de subrutinas:
Internas: La subrutina se encuentra dentro del mismo programa.
Externas: LA subrutina está en un programa distinto al que las llama. Puede ser el caso de un include de suburbanas u otro programa.
- Subrutinas internas
Ya vimos como crear este tipo de subrutinas con la palabra clave PERFORM y el bloque de código FORM-ENDFORM. Ahora nosotros podemos pasar datos entre los programas principales y una subrutina a través de parámetros. A los parámetros definidos en el programa principal, al derecha de PERFORM se les llama "parámetros actuales" y a las definidos a la derecha de FORM, se les llama "parámetros formales".
Tipos de parámetros:
- De entrada: Cuando pasan datos del programa principal a la subrutina.
- De Salida: Cuando pasan datos de la subrutina al programa principal.
- De entrada y salida: Cuando pasan datos de la subrutina al programa principal y viceversa.
- Paso de parámetros a subrutinas
Para pasar los parámetros utilizaremos 3 opciones: USING, CHANGING y TABLES
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, para asegurarnos que solo se pasen parámetros del tipo que corresponde a la subrutina.
Cuando una subrutina es llamada, los parámetros deben de ser pasados en el mismo orden en el que fueron declarados, por lo tanto, se debe respetar esta misma secuencia en el bloque FORM-ENDFORM.
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 de los parámetros formales no afectan a los parámetros actuales. Para pasar parámetros por valor utilizamos en la declaración de la subrutina la palabra reservada VALUE y encerramos al parámetro entre paréntesis. Los cambios que se realicen a los parámetros dentro de la subrutina no tendrán efecto fuera de ella en el programa principal.
- Paso por referencia: Durante la llamada a la subrutina, solo la dirección de los parámetros actuales se transfieren a las parámetros formales. Durante la subrutina, se trabaja con el campo del programa que hace la llamada. Si los parámetros formales son cambiados, el contenido del campo del programa que hace la llamada también cambia.
- Paso por valor y resultado: Durante la llamada a la subrutina, los parámetros formales son creados como una copia de los parámetros actuales. Los valores de los parámetros formales con copiados a los parámetros actuales al final de la subrutina.
- Subrutinas externas
Si queremos llamar a una subrutina que se encuentra en otro programa utilizamos la siguiente sintaxis:
PERFORM <sub>(<programa>) USING . . .
También se pueden agregar includes de sunrutinas a nuestro programa de la siguiente manera:
INCLUDE <report>.
 
 
 
Sobre el autor
Publicación académica de Sandra Erika Bernabe Abreu, en su ámbito de estudios para la Carrera Consultor ABAP.
Sandra Erika Bernabe Abreu
Profesión: Ingeniería en Sistemas Computacionales - Mexico - Legajo: EW68S
✒️Autor de: 58 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Sandra Bernabe