✒️ABAP Las subrutinas
ABAP Las subrutinas
Unidad 4: Subrutinas, Funciones, Batch,
Lección 1: Subrutinas.
1.- Que es una subrutina?
Las subrutinas son secciones de código que pueden ser utilizadas mas de una vez. Utilizamos subrutinas para mejorar la legibilidad del código y su mantenimiento. Las subrutinas para ser útiles deben mantener acotado su tamaño. No deberían tener mas de 50 líneas de código.
Al proceso de organizar el código de un programa en subrutinas se le llama modularización. La modularización facilita la detección de errores,
Declaramos una subrutina mediante la palabra reservada PERFORM: PERFORM <nombre subrutina>.
Las subrutinas se pueden crear en el mismo programa de control o en un include de datos.
El código de una subrutina esta contenido entre las palabras clave FORM y ENDFORM. Los nombres asignados a subrutinas deben ser clarificadores de su función y no deben sobrepasar los 30 caracteres. de longitud.
2.-Tipos subrutinas.
En ABAP tenemos dos tipos de subrutinas:
- Internas: La subrutina se encuentra en el mismo programa que la llama.
- Externas: La subrutina se halla en un programa distinto del que la llama. Como includes de subrutinas o otro programa.
3.- Subrutinas internas.
Se declaran mediante PERFORM <nombre subrutina> y su código esta enmarcado por las palabras clave FORM y ENDFORM. Entre el programa principal y una subrutina puede haber intercambio de datos. Para ello hacemos uso de parámetros. Los parámetros que hay en la declaración de subrutinas, se denominan actuales. Los parámetros que aparecen en la propia subrutina se denominan formales.
Podemos tener tres tipos de parámetros:
- De entrada: Se utilizan para para pasar datos del programa principal a la subrutina.
- De salida: Mandan información de la subrutina al programa principal.
- De entrada y salida: Permiten el intercambio de datos en ambas direcciones.
4.- Paso de parámetros a las subrutinas..
En la declaración de la subrutina encontraremos las siguientes claúsulas USING, CHANGING, TABLES siempre en este orden que nos permitirán definir los parámetros de los diferentes tipos.
PERFORM <nombre subrutina> USING <parametros de entrada>
CHANGING <prámetros de salida>
TABLES <tabla de salida>.
Los parámetros formales deben tener las definiciones de tipos de datos correspondientes a los datos intercambiados. Los parámetros se deben informar en el mismo orden tanto en la llamada como en la cabecera de la subrutina y deben ser del mismo tipo que los campos utilizados como parámetros en la llamada.
Hay tres formas de pasar parámetros:
- Por valor: Durante la llamada a la subrutina los parámetros formales se crean como copias de los actuales, En este caso los cambios que puedan sufrir los parámetros formales en el código de la subrutina no afectan los actuales. Es decir los parámetros actuales mantiene su valor fuera de la subrutina.
PERFORM <nombre subrutina> USING <parametro>
FORM <nombre de subrutina> USING Value <parámetro>
- Paso por referencia: Durante la llamada a la subrutina se pasa la dirección de los parámetros actuales. En el código de la subrutina se esta trabajando en realidad con el campo del programa que hace la llamada. Por tanto los cambios de valor que experimentan este tipo de parámetros dentro de la subrutina afecta al valor del campo de llamada fuera de la misma.
PERFORM <nombre subrutina> USING <parametro> CHANGING <parámetro>
FORM <nombre de subrutina> USING <parámetro> CHANGING <parámetro>
- Paso por valor y resultado: Durante la llamada a la subrutina los parámetros formales se crean como copias de los actuales. Los cambios de valor efectuados en el código de la subrutina a los parámetros formales se copian en los actuales al final de la subrutina.
PERFORM <nombre subrutina> USING <parametro> CHANGING <parámetro>
FORM <nombre de subrutina> USING value <parámetro> CHANGING value <parámetro>
5.- Subrutinas externas.
Como hemos dicho anteriormente las rutinas externas están en programas distintos del que estamos procesando. Las llamaremos de la siguiente manera PERFORM <nombre subrutina> (<nombre programa>) USING ....
Si queremos agregar includes a nuestro programa podemos hacerlo mediante la palabra reservada INCLUDE <nombre include>
 
 
 
Sobre el autor
Publicación académica de Francisco Compte Sanchez, en su ámbito de estudios para la Carrera Consultor ABAP.
Francisco Compte Sanchez
Profesión: Sap Business&integration Architect - España - Legajo: QQ38S
✒️Autor de: 105 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Consultor sap mm y sd con algún conocimiento abap a nivel de debug. quiero consolidar conocimientos técnicos para reforzar mi perfil profesional.
Certificación Académica de Francisco Compte