Cómo contar el número de registros de una tabla interna

Saber cuántas líneas tiene una tabla interna es una necesidad muy habitual. Pues a veces, lo necesitamos saber para controlar bucles, mostrar totales al usuario o simplemente saber si hay datos antes de procesar.

En ABAP hay dos formas principales de hacerlo: la clásica (DESCRIBE TABLE) y la moderna (lines).

Forma antigua: DESCRIBE TABLE ... LINES

Sintaxis:

DESCRIBE TABLE gt_table LINES gv_lines.
  • gt_table: tabla interna (puede ser estándar, ordenada o hashed).
  • gv_lines: variable donde se almacena el número de filas.

Características:

  • Funciona con cualquier tipo de tabla interna.
  • La variable de salida debe ser de tipo numérico (normalmente i).
  • No afecta a la tabla (solo lectura).

Forma moderna: lines( )

A partir de ABAP 7.40, se introdujo la expresión lines( ), que devuelve el número de filas directamente como valor numérico.

Sintaxis:

gv_lines = lines( gt_table ).

Características:

  • Es más compacta y legible.
  • Se puede usar directamente en expresiones (sin variable intermedia).
  • Forma parte de las expresiones de constructor y operadores de ABAP moderno.