✒️ABAP Las subrutinas
ABAP Las subrutinas
Lección: Subrutinas |
Subrutinas
Las subrutinas son secciones de código que pueden ser utilizadas más de una vez.
Modularizar
Es 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 a encontrar más fácilmente los errores en los programas. Esto se debe a que al debaguear un programa solo debe ser de preocupación que el resultado de una subrutina sea el esperado sin entrar en detalle de cómo se llega a ese resultado.
Declaración:
PERFORM selecciono_datos.
Pasos:
- Doble click en el nombre de la subrutina, el sistema nos propondrá crear la subrutina en una ventana de diálogo.
- Seleccionar Sí y el sistema preguntará donde queremos generar la subrutina, las opciones son: crear un nuevo include de datos o crearlas en el mismo programa de control. Para este caso, las crearemos en el programa de control.
- Luego el sistema generará el siguiente bloque de código en nuestro programa para que lo completemos con el código que corresponda.
Importante: El nombre que se le asigne a una subrutina sea lo más representativo posible del resultado que produce la subrutina.
La longitud del nombre no puede exceder los 30 caracteres.
2. Tipos de subrutinas
- Internas: Cuando la subrutina está dentro del mismo programa que la llama.
- Externas: Cuando la subrutina está en un programa distinto al que las llama. Como puede ser el caso de un incluye de subrutinas u otro programa.
3. Subrutinas internas
Para crear estas se usa la palabra reservada PERFORM seguida del nombre de la subrutina. Esto crea un bloque FORM-ENDFORM donde colocamos nuestro código.
Se pueden pasar datos entre los programas principales y una subrutina a través de parámetros.
Para los parámetros definidos en el programa principal, a la derecha de la palabra PERFORM se le denomina parámetros actuales.
A los parámetros definidos en la subrutina, a la derecha de la palabra FORM, se los llama parámetros formales.
Tipos de parámetros:
- 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 también viceversa
4. Paso de parámetros a subrutinas
Pasar parámetros utilizaremos tres opciones: USING, CHANGING y TABLES
Se declara de esta forma el orden es importante:
PERFORM subrutina TABLES <tabla de salida>
USING <parámetros de entrada>
CHANGING <parámetros 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.
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.
Paso por referencia: durante la llamada a la subrutina, solo las direcciones de los parámetros actuales se transfieren a los parámetros formales. Dentro de la subrutina, se trabaja con el campo del programa que hace la llamada.
Paso por valor y resultado: 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 son copiados a los parámetros actuales al final de la subrutina.
5. Subrutinas externas
Para llamar a una subrutina que está en un programa distinto al que estamos procesando, debemos utilizar la siguiente sintaxis:
PERFORM <sub>(<programa>) USING ..
también se puede usar subrutinas a nuestro programa
INCLUDE <report>
 
 
 
Sobre el autor
Publicación académica de Edwin Cesar Condor Vilcapuma, en su ámbito de estudios para la Carrera Consultor ABAP.
Edwin Cesar Condor Vilcapuma
Profesión: Ing. Sistemas - Peru - Legajo: QN24S
✒️Autor de: 42 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Inicial
Disponibilidad Laboral: PartTime
Certificación Académica de Edwin Condor