<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: how do we create data objects dyanamically in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-do-we-create-data-objects-dyanamically/m-p/3176056#M755862</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Srinivas,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check this sample program............&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT ZCLUST1 . &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Example: how to create a dynamic internal table &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The dynamic internal table stucture &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF STRUCT OCCURS 10, &lt;/P&gt;&lt;P&gt;FILDNAME(8) TYPE C, &lt;/P&gt;&lt;P&gt;ABPTYPE TYPE C, &lt;/P&gt;&lt;P&gt;LENGTH TYPE I, &lt;/P&gt;&lt;P&gt;END OF STRUCT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The dynamic program source table &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF INCTABL OCCURS 10, &lt;/P&gt;&lt;P&gt;LINE(72), &lt;/P&gt;&lt;P&gt;END OF INCTABL. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: LNG TYPE I, TYPESRTING(6). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sample dynamic internal table stucture &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;STRUCT-FILDNAME = 'field1'. STRUCT-ABPTYPE = 'c'. STRUCT-LENGTH = '6'. &lt;/P&gt;&lt;P&gt;APPEND STRUCT. CLEAR STRUCT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;STRUCT-FILDNAME = 'field2'. STRUCT-ABPTYPE = 'd'. &lt;/P&gt;&lt;P&gt;APPEND STRUCT. CLEAR STRUCT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;STRUCT-FILDNAME = 'field3'. STRUCT-ABPTYPE = 'i'. &lt;/P&gt;&lt;P&gt;APPEND STRUCT. CLEAR STRUCT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create the dynamic internal table definition in the dyn. program &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;INCTABL-LINE = 'program zdynpro.'. APPEND INCTABL. &lt;/P&gt;&lt;P&gt;INCTABL-LINE = 'data: begin of dyntab occurs 10,'. APPEND INCTABL. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT STRUCT. &lt;/P&gt;&lt;P&gt;INCTABL-LINE = STRUCT-FILDNAME. &lt;/P&gt;&lt;P&gt;LNG = STRLEN( STRUCT-FILDNAME ). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT STRUCT-LENGTH IS INITIAL . &lt;/P&gt;&lt;P&gt;TYPESRTING(1) = '('. &lt;/P&gt;&lt;P&gt;TYPESRTING+1 = STRUCT-LENGTH. &lt;/P&gt;&lt;P&gt;TYPESRTING+5 = ')'. &lt;/P&gt;&lt;P&gt;CONDENSE TYPESRTING NO-GAPS. &lt;/P&gt;&lt;P&gt;INCTABL-LINE+LNG = TYPESRTING. &lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INCTABL-LINE+15 = 'type '. &lt;/P&gt;&lt;P&gt;INCTABL-LINE+21 = STRUCT-ABPTYPE. &lt;/P&gt;&lt;P&gt;INCTABL-LINE+22 = ','. &lt;/P&gt;&lt;P&gt;APPEND INCTABL. &lt;/P&gt;&lt;P&gt;ENDLOOP. &lt;/P&gt;&lt;P&gt;INCTABL-LINE = 'end of dyntab. '. &lt;/P&gt;&lt;P&gt;APPEND INCTABL. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create the code processes the dynamic internal table &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;INCTABL-LINE = ' '. APPEND INCTABL. &lt;/P&gt;&lt;P&gt;INCTABL-LINE = 'dyntab-field1 = ''aaaaaa''.'. APPEND INCTABL. &lt;/P&gt;&lt;P&gt;INCTABL-LINE = 'dyntab-field1 = ''19970814''.'. APPEND INCTABL. &lt;/P&gt;&lt;P&gt;INCTABL-LINE = 'dyntab-field1 = 1.'. APPEND INCTABL. &lt;/P&gt;&lt;P&gt;INCTABL-LINE = 'append dyntab.'. APPEND INCTABL. &lt;/P&gt;&lt;P&gt;INCTABL-LINE = ' '. APPEND INCTABL. &lt;/P&gt;&lt;P&gt;INCTABL-LINE = 'loop at dyntab.'. APPEND INCTABL. &lt;/P&gt;&lt;P&gt;INCTABL-LINE = 'write: / dyntab.'. APPEND INCTABL. &lt;/P&gt;&lt;P&gt;INCTABL-LINE = 'endloop.'. APPEND INCTABL. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create and run the dynamic program &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;INSERT REPORT 'zdynpro'(001) FROM INCTABL. &lt;/P&gt;&lt;P&gt;SUBMIT ZDYNPRO. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or Just try out this simpler dynamic internal tables &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: itab TYPE STANDARD TABLE OF spfli, &lt;/P&gt;&lt;P&gt;wa LIKE LINE OF itab. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: line(72) TYPE c, &lt;/P&gt;&lt;P&gt;list LIKE TABLE OF line(72). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION. &lt;/P&gt;&lt;P&gt;*line = ' CITYFROM CITYTO '. &lt;/P&gt;&lt;P&gt;line = ' AIRPTO '. &lt;/P&gt;&lt;P&gt;APPEND line TO list. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT DISTINCT (list) &lt;/P&gt;&lt;P&gt;INTO CORRESPONDING FIELDS OF TABLE itab &lt;/P&gt;&lt;P&gt;FROM spfli. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc EQ 0. &lt;/P&gt;&lt;P&gt;LOOP AT itab INTO wa. &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WRITE: / wa-cityfrom, wa-cityto. &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; wa-airpto. &lt;/P&gt;&lt;P&gt;ENDLOOP. &lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Kindly reward points if you found the reply helpful.&amp;lt;b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers,&lt;/P&gt;&lt;P&gt;Chaitanya.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 13 Dec 2007 13:32:23 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-12-13T13:32:23Z</dc:date>
    <item>
      <title>how do we create data objects dyanamically</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-do-we-create-data-objects-dyanamically/m-p/3176054#M755860</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Srinu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Dec 2007 09:21:20 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-do-we-create-data-objects-dyanamically/m-p/3176054#M755860</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-13T09:21:20Z</dc:date>
    </item>
    <item>
      <title>Re: how do we create data objects dyanamically</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-do-we-create-data-objects-dyanamically/m-p/3176055#M755861</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Srinu&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Perhaps the following links may be useful:&lt;/P&gt;&lt;P&gt;&amp;lt;a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/wiki?path=/display/snippets/creating%2bflat%2band%2bcomplex%2binternal%2btables%2bdynamically%2busing%2brtti"&amp;gt;creating Flat and Complex Internal Tables Dynamically using RTTI - Code Gallery - Wiki&amp;lt;/a&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;a href="&lt;A class="jive_macro jive_macro_thread" href="https://community.sap.com/" __jive_macro_name="thread" modifiedtitle="true" __default_attr="416210"&gt;&lt;/A&gt; of table of table dynamically&amp;lt;/a&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;  Uwe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Dec 2007 09:26:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-do-we-create-data-objects-dyanamically/m-p/3176055#M755861</guid>
      <dc:creator>uwe_schieferstein</dc:creator>
      <dc:date>2007-12-13T09:26:57Z</dc:date>
    </item>
    <item>
      <title>Re: how do we create data objects dyanamically</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-do-we-create-data-objects-dyanamically/m-p/3176056#M755862</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Srinivas,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check this sample program............&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT ZCLUST1 . &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Example: how to create a dynamic internal table &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The dynamic internal table stucture &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF STRUCT OCCURS 10, &lt;/P&gt;&lt;P&gt;FILDNAME(8) TYPE C, &lt;/P&gt;&lt;P&gt;ABPTYPE TYPE C, &lt;/P&gt;&lt;P&gt;LENGTH TYPE I, &lt;/P&gt;&lt;P&gt;END OF STRUCT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The dynamic program source table &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF INCTABL OCCURS 10, &lt;/P&gt;&lt;P&gt;LINE(72), &lt;/P&gt;&lt;P&gt;END OF INCTABL. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: LNG TYPE I, TYPESRTING(6). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sample dynamic internal table stucture &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;STRUCT-FILDNAME = 'field1'. STRUCT-ABPTYPE = 'c'. STRUCT-LENGTH = '6'. &lt;/P&gt;&lt;P&gt;APPEND STRUCT. CLEAR STRUCT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;STRUCT-FILDNAME = 'field2'. STRUCT-ABPTYPE = 'd'. &lt;/P&gt;&lt;P&gt;APPEND STRUCT. CLEAR STRUCT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;STRUCT-FILDNAME = 'field3'. STRUCT-ABPTYPE = 'i'. &lt;/P&gt;&lt;P&gt;APPEND STRUCT. CLEAR STRUCT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create the dynamic internal table definition in the dyn. program &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;INCTABL-LINE = 'program zdynpro.'. APPEND INCTABL. &lt;/P&gt;&lt;P&gt;INCTABL-LINE = 'data: begin of dyntab occurs 10,'. APPEND INCTABL. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT STRUCT. &lt;/P&gt;&lt;P&gt;INCTABL-LINE = STRUCT-FILDNAME. &lt;/P&gt;&lt;P&gt;LNG = STRLEN( STRUCT-FILDNAME ). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT STRUCT-LENGTH IS INITIAL . &lt;/P&gt;&lt;P&gt;TYPESRTING(1) = '('. &lt;/P&gt;&lt;P&gt;TYPESRTING+1 = STRUCT-LENGTH. &lt;/P&gt;&lt;P&gt;TYPESRTING+5 = ')'. &lt;/P&gt;&lt;P&gt;CONDENSE TYPESRTING NO-GAPS. &lt;/P&gt;&lt;P&gt;INCTABL-LINE+LNG = TYPESRTING. &lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INCTABL-LINE+15 = 'type '. &lt;/P&gt;&lt;P&gt;INCTABL-LINE+21 = STRUCT-ABPTYPE. &lt;/P&gt;&lt;P&gt;INCTABL-LINE+22 = ','. &lt;/P&gt;&lt;P&gt;APPEND INCTABL. &lt;/P&gt;&lt;P&gt;ENDLOOP. &lt;/P&gt;&lt;P&gt;INCTABL-LINE = 'end of dyntab. '. &lt;/P&gt;&lt;P&gt;APPEND INCTABL. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create the code processes the dynamic internal table &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;INCTABL-LINE = ' '. APPEND INCTABL. &lt;/P&gt;&lt;P&gt;INCTABL-LINE = 'dyntab-field1 = ''aaaaaa''.'. APPEND INCTABL. &lt;/P&gt;&lt;P&gt;INCTABL-LINE = 'dyntab-field1 = ''19970814''.'. APPEND INCTABL. &lt;/P&gt;&lt;P&gt;INCTABL-LINE = 'dyntab-field1 = 1.'. APPEND INCTABL. &lt;/P&gt;&lt;P&gt;INCTABL-LINE = 'append dyntab.'. APPEND INCTABL. &lt;/P&gt;&lt;P&gt;INCTABL-LINE = ' '. APPEND INCTABL. &lt;/P&gt;&lt;P&gt;INCTABL-LINE = 'loop at dyntab.'. APPEND INCTABL. &lt;/P&gt;&lt;P&gt;INCTABL-LINE = 'write: / dyntab.'. APPEND INCTABL. &lt;/P&gt;&lt;P&gt;INCTABL-LINE = 'endloop.'. APPEND INCTABL. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create and run the dynamic program &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;INSERT REPORT 'zdynpro'(001) FROM INCTABL. &lt;/P&gt;&lt;P&gt;SUBMIT ZDYNPRO. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or Just try out this simpler dynamic internal tables &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: itab TYPE STANDARD TABLE OF spfli, &lt;/P&gt;&lt;P&gt;wa LIKE LINE OF itab. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: line(72) TYPE c, &lt;/P&gt;&lt;P&gt;list LIKE TABLE OF line(72). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION. &lt;/P&gt;&lt;P&gt;*line = ' CITYFROM CITYTO '. &lt;/P&gt;&lt;P&gt;line = ' AIRPTO '. &lt;/P&gt;&lt;P&gt;APPEND line TO list. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT DISTINCT (list) &lt;/P&gt;&lt;P&gt;INTO CORRESPONDING FIELDS OF TABLE itab &lt;/P&gt;&lt;P&gt;FROM spfli. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc EQ 0. &lt;/P&gt;&lt;P&gt;LOOP AT itab INTO wa. &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WRITE: / wa-cityfrom, wa-cityto. &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; wa-airpto. &lt;/P&gt;&lt;P&gt;ENDLOOP. &lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Kindly reward points if you found the reply helpful.&amp;lt;b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers,&lt;/P&gt;&lt;P&gt;Chaitanya.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Dec 2007 13:32:23 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-do-we-create-data-objects-dyanamically/m-p/3176056#M755862</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-13T13:32:23Z</dc:date>
    </item>
    <item>
      <title>Re: how do we create data objects dyanamically</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-do-we-create-data-objects-dyanamically/m-p/3176057#M755863</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Srinu,&lt;/P&gt;&lt;P&gt;take a look at this sample method, who's taking values from a table passed by name and put them into a Transport Request.&lt;/P&gt;&lt;P&gt;The method doesn't know the passed table type, so it creates a structure based on info taken by RTTI using RTTS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
