✒️ABAP Las subrutinas
ABAP Las subrutinas
Subrutinas
Las subrutinas son secciones de código que pueden ser utilizadas más de una vez.
Modularizar significa pasar el código de un programa a subrutinas, para mejorar la lectura del programa. Lo ideal es que una subrutina no tenga más de 50 lineas de código.
Las subrutinas se declaran con las palabras PERFORM seguida del nombre de la subrutina (no puede ser superior a 30 caracteres pero que sea lo más representativo posible).
Ejemplo: PERFORM selecciono_datos.
Haciendo doble click en la subrutina el programa indicara que la subrutina selecciona datos inexistentes. Al pulsar si tenemos que decidir si los datos se crean en el mismo programa de control o si queremos crear un Include nuevo (objeto de ABAP que se crea para agrupar en él todas las declaraciones de datos que se utilizan en un programa o grupo de programas).
Luego el sistema generará un bloque de código en el programa para que lo completemos con el código que corresponda.
Tipos de subrutinas
- Internas cuando la subrutina está dentro del mismo programa que la llama. Para crearla se utiliza la palabra clave PERFORM seguida del nombre de la subrutina. Esto crea un bloque FROM_ENDFROM donde colocamos nuestro código.Se pueden pasar datos entre los programas principales y una subrutina a través de parámetros.
A los parámetros definidos en el programa principal (a la derecha de la palabra PREFORM se les llama parámetros actuales (están definidos en el programa principal como variables globales o locales).
A los parámetros definidos en la subrutina a la derecha de la palabra FROM, se les llaman parámetros formales (se llaman también ficticios ya que son variables locales que se declaran en la cabecera de la subrutina donde se almacenan.
Cada parámetro formal y su correspondiente parámetro actual deben ser del mismo tipo pero pueden tener el mismo nombre o un nombre diferente. Su número debe coincidir de lo contrario se producirá un error de compilación.
Los parámetros pueden ser:
- 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 pasar datos de la subrutina al programa principal y también viceversa.
Pasar parámetros a subrutinas lo hacemos utilizando en orden las opciones: TABLES, USING y CHANGING.
PERFORM subrutina TABLES <tabla de salida>
USING <parámetro de entrada>
CHANGING <parámetro de salida>
En el bloque FORM-ENDFORM debemos especificar el tipo de los parámetros formales (asegurando así que solo se pasan parámetros del tipo correspondiente a la subrutina.
Las formas de pasar parámetros a subrutinas son:
- por valor - durante la llamada a la subrutina, los parámetros formales son creados como copia de los parámetros actuales. Si se modifica un parámetro formal dentro de la subrutina, esto no afecta al parámetro actual de fuera.
DATA: v_f1(1) TYPE c VALUE 'B'.
PERFORM paso_por_valor USING v_f1.
WRITE v_f1.
2. por referencia - durante la llamada de 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 se modifica los parámetros formales, el contenido del campo del programa también cambia..
Utilizamos en orden las opciones: TABLES, USING y CHANGING.
PERFORM subrutina TABLES <tabla de salida>
USING <parámetro de entrada>
CHANGING <parámetro de salida>
En el bloque FORM-ENDFORM debemos especificar el tipo de los parámetros formales (asegurando así que solo se pasan parámetros del tipo correspondiente a la subrutina.
3. Paso por valor y resultado - los parámetros formales son creados como copia de los parámetros actuales. Los cambios en los parámetros formales son copiados a los parámetros actuales al final de la subrutina.
- Externas cuando la subrutina está en un programa distinto al que las llama.
Se utiliza la sintaxis:
PERFORM <sub>(<programa>)USING ...
 
 
 
Sobre el autor
Publicación académica de Ana Schiau, en su ámbito de estudios para la Carrera Consultor ABAP.
Ana Schiau
España - Legajo: TK43H
✒️Autor de: 55 Publicaciones Académicas
🎓Egresado del módulo:
Presentación:
Trabajo como key user sd en un multinacional y quiero aprender a programar en abap.
Certificación Académica de Ana Schiau