PDA

Ver la Versión Completa : sacar estructura tabla interna en tiempo ejecucion


Skadeour
07/06/06, 08:06:44
sacar estructura tabla interna en tiempo ejecucion

--------------------------------------------------------------------------------

Yo le paso una tabla interna a una funcion, y esa funcion me imprime el nombre de los campos de la estructura de la tabla, como saco la estructura de la tabla en tiempo de ejecución?

Mauricio Hidalgo
07/06/06, 13:59:04
http://searchsap.techtarget.com/tip/1,289483,sid21_gci1079416,00.html?bucket=ETA

Aquí encuentras lo que andas buscando.

Saludos

Skadeour
08/06/06, 16:43:06
he usado esa funcion, y debugeando, la clase
me sale un atributo con nombre key, en el cual se guarda la tabla con los valores de los nombres de los campos de la estructura de la tabla pasado, pero no se como acceder a esos valores, dentro del metodo, se te ocurre algun modo?

Mauricio Hidalgo
09/06/06, 13:21:20
Tomando el código del ejemplo, sería algo como esto.
.
.
.
data campo(20).

loop at l_ref->key ASSIGNING <KEY_COMP_WA>.
IF <KEY_COMP_WA>-NAME NE 'ZEILI'.
L_TYP ?= CL_ABAP_TYPEDESCR=>DESCRIBE_BY_NAME( <KEY_COMP_WA>-NAME ).
write: / campo, l_typ->type_kind, l_typ->length.
ENDIF.
endloop.

OBS. SE CAE LA EXPRESIÓN L_TYP ?=CL_ABAP..... AL EVALUAR EL CAMPO ZEILI....CORREGIRLO TE LO DEJO A TI.....

ESPERO TE SIRVA,

SALUDOS

carlosalcala
13/06/06, 07:58:12
Quizas te sea más facil asi
DATA n TYPE i VALUE 0.
FIELD-SYMBOLS <f>.

DO.
ADD 1 TO n.

ASSIGN COMPONENT n OF STRUCTURE tabla TO <f>.
* Donde n es el nº de elemento , tabla (no lo comento) y <f> el puntero
* a el elemento.

IF sy-subrc NE 0.
EXIT.
ENDIF.

IF <f> IS INITIAL.
MOVE '/' TO <f>.
ENDIF.

ENDDO.