0 calificaciones0% encontró este documento útil (0 votos)
239 vistas2 páginas
Este documento describe cómo crear dinámicamente una tabla interna en ABAP que sea idéntica a una tabla del diccionario de datos. Primero se almacena el nombre de la tabla del diccionario en una variable. Luego se crea una tabla interna referenciada a esa estructura y se copian todos los datos de la tabla del diccionario a la tabla interna creada dinámicamente. Finalmente, se recorre la tabla interna y se escriben sus campos por pantalla sin conocer su estructura de antemano.
Este documento describe cómo crear dinámicamente una tabla interna en ABAP que sea idéntica a una tabla del diccionario de datos. Primero se almacena el nombre de la tabla del diccionario en una variable. Luego se crea una tabla interna referenciada a esa estructura y se copian todos los datos de la tabla del diccionario a la tabla interna creada dinámicamente. Finalmente, se recorre la tabla interna y se escriben sus campos por pantalla sin conocer su estructura de antemano.
Este documento describe cómo crear dinámicamente una tabla interna en ABAP que sea idéntica a una tabla del diccionario de datos. Primero se almacena el nombre de la tabla del diccionario en una variable. Luego se crea una tabla interna referenciada a esa estructura y se copian todos los datos de la tabla del diccionario a la tabla interna creada dinámicamente. Finalmente, se recorre la tabla interna y se escriben sus campos por pantalla sin conocer su estructura de antemano.
*& Descripcion: *& ------------ *& Este es un ejemplo de creacion de tablas internas dinamicas en ABAP *& Este codigo crea en tiempo de ejecucion una tabla interna identica *& a una dada del diccionario, despues copia todos los datos de la tabla *& del diccionario en la tabla interna y los muestra por pantalla.
*& Para crear la tabla utilizamos dos datos referenciados, uno referenciara *& a la tabla y otro a un campo estructurado que hara las funciones de cabecera *& de la tabla interna.
*& Para acceder a los contenidos de la tabla utilizamos 3 field-simbols
DATA: pv_tabla TYPE dd02l-tabname, generic_table TYPE REF TO data, generic_line TYPE REF TO data.
FIELD-SYMBOLS: <table> TYPE ANY TABLE, <wa> TYPE ANY, <field> TYPE ANY.
*& en pv_tabla almacenamos el nombre de la tabla del diccionario pv_tabla = 'spfli'.
*& Referenciamos la estructura de la tabla CREATE DATA generic_table TYPE STANDARD TABLE OF (pv_tabla). ASSIGN generic_table->* TO <table>.
*& Referenciamos la cabecera de la tabla CREATE DATA generic_line TYPE (pv_tabla). ASSIGN generic_line->* TO <wa>.
*& Rellenamos la tabla interna creada dinamicamente SELECT * INTO CORRESPONDING FIELDS OF TABLE <table> FROM (pv_tabla).
*& Recorremos la tabla creada dinamicamente LOOP AT <table> INTO <wa>. DO.
*& Como no conocemos los campos de la tabla hasta la ejecucion *& assignamos a <field> un campo de la estructura en cada bucle *& cuando sy-index supere el n de campos de la estructura *& sy-subrc = 4 con lo que sale del bucle ASSIGN COMPONENT sy-index OF STRUCTURE <wa> TO <field>. IF sy-subrc <> 0. EXIT. ENDIF. WRITE <field>. ENDDO. NEW-LINE. ENDLOOP.