* // Reference to the table
  strucRef ?= cl_abap_structdescr=&amp;gt;describe_by_name( objName ).
* // Here, we know the table name, so we only take the components and create
* // a structure:
* // Get key fields since e071k need only the keys:
  fields = strucRef-&amp;gt;get_ddic_field_list( ).
  LOOP AT fields INTO field WHERE keyflag EQ abap_true.
    key-name        = field-fieldname.
    key-type       ?= cl_abap_datadescr=&amp;gt;describe_by_name( key-name ).
    key-as_include  = abap_false.
    key-suffix      = abap_false.
    APPEND key TO keys.
  ENDLOOP.
* // Create the structure for keys:
  keyRef = cl_abap_structdescr=&amp;gt;create( keys ).
  CREATE DATA keystr TYPE HANDLE keyRef.
  ASSIGN keystr-&amp;gt;* TO &amp;lt;strKey&amp;gt;.

* // Now, we have a structure that can get key fields:
* // Get data
  ASSIGN table-&amp;gt;* TO &amp;lt;insertedRows&amp;gt;. "--&amp;gt; Here I have data
  LOOP AT &amp;lt;insertedRows&amp;gt; ASSIGNING &amp;lt;line&amp;gt;.
    move-corresponding &amp;lt;line&amp;gt; TO &amp;lt;strKey&amp;gt;.
