✒️ABAP Las subrutinas
ABAP Las subrutinas
SUBRUTINAS: Secciones de codigo que pueden ser utilizadas mas un de vez (para que los programas sean mas faciles de leer y entender).
MODULARIZAR: Accion de pasar el codigo de un programa a subrutinas. Lo ideal es que una subrutina no tenga mas de 50 líneas de codigo.
La subrutina se declara con PERFORM seguidar del nombre de la subrutina.
Si hacemos doble clic en el nombre de la subrutina el sistema nos propondra crear la subrutina en una ventana de dialogo, decimos que si y el sistema nos pregunta donde queremos crear la subrutina:
- Crear un nuevo include de datos.
- Crearlas en el mismo programa de control.
Elegimos crearla en el programa de control.
El sistema genera un bloque de código en el programa para que lo completemos con el codigo que corresponda.
Es importante que el nombre de la subrutina sea lo mas representativo del resultado que produce. No debe exceder los 30 caracteres.
TIPOS DE SUBRUTINAS: Existen 2 tipos de subrutina:
- INTERNAS: La subrutina esta dentro del mismo programa que la llama.
- EXTERNAS: La subrutina esta en un programa distinto al que la llama (include de subrutina u otro programa).
SUBRUTINAS INTERNAS:
Al crear una subrutina con PERFORM y el nombre de la subrutina lo que hacemos es crear un bloque FORM-ENDFORM que es donde colocamos nuestro codigo.
Para pasar datos entre los programas principales y las subrutinas usamos parametros. Segun su posicion los parametros pueden ser:
Parametros acutales: parametros definidos en el programa principal a la derecha de PERFORM.
Parametros formales: parametros definidos en la subrutina a la derecha de FORM.
Hay tres tipos de parametros:
De entrada: se utilizan para pasar datos del programa principal a la subrutina.
De salida: se utilizan para pasar datos de la subrutina al programa principal.
De entrada y salida: se utilizan para pasar datos tanto del programa principal a la subrutina y viceversa.
PASO DE PARAMETROS A SUBRUTINAS: para esto usaremos 3 opciones: USING CHANGING y TABLES y las escribiremos en el siguiente orden:
PERFORM <subrutina> TABLES <tabla de salida>
USING <parametro de entrada>
CHANGING <parametro de salida>
En el bloque FORM-ENDFORM debemos especificar el tipo de los parametros formales para asegurarnos que solo se pasen parámetros del tipo que corresponde a la subrutina.
Cuando una subrutina es llamada, los parametros deben ser pasados en el mismo orden en el que fueron declarados.
Formas de pasar parametros:
- Paso por valor: durante la llamada a la subrutina, los parametros formales son creados como copias de los parametros actuales. Los cambios en los formales no afectan a los actuales.
- Paso por referencia: solo la direccion de los parametros actuales se transfieren a los formales. En la subrutina se trabaja con el campo del programa. Si cambiamos los formales el contenido del campo del programa tambien cambia.
- Paso por valor y resultado: los parametros formales son creados como copia de los parametros actuales. Los cambios de los formales son copiados a los actuales al final de la subrutina.
SUBRUTINAS EXTERNAS: para llamar a una subrutina externa que esta en un programa distinto usamos la siguiente sintaxis:
PERFORM <subrutina> (<programa>) USING...
Tambien podemos agregar include de subrutinas:
INCLUDE <report>
 
 
 
Agradecimiento:
Ha agradecido este aporte: Andrés Moreno Garzón
#1 / 15 de Abril de 2014 / Andrés Moreno Garzón: |
Sobre el autor
Publicación académica de Gema Moreno Ferreiro, en su ámbito de estudios para la Carrera Consultor ABAP.
Gema Moreno Ferreiro
Profesión: Operario Especializado - España - Legajo: QO11N
✒️Autor de: 41 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Gema Moreno