✒️ABAP Las subrutinas
ABAP Las subrutinas
Lección 1: Subrutinas
1.-Que son las subrutinas
DEF: Son secciones de código que pueden ser utilizadas más de una vez.
Una subrutina se declara con la palabra reservada PERFORM seguida del nombre de la subrutina. Ej.
*Selecciono datos de tabla de usuarios.
PERFORM selecciono_datos.
Si hacemos doble clic en el nombre de la subrutina, nos dá la opción de crear la subrutina en una ventana de dialogo. Si aceptamos, nos preguntara donde queremos generar la subrutina, y las opciones son: Crear un nuevo include de datos o crearlas en el mismo programa de control.
Nos crea el siguiente código:
*-------------------------------
* Form selecciono datos
*-------------------------------
*- > p1 text
*< - p2 text
form selecciono_datos. (nombre de la subrutina máximo de 30 caracteres)
endform. “selecciono datos
2.-Tipo de Subrutinas
Existen dos tipos:
*Internas: Cuando está dentro del mismo programa que la llama.
*Externas: Cuando la subrutina está en un programa distinto al que las llama. Puede estar en un include de subrutinas u otro programa.
3.- Subrutinas internas
Para crear usamos la palabra clave PERFORM nombre_de_rutina. Esto crea un bloque FORM-ENDFORM donde colocamos el código.
Se pueden pasar datos entre los programas y las subrutinas a través de parámetros.
A los parámetros definidos en el programa principal, a la derecha de PERFORM se les llama parámetros actuales.
A los parámetros definidos en la subrutina, a la derecha de la palabra FORM se les llama parámetros formales.
Los parámetros pueden ser de 3 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 ambos casos anteriores.
4.- Paso de parámetros a subrutinas
Para pasar los datos utilizaremos tres opciones: USING, CHANGING, TABLES. Se debe escribir en el orden siguiente:
PERFORM subrutina TABLES <tabla de salida>
USING <parámetro de entrada>
CHANGING <parámetro de salida>.
Y se deben recoger en el mismo orden, ej.
DATA: ti_vuelos LIKE STANDARD TABLE OF sflight,
st_vuelos LIKE LINE OF ti_vuelos,
v_flag TYPE sy-subrc.
* Procesar los datos de entrada
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.
Existen 3 formas de pasar parámetros:
1-Paso por Valor
DATA: v_f1(1) TYPE c VALUE 'B'. PERFORM paso_por_valor USING v_f1. WRITE v_f1. ====================================== FORM paso_por_valor USING value(pf1). pf1 = 'X'. ENDFORM. " PASO_POR_VALOR
2.- Paso por referencia
DATA: v_g1(1) TYPE c VALUE 'A', v_g2(1) TYPE c VALUE 'B'. WRITE: v_g1 , v_g2. PERFORM paso_por_referencia USING v_g1 CHANGING v_g2. WRITE: v_g1 , v_g2. 
 
 
Sobre el autor
Publicación académica de Juan Hernández, en su ámbito de estudios para la Carrera Consultor ABAP.
Juan Hernández
Profesión: Programador Informático - España - Legajo: XQ15K
✒️Autor de: 125 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: PartTime
Certificación Académica de Juan Hernández