* // Fill E071 buffer
    wa071k-pgmid      = 'R3TR'.
    wa071k-object     = 'TABU'.  "Table Contents
    wa071k-objname    = objName.
    wa071k-mastertype = 'TABU'.
    wa071k-mastername = objName.
    wa071k-tabkey     = &amp;lt;strKey&amp;gt;.
    COLLECT wa071k INTO e071k_buf.
  ENDLOOP.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you don't have a template table, and want to create a totally dynamic table:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
DATA: structdescr TYPE REF TO cl_abap_structdescr,
      tabledescr  TYPE REF TO cl_abap_tabledescr.
DATA: comptab     TYPE abap_component_tab,
      compline    TYPE abap_componentdescr.
DATA: tabRef      TYPE REF TO data,
      linRef      TYPE REF TO data.

* // Fill Component Table
compline-name        = 'PERNR'.
compline-type       ?= cl_abap_typedescr=&amp;gt;describe_by_name( 'PERNR_D' ).
compline-as_include  = abap_false.
compline-suffix      = space.
APPEND compline TO comptab.

compline-name        = 'ENAME'.
compline-type       ?= cl_abap_typedescr=&amp;gt;describe_by_name( 'EMNAM' ).
compline-as_include  = abap_false.
compline-suffix      = space.
APPEND compline TO comptab.

