1| Qué son las subrutinas
Son secciones de código que pueden ser utilizadas más de una vez.
MODULARIZAR.- Nos sirve para pasar el código de un programa a subrutinas, para mejorar la lectura y mantenimiento del mismo.
Una subrutina se declara con la palabra reservada PERFORM seguido deel nombre de la subrutina.
Pasos para crear un bloque de codigo en el programa de una subrutina:
- PERFORM seleccionar_datos.
- Doble clic sobre el nombre de la subrutina y crear el objeto.
- Seleccionar como un nuevo includ de datos o en el mismo programa de control.
- finalmente nos crea el codigo de abajo para completarlo.
2| Tipos de subrutinas
- Internas: cuando la subrutina está dentro del mismo programa que la llama.
- Externas: cuando la subrutina está en un programa distinto al que las llama.
3| Subrutinas internas
Para crear una subrutina interna usamos lapalabra PERFORM seguida del nombre de la subrutina.
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, se los llama parámetros actuales.
- A los parámetros definidos en la subrutina,se los llama parámetros formales.
Los parámetros pueden ser de tres tipos:
- De entrada: Para pasar datos del programa principal a la subrutina.
- De salida: Para pasar datos de la subrutina al programa principal.
- De entrada y salida: Para pasar datos de la subrutina al programa principal y también viceversa.
4| Paso de parámetros a subrutinas
Se utiliza tres opciones: USING, CHANGING y TABLES.
El orden de los parametros es el siguiente:
TABLES <tabla de salida>
USING <parámetro de entrada>
CHANGING <parámetro de salida>
Los parámetros deben ser pasados en el mismo orden en el que fueron declarados.
Exiten tres formas de pasar parametros:
- Paso por valor.- 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.- Solo la dirección de los parámetros actuales se transfieren a los parámetros formales.
Si cambiamos los parámetros formales, el contenido del campo del programa que hace la llamada también cambia.
- Paso por valor y resultado.- Los cambios en los parámetros formales son copiados a los parámetros actuales al final de la subrutina.
5| Subrutinas externas
- Para llamar a una subrutina que está en un programa distinto al que estamos procesando
Sintaxis: PERFORM <sub> (<programa>) USING..
- También podemos agregar includes de subrutinas a nuestro programa
Sintaxis: INCLUDE <report>