📘ABAP - Occurs
Definición de Occurs
La cláusula ABAP OCCURS se utiliza para especificar la cantidad de registro en memoria de una tabla interna.
La sintaxis de la sentencia OCCURS es la siguiente:
DATA : BEGIN OF <Internal table name> OCCURS <n>,
<Field Structure / Line Type>,
END OF < Internal table name >.
Es importante aclarar que <n> no limita el número máximo de registros que pueden almacenarse en una tabla interna.
Por ejemplo si especificamos: OCCURS 10, eso no significa que solo podemos almacenar 10 registros en la tabla interna, sino que ese máximo es limitado teóricamente por la cantidad de memoria disponible en el servidor de aplicaciones.
El sistema utiliza la cláusula OCCURS <n> sólo como una guía para determinar cuánta memoria asignar.
La primera vez que se agrega una fila a la tabla interna, se asigna suficiente memoria para contener el número de filas especificado en la cláusula OCCURS <n>. Si usa esa memoria, se asigna más si es necesario.
Se puede especificar OCCURS 0. Si hacemos esto, el sistema asigna 8 KB de memoria a la vez. Sin embargo, no hay ventajas en el uso de OCCURS 0 aparte del hecho de que es un poco más fácil codificar OCCURS 0 que estimar el tamaño de la tabla interna.
Es recomendable no utilizar OCCURS 0 si se espera almacenar menos de 8 KB en una tabla interna. Si lo hacemos, el sistema asignará 8KB desde el área de paginación. La memoria se desperdiciará y la paginación podría aumentar, resultando en un menor rendimiento.