|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() Inscription : mars 2006 Messages : 198 ![]() |
Bonjour tout le monde,
je voulais savoir s'il y a une instruction en abap qui permet de vérifier qu'il s'agit d'une table interne. Par exemple : Code :
Merci d'avance de votre aide. Hiraa |
||
|
|
00
|
|
|
#2 | ||
|
Membre du Club
![]() Inscription : avril 2008 Messages : 38 ![]() |
bonjour,
tu devrais pouvoir t'en sortir avec la méthode cl_abap_datadescr si tu est en 6.40 minimum. Code :
vois dans les attributs de la classe pour voir la valeur pour une table interne. |
||
|
|
10
|
|
|
#3 |
|
Membre régulier
![]() Inscription : mars 2006 Messages : 198 ![]() |
Merci beaucoup jeje_gestrans.
ça répond exactement à ma question. Hiraa |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : avril 2008 Messages : 38 ![]() |
De rien c'est toujours un plaisir d'aider avec mes connaissances.
|
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() Inscription : mars 2006 Messages : 198 ![]() |
Toutefois, pour pouvoir connaitre les champs d'une table interne ainsi que leurs types, j'ai trouvé qu'il faut passer par une structure (de la même table interne).
En utilisant , si l'objet est une table interne la valeur renvoyée dans "comp" est 0 !!! Mon besoin c'est de pouvoir comparer deux tables internes au niveau du nombre de champs et les types de champs. Je continue à chercher ... Merci d'avance de vos réponses ! Hiraa |
|
|
00
|
|
|
#6 |
|
Membre confirmé
![]() Inscription : août 2009 Messages : 226 ![]() |
Salut Hiraa,
DESCRIBE FIELD est plutôt typé obsolète, il faut utiliser RTTI, qui correspond aux classes CL_ABAP_TYPEDESCR, CL_ABAP_DATADESCR (ce dont parlait jeje_gestrans), etc. Je crois qu'il y a des exemples dans la doc de ces classes. FORM read_comps_of_itab USING it_itab TYPE ANY TABLE. DATA lo_tabledescr TYPE REF TO cl_abap_tabledescr. DATA lo_structdescr TYPE REF TO cl_abap_structdescr. DATA lt_comp TYPE cl_abap_structdescr=>component_table. DATA ls_comp TYPE LINE OF cl_abap_structdescr=>component_table. lo_tabledescr ?= cl_abap_typedescr=>describe_by_data( it_itab ). lo_structdescr ?= lo_tabledescr->get_table_line_type( ). lt_comp = lo_structdescr->get_components( ). * LOOP AT lt_comp INTO ls_comp. * ENDLOOP. ENDFORM. Il y a d'autres méthodes (et 1 attribut aussi) que GET_COMPONENTS éventuellement si elle ne correspond pas exactement à ton attente. sandra |
|
|
00
|
|
|
#7 |
|
Membre régulier
![]() Inscription : mars 2006 Messages : 198 ![]() |
Bonjour tout le monde,
Merci sandra. Je teste et vous fais un retour. Hiraa |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com