
Tabla Interna (Suena a un Cursor de SQL, hay que averiguar si eso es), util para extracción de conjuntos de datos para procesar, enviar a un reporte, o darles formato para dejarlos disponibles para otra aplicación.
DATA: BEGIN OF ti_Provedores OCCURS 0,
nombre(30) TYPE c,
apellido(30) TYPE c,
END OF ti_Proveedores.
(Nota, el numero después de OCCURS no limita la cantidad de registros, sino los que se guardan en la memoria de manera simultanea - supongo que tipo SWAP, habría que hacer pruebas), si se soloca 0 es Sin Limite.
Adicionar Registros:
CLEAR rm_Proveedores.
rm_proveedores-Nombre = 'Jose Francisco'.
rm_proveedores-Apellido = 'Rico Moreno'.
APPEND rm_Proveedores TO ti_Proveedores.
Ordenar:
SORT ti_Proveedores BY Apellido DESCENDING.
(Es válido usar ASCENDING).
Barrido de Tablas Internas:
LOOP AT ti_Proveedores INTO wa_Proveedores
WHERE NOT nombre IS INITIAL.
ENDLOOP.
(NOT nombre IS INITIAL = Is Not Null).
En caso de no haber registros SY-SUBRC será distinto de cero (If Not EOF()).