‎2012 Aug 29 8:23 AM
Hi experts,
I have the following question:
I want to build a dynamic structure without knowing a type or something. Something like this:
DATA: lv_type_cl TYPE REF TO cl_abap_type_ex.
DATA: lv_struc_cl TYPE REF TO cl_abap_struc_ex.
DATA: lv_structure_final TYPE any_structure.
lv_type_cl->add_element( 'ID', INT4).
lv_type_cl->add_element( 'NAME', STRING).
lv_type_cl->add_element('EMAIL', STRING).
lv_struc_cl->set_type( lv_type_cl ).
lv_structure_final = lv_struc_cl->create_structure( ).
I hope this explanation is useful for you. Any hints are appreciated.
Thanks in advance!
Best regards,
hhermann
‎2012 Aug 29 9:55 AM
Hello Heinrich,
You can try with this link:
http://wiki.sdn.sap.com/wiki/display/ABAP/Dynamic+Internal+table
Best regards,
Javi
‎2012 Aug 29 9:55 AM
Hello Heinrich,
You can try with this link:
http://wiki.sdn.sap.com/wiki/display/ABAP/Dynamic+Internal+table
Best regards,
Javi
‎2012 Sep 07 11:49 AM
‎2012 Aug 30 7:04 AM
Hi,
Check out the below links.
<Link farm removed by moderator>
Hope it will be useful for you.
Message was edited by: Vinod Kumar
‎2012 Sep 12 12:22 PM
Hi experts,
got a new problem... I get an exception: GENERATE_SUBPOOL_DIR_FULL when I call these method 37 times...
I need this code more than 36 times... What can I do ?
Thanks in advance
Best regards,
hhermann
TYPE-POOLS : abap.
DATA: lo_nd_massnahmen_kopf TYPE REF TO if_wd_context_node.
DATA: lt_massnahmen_kopf TYPE wd_this->
elements_massnahmen_kopf.
FIELD-SYMBOLS: <fs_massnahmen_kopf> TYPE wd_this->
element_massnahmen_kopf.
DATA: lo_nd_massnahmen_plan TYPE REF TO if_wd_context_node.
DATA: lt_massnahmen_plan TYPE wd_this->
elements_massnahmen_plan.
FIELD-SYMBOLS: <fs_massnahmen_plan> TYPE wd_this->
element_massnahmen_plan.
DATA: lv_conf_kt TYPE REF TO
cl_salv_wd_config_table.
DATA: rootnode_info TYPE REF TO if_wd_context_node_info.
DATA: budget_kt_info TYPE REF TO if_wd_context_node_info.
DATA: budget_kt_node TYPE REF TO if_wd_context_node.
DATA: lo_cmp_usage_kt TYPE REF TO if_wd_component_usage.
DATA: lo_ifc_kt TYPE REF TO iwci_salv_wd_table.
DATA: table_descr TYPE REF TO cl_abap_tabledescr.
DATA: struct_descr TYPE REF TO cl_abap_structdescr.
DATA: table_gen TYPE REF TO cl_abap_tabledescr.
DATA: lo_column TYPE REF TO cl_salv_wd_column.
DATA: lr_header TYPE REF TO cl_salv_wd_column_header.
lo_nd_massnahmen_kopf = wd_context->get_child_node( name = wd_this-> wdctx_massnahmen_kopf ).
lo_nd_massnahmen_kopf->get_static_attributes_table( IMPORTING table = lt_massnahmen_kopf ).
lo_nd_massnahmen_plan = wd_context->get_child_node( name = wd_this-> wdctx_massnahmen_plan ).
lo_nd_massnahmen_plan->get_static_attributes_table( IMPORTING table = lt_massnahmen_plan ).
TYPES: BEGIN OF ls_kt,
name TYPE string,
END OF ls_kt.
DATA: ls_kt TYPE ls_kt.
DATA: lt_kt TYPE TABLE OF ls_kt.
"Dynamische Tabellen
FIELD-SYMBOLS: <dyn_table> TYPE STANDARD TABLE,
<dyn_wa> TYPE any,
<dyn_field> TYPE any.
DATA: dy_table TYPE REF TO data,
dy_line TYPE REF TO data.
*--------------------------------------------------------------------*
* Kostenträger erfassen
*--------------------------------------------------------------------*
IF lt_massnahmen_plan IS NOT INITIAL.
LOOP AT lt_massnahmen_plan ASSIGNING <fs_massnahmen_plan>.
ls_kt-name = <fs_massnahmen_plan>-kotrgr.
APPEND ls_kt TO lt_kt.
CLEAR: ls_kt.
ENDLOOP.
SORT lt_kt DESCENDING BY name.
DELETE ADJACENT DUPLICATES FROM lt_kt COMPARING name.
*--------------------------------------------------------------------*
* Dynamische Struktur bauen
*--------------------------------------------------------------------*
DATA: ls_xfc TYPE lvc_s_fcat.
DATA: lt_xfc TYPE lvc_t_fcat.
"Feste Headerspalte ganz links
ls_xfc-fieldname = 'HEADER'.
ls_xfc-datatype = 'CHAR'.
ls_xfc-inttype = 'C'.
ls_xfc-intlen = 30.
APPEND ls_xfc TO lt_xfc.
CLEAR: ls_xfc.
"Feste Aktuelle Summe ganz links
ls_xfc-fieldname = 'SUM'.
ls_xfc-datatype = 'PACK'.
ls_xfc-inttype = 'P'.
ls_xfc-intlen = 16.
ls_xfc-decimals = 2.
APPEND ls_xfc TO lt_xfc.
CLEAR: ls_xfc.
"Festes Delta ganz links
ls_xfc-fieldname = 'DELTA'.
ls_xfc-datatype = 'PACK'.
ls_xfc-inttype = 'P'.
ls_xfc-intlen = 16.
ls_xfc-decimals = 2.
APPEND ls_xfc TO lt_xfc.
CLEAR: ls_xfc.
LOOP AT lt_kt INTO ls_kt.
ls_xfc-fieldname = ls_kt-name.
ls_xfc-datatype = 'PACK'.
ls_xfc-inttype = 'P'.
ls_xfc-intlen = 16.
ls_xfc-decimals = 2.
APPEND ls_xfc TO lt_xfc.
CLEAR: ls_xfc.
ENDLOOP.
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = lt_xfc
i_length_in_byte = 'X'
IMPORTING
ep_table = dy_table.
ASSIGN dy_table->* TO <dyn_table>.
CREATE DATA dy_line LIKE LINE OF <dyn_table>.
ASSIGN dy_line->* TO <dyn_wa>.
‎2012 Sep 13 10:29 AM
Ok, here is the solution:
http://tom-verstocken.blogspot.de/2010/11/shortdump-generatesubpooldirfull.html