* // Create a structure
structdescr = cl_abap_structdescr=&amp;gt;create( comptab ).
* // Then create a table
tabledescr = cl_abap_tabledescr=&amp;gt;create( structdescr ).

* // Create a data-ref type the new table created
CREATE DATA tabRef TYPE HANDLE tabledescr.
* // De-Reference the variable to a field-symbol
ASSIGN tabRef-&amp;gt;* TO &amp;lt;table&amp;gt;. "Here you have the table:
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Or this one, doing the old way:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
* // Set tablename
  objName = xtabname-tabname. "--&amp;gt; Table Name

* // Now check table existance:
  CALL FUNCTION 'DDIF_TABL_GET'
    EXPORTING
      name          = xtabname-tabname
    IMPORTING
      dd02v_wa      = xdd02v
    TABLES
      dd03p_tab     = idd03p
    EXCEPTIONS
      illegal_input = 1
      OTHERS        = 2.
  IF sy-subrc &amp;lt;&amp;gt; 0 OR xdd02v-tabname IS INITIAL.
    RAISE EXCEPTION TYPE zcx_table_import_export
      EXPORTING textid = zcx_table_import_export=&amp;gt;table_doesnt_exists
                table  = xtabname-tabname.
  ENDIF.

* // Create dynamic table and wa
  CREATE DATA drefTab TYPE TABLE OF (xdd02v-tabname).
  ASSIGN drefTab-&amp;gt;* TO &amp;lt;dynTab&amp;gt;.  "--&amp;gt; This is your table:
  CREATE DATA drefWa  LIKE LINE  OF &amp;lt;dynTab&amp;gt;.
  ASSIGN drefWa-&amp;gt;*  TO &amp;lt;dynWa&amp;gt;. "--&amp;gt; This is the table work area

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps,&lt;/P&gt;&lt;P&gt;Roby.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Dec 2007 13:47:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-do-we-create-data-objects-dyanamically/m-p/3176057#M755863</guid>
      <dc:creator>former_member199581</dc:creator>
      <dc:date>2007-12-13T13:47:21Z</dc:date>
    </item>
    <item>
      <title>Re: how do we create data objects dyanamically</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-do-we-create-data-objects-dyanamically/m-p/3176058#M755864</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Guys --all you have to do is pass your data structure using the RTTI functionality.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;types:  begin of s_elements,&lt;/P&gt;&lt;P&gt;   tabname  type dd02l-tabname,&lt;/P&gt;&lt;P&gt;   tabclass type dd02l-tabclass,&lt;/P&gt;&lt;P&gt;   as4user  type dd02l-as4user,&lt;/P&gt;&lt;P&gt;   as4date  type dd02l-as4date,&lt;/P&gt;&lt;P&gt;   as4time  type dd02l-as4time,&lt;/P&gt;&lt;P&gt;   viewed(1) type c.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  drop_down_handle  type int4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;types: end of    s_elements.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;create data dref type s_elements.&lt;/P&gt;&lt;P&gt;assign dref-&amp;gt;* to &amp;lt;fs&amp;gt;.&lt;/P&gt;&lt;P&gt;invoker = sy-repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*This field symbol &amp;lt;fs&amp;gt; will contain your&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data structure from which you construct a field catalog.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*I do it by calling methods in a class.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In your class define some data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data lr_rtti_struc type ref to cl_abap_structdescr .&lt;/P&gt;&lt;P&gt;  data:&lt;/P&gt;&lt;P&gt;    zog like line of lr_rtti_struc-&amp;gt;components .&lt;/P&gt;&lt;P&gt;  data:&lt;/P&gt;&lt;P&gt;    zogt                    like table of zog .&lt;/P&gt;&lt;P&gt;  data wa_it_fldcat type lvc_s_fcat .&lt;/P&gt;&lt;P&gt;  data it_fldcat type lvc_t_fcat .&lt;/P&gt;&lt;P&gt;  data dy_table type ref to data .&lt;/P&gt;&lt;P&gt;  data dy_line type ref to data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Next build an FCAT and dynamic table base on your input structure.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call method z_object-&amp;gt;build_dynamic_structures&lt;/P&gt;&lt;P&gt;         exporting&lt;/P&gt;&lt;P&gt;           my_line = my_line&lt;/P&gt;&lt;P&gt;           calling_program = invoker&lt;/P&gt;&lt;P&gt;         importing&lt;/P&gt;&lt;P&gt;           dy_table = dy_table&lt;/P&gt;&lt;P&gt;         changing&lt;/P&gt;&lt;P&gt;           it_fldcat = it_fldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method build_dynamic_structures.&lt;/P&gt;&lt;P&gt;caller = calling_program.&lt;/P&gt;&lt;P&gt;    call method me-&amp;gt;return_structure&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;      my_line = my_line.     " This is your data structure&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call method me-&amp;gt;create_dynamic_fcat&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;            it_fldcat = it_fldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method return_structure.&lt;/P&gt;&lt;P&gt; lr_rtti_struc ?= cl_abap_structdescr=&amp;gt;describe_by_data( my_line ).&lt;/P&gt;&lt;P&gt;    zogt[]  = lr_rtti_struc-&amp;gt;components.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;endmethod.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Table ZOGT now has the definitions in it so we can build the field catalog&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method create_dynamic_fcat.&lt;/P&gt;&lt;P&gt; loop at zogt into zog.&lt;/P&gt;&lt;P&gt;      clear wa_it_fldcat.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-fieldname = zog-name .&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-datatype = zog-type_kind.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-inttype = zog-type_kind.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-intlen = zog-length.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-decimals = zog-decimals.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-coltext = zog-name.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-lowercase = 'X'.&lt;/P&gt;&lt;P&gt;      append wa_it_fldcat to it_fldcat .&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;.. Add any exta field catalog stuff you want to add but the above method contains the basic for any (non deep) structure whether the elements are in DDIC or not.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create your dynmic table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;call method me-&amp;gt;create_dynamic_table&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;            it_fldcat = it_fldcat&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;            dy_table        = dy_table.&lt;/P&gt;&lt;P&gt;endmethod&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method create_dynamic_table.&lt;/P&gt;&lt;P&gt;call method cl_alv_table_create=&amp;gt;create_dynamic_table&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            it_fieldcatalog = it_fldcat&lt;/P&gt;&lt;P&gt;       importing&lt;/P&gt;&lt;P&gt;            ep_table = dy_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;endmethod.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now you can populate it such as&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form populate_dynamic_itab changing dy_table.&lt;/P&gt;&lt;P&gt;data tabx  like dd02l-tabname.&lt;/P&gt;&lt;P&gt;  assign dy_table-&amp;gt;* to &amp;lt;dyn_table&amp;gt;.&lt;/P&gt;&lt;P&gt;  create data dy_line like line of &amp;lt;dyn_table&amp;gt;.&lt;/P&gt;&lt;P&gt;  assign dy_line-&amp;gt;* to &amp;lt;dyn_wa&amp;gt;.&lt;/P&gt;&lt;P&gt;  select *&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        from dd02l&lt;/P&gt;&lt;P&gt;        into  corresponding fields of table &amp;lt;dyn_table&amp;gt;&lt;/P&gt;&lt;P&gt;        where tabname like  'ZHR%'.&lt;/P&gt;&lt;P&gt;endform&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;&lt;P&gt;Jimbo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 14 Dec 2007 10:05:06 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-do-we-create-data-objects-dyanamically/m-p/3176058#M755864</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-14T10:05:06Z</dc:date>
    </item>
  </channel>
</rss>

