✒️ABAP Las subrutinas
ABAP Las subrutinas
Subrutinas
1. Subrutinas
Son Secciones de codigo que pueden ser utilizados mas de una Vez.
Para que sean mas faciles de leer y mantener.
Modularizar
Se llama asi a la accion de pasar el codigo de un programa a subrutina, las subrutinas no deberian tener mas de 50 lineas.
PERFORM es para declarar una subrutina seguida del nombre de la misma.
Perform selecciono_datos.
si hacemos doble click en el nombre nos propone crear la subrutina.
Al poner que si nos preguntara donde queremos generar la subrutina.
Opciones: Crear un nuevo include de datos o crearlas en el mismo programa de control.
El nombre de la rutina debe ser representativo de los que devuelve.
Longitud del nombre de la subrutina no mas de 30 caracteres.
2. Tipos de subrutinas
a. Internas cuando la subrutina esta dentro del mismo programa que la llama.
b. Externas cuando la subrutina esta en un programa distinto al que la llama. Como un include de datos u otro programa.
3. Subrutinas Internas
cuando Creamos una subrutina se creara un bloque Form-endform donde colocaremos nuestro codigo.
Para pasar codigo se lo realiza a traves de los parametros.
Los parametros definidos a la derecha del PERFORM se los llama Paramteros Actuales.
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.
1. de entrada: cuando se usan para pasar datos del programa principal a la subrutina.
2. de salida: cuando se usan para pasar datos de la subrutina al programa principal.
3. de entrada y salida: cuando se utilizan para pasar datos de la subrutnia al programa principal y viceversa.
4. Paso de parámetros a subrutinas
para pasar parametros usaremos tres opciones USING, CHANGING y TABLES. se deben escribir en el orden que se indica.
Perform subrutina TABLES <tabla de salida>
USING <parametros de entrada>
CHANGING <parametros de salida>
En el Bloque Form-endForm debemos especificar el tipo de parametros formales.
ejemplo: de pasar tabla interna, estructura y variable
Data: ti_vuelos like standard table of sflight,
st_vuelos like of ti_vuelos,
v_flag type sy.subrc.
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.
Los parametros deben ser pasados siempre en el mismo orden.
Existen tres formas de pasar parametros:
a. Paso por valor: durante la llamada de la subrutina, los parametros formales son creados como copias de los parametros actuales. los cambios en los parametros formales no afectan a los parametros actuales.
importante Using value(pfi)
b. Pasos por referencia solo la direccion de los parametros actuales se transfieren a los parametros formales.
Si cambiamos los parametros formales, el contenido del campo del programa que hace la llamda tambien cambia.
Por mas que se llamen distintos mientras esten en el mismo orden y es del mismo tipo son el mismo parametro.
c 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.
se usa value() pero luego Changing y se asigna
5 Subrutina externas
para llamar a una subrutina que esta en un programa distinto al que estamos procesando, debemos hacerlo:
Perform <sub>(<programa>) using...
Tambien podemos agregar Includes de subrutinas a nuestro programa
INCLUDE <report>.
 
 
 
2 Agradecimientos:
Han agradecido este aporte: Oscar Arauz Salas, Ingrid Osorio
Sobre el autor
Publicación académica de Silvia Marina Carrizo, en su ámbito de estudios para la Carrera Consultor ABAP.
Silvia Marina Carrizo
Profesión: Analista Senior Genexus - Argentina - Legajo: ER54O
✒️Autor de: 61 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Silvia Carrizo