✒️ABAP Las subrutinas
ABAP Las subrutinas
Las subrutinas son secciones de còdigo que pueden ser utilizadas màs de un vez dentro de un mismo programa y tambièn pueden ser utilizadas por otros programas que las referencien.
La idea de pasar el còdigo de los programas a subrutinas, para que los programas sean màs fàciles de leer y mantener.
Modularizar es la acciòn de pasar el còdigo de un programa a subrutinas. Una subrutina no debe tener mas de 50 lìneas de còdigo. Tambièn nos ayuda a encontrar màs fàcilmente los errores en los programas.
En ABAP una subrutina se declara con la palabra reservada PERFORM seguida del nombre de la subrutina.
PERFORM seleccionar_datos.
Si hacemos doble clic en el nombre de la subrutina, el sistema nos propondrà craer la subrutina en la siguiente ventana de diàlogo. Cuando nos pregunte si deseamos crear el objeto, presionamos Si y cuando el sistema nos pregunte donde crear la definiciòn de la subrutina, elegimos crearla en este caso en el mismo programa de control en vez de hacerlo en un nuevo include.
Luego el sistema generarà un bloque de còdigo en nuestro programa para que lo completemos con el còdigo que corresponda.
El nombre que se le asigna a una subrutina debe ser lo màs representativo posible del resultado que produce la subrutina, y la longitud del nombre de la subrutina no puede exceder los 30 caracteres.
Tipos de subrutinas
A.- Internas: cuando la subrutina se encuentra dentro del mismo programa que la llama o en un include de subrutinas, el cual se encuentra declarado en el programa de control.
B.- Externas: cuando la subrutina se encuentra en un programa distinto al que la llama. Para llamar a una subrutina externa desde otra programa vamos a escribir la sentencia PERFORM de la siguiente forma:
PERFORM <nombre_subrutina> IN PROGRAM <nombre_programa_subrutina>.
El paso de paràmetros a subrutinas
Podemos pasar datos entre el programa principal y una subrutina a travès de paràmetros.
Los paràmetros de una subrutina pueden ser de tres tipos:
a.- De entrada: cuando se utilizan para pasar datos del programa principal a la subrutina.
b.- De salida: cuando se utilizan para pasar datos de la subrutina al programa principal.
c.- De entrada y salida: cuando se utilizan para pasar datos de la subrutina al programa principal y tambièn viceversa.
Para pasar los paràmetros en las subrutina vamos a utilizar tres palabras reservadas que son las siguientes:
USING: para declarar paràmetros de entrada que seràn utilizados en la subrutina.
CHANGING: para declarar paràmetros de entrada/salida que seràn utilizados en la subrutina
TABLES: para declarar paràmetros de entrada/salida que son tablas, las cuales seràn utilizadas en la subrutina.
Las palabras reservadas que acabamos de mencionar deben ser escritas en el orden que mostramos a continuaciòn en la siguiente imagen:
PERFORM >nombre_subrutina> TABLES <tabla_interna>
USING <paràmetro_de_entrada>
CHANGING <paràmetro_de_entrada_y_salida>.
A los paràmetros definidos dentro del programa principal, en la declaraciòn de la subrutina, a la derecha de la palabra PERFORM se los llama paràmetros actuales.
A los paràmetros que se especifican en la definiciòn de la subrutina, a la derecha de la palabra FORM se los llama paràmetros formales.
Existen tres 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 paràmetros formales no afectan a los paràmetros actuales.
Paso por referencia: durante la llamada a la subrutina, solo la direcciòn 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.
Si cambiamos los paràmetros formales, 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 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.
Declaraciones de datos globales y locales
Cuando declaramos datos en un programa ABAP, es decir variables, estructuras, tablas internas u otros tipos de datos, podemos hacerlo de dos formas diferentes:
-Globalmente
-Localmente
Las declaraciones globales de datos tienen una ventaja y una desventaja
Ventaja: Facilita el armado del programa ya que no tenemos que estar pensando en donde particularmente va a ser utilizada una declaraciòn, sino que simplemente la declaramos globalmente y la utilizamos en donde corresponda.
Desventaja: Al realizar todas las declaraciones de datos en forma global no estamos generando un còdigo ABAP tan eficiente en cuanto a la modularizaciòn, lo cual en algùn punto puede complicar el mantenimiento futuro del programa.
Otra posibilidad con la que contamos consiste en realizar declaraciones localees, es decir dentro de una subrutina podrìamos declarar exclusivamente los datos que vamos a utilizar, de modo de modularizar lo màs posible el còdigo y consumir la menor cantidad de recursos del sistema, evitando declarar globalmente datos que solo seràn utilizados localmente y de esta forma hacemos màs eficiente el uso de la memoria de un programa ABAP.
 
 
 
Sobre el autor
Publicación académica de Ariel Martucci, en su ámbito de estudios para la Carrera Consultor ABAP.
Ariel Martucci
Profesión: Contador Publico - Argentina - Legajo: PJ45S
✒️Autor de: 78 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Un contador público de mediana edad con ganas de seguir aprendiendo carreras nuevas. estudiante avanzado de inglés, preparando mi first certificate, y al mismo tiempo involucrándome en programación.
Certificación Académica de Ariel Martucci