✒️ABAP Las subrutinas
ABAP Las subrutinas
1| LAS SUBRUTINAS
SUBRUTINAS - secciones de codigo que pueden ser utilizadas mas de una vez dentro de un mismo programa
(mas facilidad para leer y mantener)
MODULARIZAR -> pasar el codigo de un programa a subrutinas.
(lo ideal es que la subrutina no tenga mas de 50 lineas de codigo)
PERFORM (subrutinas en abap) .El nombre de una subrutina no debe exceder los 30 caracteres.
TIPOS DE SUBRUTINAS
--internas: dentro del mismo programa o include (declarado en el programa)
--externas: cuando la subrutina se encuentra en un programa distinto.
para llamar una subrutina externa:
PERFORM <nombre_subrutina> IN PROGRAM <nombre_programa_subrutina>
EL PASO DE PARÁMETROS A SUBRUTINAS
--De Entrada: Para pasar datos del programa a la subrutina.
--De Salida: Pasar datos de la subrutina al programa principal.
--De Entrada y Salida: entrada y salida del programa a subrutina.
Parametros dentro de la subrutina
USING - para declarar parámetros de entrada que serán utlizados en la subrutina
CHANGING - para declarar parámetro de entrada/salida que serán utlizados en la subrutina
TABLES - para declarar parámetros de entrada/salida que son tablas, las cuales serán utlizadas en la subrutina.
PERFORM <nombre_subrutina> TABLES <tabla_interna>
USING <parámetro_de_entrada>
CHANGING <parámetro_de_entrada_y_salida>.
parámetros actuales:
PERFORM seleccionar_datos CHANGING v_hay_datos.
parámetros formales.
FORM seleccionar_datos CHANGING p_hay_datos.
ENDFORM.
*parámetros actuales
PERFORM procesar_datos TABLES ti_usuarios
USING wa_usuarios
CHANGING v_flag.
*parámetros formales
FORM procesar_datos TABLES p_ti_usuarios STRUCTURE ztabla_usuarios
USING p_wa_usuarios STRUCTURE ztabla_usuarios
CHANGING p_flag TYPE sy_subrc.
ENDFORM.
*Si pasamos una tabla interna como parámetro en una subrutina - Debemos si o si especificar la estructura de la misma
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 en los parametros formales no afectan a los parametros actuales.
ej:
DATA: v_fl (1) TYPE c VALUE 'B'.
PERFORM paso_por_valor USING v_fl.
WRITE v_fl.
FORM paso_por_valor USING value(pfl).
pfl = 'X'.
ENDFORM.
----
Resultado
B
--Paso por referencia: solo la dirección de los p. actuales se transfieren a los p. formales.
Si cambiamos los p. formales, cambia el contenido del campo del programa.
--Paso por valor y resultado: Los p. formales son creados como copias de los p. actuales
Los cambios en los p. formales son copiados a los p. actuales al final de la subrutina.
DECLARACIONES DE DATOS GLOBALES Y LOCALES
globales:
ventaja - declaracion simple y utilizar donde corresponde
desventaja - codigo no eficiente en cuanto a la modularización (puede complicar el mantenimiento)
locales:
consume menos recursos del sistema, mas eficiente en el uso de la memoría
 
 
 
Agradecimiento:
Ha agradecido este aporte: Octavio Pasciucco
Sobre el autor
Publicación académica de Maximiliano Andres Fraga, en su ámbito de estudios para la Carrera Consultor ABAP.
Maximiliano Andres Fraga
Profesión: Desarrollador - Argentina - Legajo: PX18Q
✒️Autor de: 20 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Certificación Académica de Maximiliano Fraga