![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP Las subrutinas
ABAP Las subrutinas
![ABAP Las subrutinas ABAP Las subrutinas](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/388.jpg)
Que son las subrutinas?
Son secciones de codigo que pueden ser utilizadas mas de una vez dentro de un mismos programa y tambien pueden ser utilizadas por otros programas que la referencien.
Moduarizar: se llama a la accion de pasar el codigo de un programa a surutinas par amejorar la lectura y el mantenimiento del mismo. Lo ideal es que una subrutina no tenga mas de 50 lineas de codigo
LA modularizacion ayuda a encontrar mas faci,mente los errores en los programa, En ABAP una subrutina se declara con la palabra PERFORM seguida de la subrutina: EJ; PERFORM seleccionar_datos.
El nombre que se le asigne a una subrutina debe ser lo mas representativo posible del resultado que poduce la subrutina. la longitud del nombre de una subrutina no puede exceder los 30 caracteres.
2. Tipos de subrutinas
- Internas: cuando la subrutima se encuentra dentros del mismo progrma que la llama o en un include de subrutinas el cual se encuentra declarado en el programa de control.
- Externas: cuando la subrutina se encuentra en un programa distinto al que la llama. Para llamar a una subrutina externa dede otro programa vamos a escribir la sentencia PERFORM asi: PERFROM <nobre_subrutina> IN PROGRAM<nombre:programa_subrutina
3. El paso de parametros a subrutinas
Podemos pasar datos entre el programa principal y una subrutina a traves de parametros.
3 tipos:
- De entrada: cuando se utilizan para pasar datos del programa principal a las subrutinas.
- De salida: cuando se utiliza 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 tambien viceversa.
para pasar los parametros en las subrutinas vamos a utilizat 3 palabras:
- using: para declarar parametros de entrada que seran utilizados en la subrutina
- changing: para delcarar parametros de nentrada/salida que seran utilizados en la subrutina
- Tables: para declarar parametros de entrada /salida que son tablasa las cuales seran utilizados en la subrutina
Ej:
PERFORM<nombre_subrutina> tables <tabla_interna>
using <parametros_de_entrada>
changing <parametro_de_entrada_y_salida>
Los parametros definidos dentros del program principa en al declara cion de la subrutina a la derecha de la palabra PERFORM se la llama parametros actuales.
A parametros que se especifican en la definicion de la subrutina a la derecha de la palabra form se los llama para metros formales.
Ahora bien, en el bloque form-endform debemos especificar el tipo de los parametros formales.
Cuando una subrutina es llamada, los parametos deben se pasados por el mimso orden en el que fueron declarados, se debe respetar esta misma secuencia en el bloque FORM-ENDFORM.
Existen 3 formas de pasasr parametros:
- Paso por valor: durante la llamada a la subrutina, los parametros formales son creados como copias de los parametros actuales.
- Paso por referencia: durante la llamada a la subrutina, solo la direccion de los parametros actuales se transfieren a los parametros formales. Denros de la subrutina, se trabajo con el campo del programa que hace la llamada.
- 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
4. Las declaraciones de datos globales y locales
Cuando declaramos datos en un programa ABAP podemos hacerlo de 2 formas
- globalmente
- localmente
las declaracines globales se pueden utilizar en cualquier lugar del programa y con esto nos referimos a que pueden ser utilizadas tanto en el programa pricipal como en cualquier de las subrtinas del programa
Otra posibilidad es declaraciones locales, dentros de una subrutina podriamos declarar exclusivamente los datos que vamos a utilizar de modo de modularizar lo mas posible el codigo y consumir la menor cantidad de recursos del sistema, evitando declarar globalmente los datos.
 
 
 
Sobre el autor
Publicación académica de Lucas Mera, en su ámbito de estudios para la Carrera Consultor ABAP.
Lucas Mera
Profesión: Analista de Sisemas - Argentina - Legajo: SW47M
✒️Autor de: 28 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Profesional con sólida experiencia en el liderazgo, comunicación, gestión negocio y desarrollado en empresas internacionales de gran envergadura.certificado en itil v.3 y scrum master.
Certificación Académica de Lucas Mera