<?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: Dynamic field modification in Work Area. in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-field-modification-in-work-area/m-p/2886068#M677973</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;This problem has been resolved.&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
DATA:
    lit_MARA TYPE TABLE OF MARA,
    lit2_MARA TYPE TABLE OF MARA,
    lwa_MARA LIKE MARA,
    lit_inv TYPE TABLE OF z1354_inv_rec_dt,
    wa_inv  LIKE z1354_inv_rec_dt,
    sctemp(100) TYPE c,
    ifs type i,
     p_gs_s_rec_line TYPE string.

  FIELD-SYMBOLS:
    &amp;lt;fs_MARA&amp;gt; TYPE table,
    &amp;lt;ld_column&amp;gt;   TYPE ANY,
    &amp;lt;fs_wa_MARA&amp;gt; LIKE LINE OF lit_MARA.

*Populate Invoice table
  SELECT * FROM  z1354_inv_rec_dt INTO CORRESPONDING FIELDS OF TABLE
  lit_inv WHERE recordtype = 'S' AND table_name = 'MARA' AND
  column_seq &amp;gt; 0.
  
  p_gs_rec_line = '1234567890000001'.

  lwa_MARA-laufi = '123e'.
  FREE lit_MARA.
  APPEND  lwa_MARA TO lit_MARA.
  ASSIGN lit_MARA[] TO &amp;lt;fs_MARA&amp;gt;.
  UNASSIGN: &amp;lt;fs_wa_MARA&amp;gt;.
* free lit_MARA[] .

* LOOP AT &amp;lt;fs&amp;gt; ASSIGNING &amp;lt;fs1&amp;gt;.
 LOOP AT lit_MARA ASSIGNING &amp;lt;fs_wa_MARA&amp;gt;.
  ifs = sy-tabix.
  write: / ifs.

    LOOP AT lit_inv INTO wa_inv.

      WRITE
      p_gs_s_rec_line+wa_inv-start_pos_extrac(wa_inv-chars_to_extract)
      TO sctemp.

      UNASSIGN: &amp;lt;ld_column&amp;gt;.
      ASSIGN COMPONENT wa_inv-column_name OF STRUCTURE &amp;lt;fs_wa_MARA&amp;gt;
      TO &amp;lt;ld_column&amp;gt;.
      &amp;lt;ld_column&amp;gt; =  sctemp.
      IF ( &amp;lt;ld_column&amp;gt; IS ASSIGNED ).
        WRITE: / '.' .
      ENDIF.
      CLEAR wa_inv.
    ENDLOOP.
    MOVE  &amp;lt;fs_wa_MARA&amp;gt; TO lwa_MARA.
    APPEND lwa_MARA TO lit2_MARA.
   CLEAR &amp;lt;fs_wa_MARA&amp;gt;.
  ENDLOOP.
loop at lit2_MARA into lwa_MARA.
  write: / lwa_MARA-filename.
  clear lwa_MARA.
endloop.
insert MARA from table lit2_MARA.
if sy-subrc &amp;lt;&amp;gt; 0.
  write: / ' Insert  :-( '.
endif.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 28 Sep 2007 09:43:56 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-09-28T09:43:56Z</dc:date>
    <item>
      <title>Dynamic field modification in Work Area.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-field-modification-in-work-area/m-p/2886067#M677972</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want to insert 1 record in a transparent table. (But for time being, let us assume the table is MARA)&lt;/P&gt;&lt;P&gt;The columns and table name to which data is to be inserted are stored in another transparent table say (z1354_inv_rec_dt).&lt;/P&gt;&lt;P&gt;The data to be inserted is specified in a text file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The value for MATNR, let us assume is hard coded as 1252.&lt;/P&gt;&lt;P&gt;The value for fields ERSDA, ERNAM, LAEDA and AENAM will be specified in input text file.&lt;/P&gt;&lt;P&gt;Also the table z1354_inv_rec_dt, will have rows with values ERSDA, ERNAM, LAEDA and AENAM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How do I do this, the code specified in form comparedata is not correct one, but just a starting point for code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;So how do I specify the column of work area at run time and assign value to it.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;Then I have to append value from work area to internal table.&lt;/P&gt;&lt;P&gt;And from internal table, I will insert to database.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
REPORT ZDYN_INS_MARA.
TYPE-POOLS : abap.
DATA:
  lit_z1354_inv_rec_dt  TYPE TABLE OF z1354_inv_rec_dt,
* table z1354_inv_rec_dt contains 2 columns column_name and table_name
* values for column_name are ERSDA, ERNAM, LAEDA and AENAM
* value for table_name is MARA.

  lwa_invoice LIKE  z1354_inv_rec_dt,
  lit_mara TYPE TABLE OF mara,
  lwa_mara LIKE mara.

* To get column names
DATA :
  it_details TYPE abap_compdescr_tab,
  wa_details TYPE abap_compdescr,
  ref_descr TYPE REF TO cl_abap_structdescr.

FIELD-SYMBOLS : &amp;lt;fs_mara&amp;gt; TYPE mara.
FIELD-SYMBOLS : &amp;lt;fs_wa_mara&amp;gt; LIKE LINE OF lit_mara.
FIELD-SYMBOLS : &amp;lt;dyn_field&amp;gt;.

DATA: int_tabname(30).
int_tabname = 'MARA'.

*Populate internal table with columns to be added to Database
PERFORM populaterecdt.
ref_descr ?= cl_abap_typedescr=&amp;gt;describe_by_name( int_tabname ).
*Get the column names from the Database tables
it_details[] = ref_descr-&amp;gt;components[].

PERFORM comparedata.

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  PopulateRecDt
*&amp;amp;---------------------------------------------------------------------*
FORM populaterecdt .
  SELECT column_name table_name FROM z1354_inv_rec_dt
  INTO CORRESPONDING FIELDS OF TABLE lit_z1354_inv_rec_dt
  WHERE table_name = 'MARA' .

ENDFORM.                    " PopulateRecDt

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  CompareData
*&amp;amp;---------------------------------------------------------------------*
FORM comparedata .
*loop through the DB table which holds the column names to be added
LOOP AT lit_z1354_inv_rec_dt INTO lwa_invoice.
*Loop throught table which holds the column names
  ASSIGN COMPONENT 'MATNR' OF STRUCTURE &amp;lt;fs_wa_mara&amp;gt; TO &amp;lt;dyn_field&amp;gt;.
  &amp;lt;dyn_field&amp;gt; = '1252'   .

  LOOP AT it_details INTO wa_details.
    IF wa_details-name = lwa_invoice-column_name.
* Assign value to column of work area from text file.
      ASSIGN component lwa_invoice-column_name of structure                   &amp;lt;fs_wa_mara&amp;gt; to &amp;lt;dyn_field&amp;gt;.
*Get value for &amp;lt;dyn_field&amp;gt; from text file
        &amp;lt;dyn_field&amp;gt; = 'XYZ212'.

    ENDIF.
  ENDLOOP.
ENDLOOP.
*append work area t to lit_mara.
*Append work area to internal table.
*insert the internal table to DB
ENDFORM.                    " CompareData
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here in this loop, I want to assign to the work area for Mara based on the column values, How do I do it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Vikas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Sep 2007 07:08:20 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-field-modification-in-work-area/m-p/2886067#M677972</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-26T07:08:20Z</dc:date>
    </item>
    <item>
      <title>Re: Dynamic field modification in Work Area.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-field-modification-in-work-area/m-p/2886068#M677973</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;This problem has been resolved.&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
DATA:
    lit_MARA TYPE TABLE OF MARA,
    lit2_MARA TYPE TABLE OF MARA,
    lwa_MARA LIKE MARA,
    lit_inv TYPE TABLE OF z1354_inv_rec_dt,
    wa_inv  LIKE z1354_inv_rec_dt,
    sctemp(100) TYPE c,
    ifs type i,
     p_gs_s_rec_line TYPE string.

  FIELD-SYMBOLS:
    &amp;lt;fs_MARA&amp;gt; TYPE table,
    &amp;lt;ld_column&amp;gt;   TYPE ANY,
    &amp;lt;fs_wa_MARA&amp;gt; LIKE LINE OF lit_MARA.

*Populate Invoice table
  SELECT * FROM  z1354_inv_rec_dt INTO CORRESPONDING FIELDS OF TABLE
  lit_inv WHERE recordtype = 'S' AND table_name = 'MARA' AND
  column_seq &amp;gt; 0.
  
  p_gs_rec_line = '1234567890000001'.

  lwa_MARA-laufi = '123e'.
  FREE lit_MARA.
  APPEND  lwa_MARA TO lit_MARA.
  ASSIGN lit_MARA[] TO &amp;lt;fs_MARA&amp;gt;.
  UNASSIGN: &amp;lt;fs_wa_MARA&amp;gt;.
* free lit_MARA[] .

* LOOP AT &amp;lt;fs&amp;gt; ASSIGNING &amp;lt;fs1&amp;gt;.
 LOOP AT lit_MARA ASSIGNING &amp;lt;fs_wa_MARA&amp;gt;.
  ifs = sy-tabix.
  write: / ifs.

    LOOP AT lit_inv INTO wa_inv.

      WRITE
      p_gs_s_rec_line+wa_inv-start_pos_extrac(wa_inv-chars_to_extract)
      TO sctemp.

      UNASSIGN: &amp;lt;ld_column&amp;gt;.
      ASSIGN COMPONENT wa_inv-column_name OF STRUCTURE &amp;lt;fs_wa_MARA&amp;gt;
      TO &amp;lt;ld_column&amp;gt;.
      &amp;lt;ld_column&amp;gt; =  sctemp.
      IF ( &amp;lt;ld_column&amp;gt; IS ASSIGNED ).
        WRITE: / '.' .
      ENDIF.
      CLEAR wa_inv.
    ENDLOOP.
    MOVE  &amp;lt;fs_wa_MARA&amp;gt; TO lwa_MARA.
    APPEND lwa_MARA TO lit2_MARA.
   CLEAR &amp;lt;fs_wa_MARA&amp;gt;.
  ENDLOOP.
loop at lit2_MARA into lwa_MARA.
  write: / lwa_MARA-filename.
  clear lwa_MARA.
endloop.
insert MARA from table lit2_MARA.
if sy-subrc &amp;lt;&amp;gt; 0.
  write: / ' Insert  :-( '.
endif.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Sep 2007 09:43:56 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-field-modification-in-work-area/m-p/2886068#M677973</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-28T09:43:56Z</dc:date>
    </item>
  </channel>
</rss>

