<?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: problem with save to db table in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208220#M1982538</link>
    <description>&lt;P&gt;The most important parts, how ZEKKO03 is updated, the contents of variables to update ZEKKO03, the key of ZEKKO03, are missing. How can we help?&lt;/P&gt;</description>
    <pubDate>Fri, 08 May 2020 17:20:50 GMT</pubDate>
    <dc:creator>Sandra_Rossi</dc:creator>
    <dc:date>2020-05-08T17:20:50Z</dc:date>
    <item>
      <title>problem with save to db table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208219#M1982537</link>
      <description>&lt;P&gt;Hi, i cant seem to save my modified data into my database table (zekko03) after changes made. Im doing saving header for now.&lt;/P&gt;
  &lt;P&gt;the sample programs dont really apply to my situation as i have tried.&lt;/P&gt;
  &lt;P&gt;Should be logic issue, possible to list out/show how it should work logically sequentially for the save_database_update subroutine and what syntax to use?&lt;/P&gt; 
  &lt;PRE&gt;&lt;CODE&gt; 
DATA: G_GRID_LEFT  TYPE REF TO CL_GUI_ALV_GRID, 
      G_GRID_RIGHT TYPE REF TO CL_GUI_ALV_GRID,    
      GS_LAYOUT    TYPE LVC_S_LAYO.  


 PERFORM FIELDCAT.
  GS_LAYOUT-EDIT = ABAP_TRUE.                   
  CALL METHOD G_GRID_LEFT-&amp;gt;SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
      IS_VARIANT                    = LS_VARIANT
      I_STRUCTURE_NAME              = 'ZEKKO03'
      I_SAVE                        = SAVE
      IS_LAYOUT                     = GS_LAYOUT
    CHANGING
      IT_OUTTAB                     = GT_ZHEADER
      IT_FIELDCATALOG               = GT_FIELDCAT
    EXCEPTIONS
      INVALID_PARAMETER_COMBINATION = 1
      PROGRAM_ERROR                 = 2
      TOO_MANY_LINES                = 3
      OTHERS                        = 4.
  IF SY-SUBRC &amp;lt;&amp;gt; 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.&lt;/CODE&gt;&lt;/PRE&gt; 
  &lt;PRE&gt;&lt;CODE&gt;MODULE USER_COMMAND_0100 INPUT.

  CALL METHOD CL_GUI_CFW=&amp;gt;DISPATCH.

  CASE SY-UCOMM.
  
    WHEN 'UPDATE'.
      PERFORM SAVE_DATABASE_UPDATE.
    WHEN 'SWITCH'.
      PERFORM SWITCH_EDIT_MODE.
    WHEN OTHERS.
  ENDCASE.


ENDMODULE.     &lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt;Update method is working, meaning record gets updated. However when called into alv program, the header zekko03 record is not being updated.&lt;/P&gt;
  &lt;P&gt;When i debugged, modified field gets updated at first (changed from YNB to ZNB)&lt;/P&gt;
  &lt;P&gt;&lt;IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/attachments/storage/7/attachments/1806542-debug1.png" /&gt;&lt;/P&gt;
  &lt;P&gt; Later on it takes only one record (the very first record), once done executing the debug mode, record doesnt get updated&lt;/P&gt;
  &lt;P&gt;&lt;IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/attachments/storage/7/attachments/1806541-debug.png" /&gt;&lt;/P&gt; 
  &lt;PRE&gt;&lt;CODE&gt;FORM SAVE_DATABASE_UPDATE.  

  LOOP AT gt_zheader INTO gs_zheader.
        CALL METHOD ZCL_03_DATA_MODEL=&amp;gt;SELECT_PURCHASE_ORDERS
      EXPORTING
       IV_KEY      = gs_zheader-ebeln
        IV_MAX_ROWS = IV_MAX_ROWS
      IMPORTING
        IT_ZHEADER  = gt_zheader
      .


    CALL METHOD ZCL_03_DATA_MODEL=&amp;gt;UPDATE_PURCHASE_ORDERS
      EXPORTING
        IT_ZHEADER  = GT_ZHEADER
        IT_ZITEMS   = GT_ZITEMS
      IMPORTING
        ES_BAPIRET2 = BAPIRET2.

ENDLOOP.


ENDFORM.&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt;These are some of the references i used &lt;/P&gt;
  &lt;P&gt;&lt;A href="http://saptechnical.com/Tutorials/ALV/Edit/demo.htm"&gt;http://saptechnical.com/Tutorials/ALV/Edit/demo.htm&lt;/A&gt;&lt;/P&gt;
  &lt;P&gt;&lt;A href="https://answers.sap.com/questions/5294394/problem-with-alv-edit-and-save.html"&gt;https://answers.sap.com/questions/5294394/problem-with-alv-edit-and-save.html&lt;/A&gt;&lt;/P&gt;
  &lt;P&gt;&lt;A href="https://oprsteny.com/?p=843"&gt;https://oprsteny.com/?p=843&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 08 May 2020 16:37:38 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208219#M1982537</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2020-05-08T16:37:38Z</dc:date>
    </item>
    <item>
      <title>Re: problem with save to db table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208220#M1982538</link>
      <description>&lt;P&gt;The most important parts, how ZEKKO03 is updated, the contents of variables to update ZEKKO03, the key of ZEKKO03, are missing. How can we help?&lt;/P&gt;</description>
      <pubDate>Fri, 08 May 2020 17:20:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208220#M1982538</guid>
      <dc:creator>Sandra_Rossi</dc:creator>
      <dc:date>2020-05-08T17:20:50Z</dc:date>
    </item>
    <item>
      <title>Re: problem with save to db table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208221#M1982539</link>
      <description>&lt;P&gt;Hi Sandra, the code for updates/save to db its all there, attached in images &lt;A href="https://answers.sap.com/storage/attachments/1806543-update-method.png"&gt;update-method.png&lt;/A&gt; in conversation above&lt;/P&gt;&lt;P&gt;These are the variables for program&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;DATA: GT_ZHEADER TYPE TABLE OF ZEKKO03,     ""global variable for ZEKKO03
GS_ZHEADER LIKE LINE OF GT_ZHEADER


DATA: SPLITTER        TYPE REF TO CL_GUI_SPLITTER_CONTAINER,
      GRAPHIC_PARENT1 TYPE REF TO CL_GUI_CONTAINER,
      GRAPHIC_PARENT2 TYPE REF TO CL_GUI_CONTAINER.

DATA: G_GRID_LEFT  TYPE REF TO CL_GUI_ALV_GRID,   "" instance for left grid
      G_GRID_RIGHT TYPE REF TO CL_GUI_ALV_GRID,    "" instance for right grid
      GS_LAYOUT    TYPE LVC_S_LAYO,           "" global structure for layout
      GT_FIELDCAT  TYPE LVC_T_FCAT,           "" global variable for fieldcat
      GS_FIELDCAT  TYPE LVC_S_FCAT,            "" global structure for fieldcat
      check.

DATA: BAPIRET2 TYPE BAPIRET2.&amp;lt;br&amp;gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Zekko table&lt;/P&gt;&lt;P&gt;&lt;IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/attachments/storage/7/attachments/1806546-zekko.png" /&gt;&lt;/P&gt;&lt;P&gt;Variables for update_purchase_orders method&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;    DATA: LS_ZHEADER      TYPE ZEKKO03,
          LS_ZITEMS       TYPE ZEKPO03.&amp;lt;br&amp;gt;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 08 May 2020 18:16:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208221#M1982539</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2020-05-08T18:16:46Z</dc:date>
    </item>
    <item>
      <title>Re: problem with save to db table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208222#M1982540</link>
      <description>&lt;P&gt;What Sandra is saying is the more import part is the update/insert/modify command... and the values that you are passing to it command. All the other things are complementary for this command.&lt;/P&gt;&lt;P&gt;What the code of the code below?&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt; CALL METHOD ZCL_03_DATA_MODEL=&amp;gt;UPDATE_PURCHASE_ORDERS
      EXPORTING
        IT_ZHEADER  = GT_ZHEADER
        IT_ZITEMS   = GT_ZITEMS
      IMPORTING
        ES_BAPIRET2 = BAPIRET2.&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 08 May 2020 18:46:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208222#M1982540</guid>
      <dc:creator>balbinosoares</dc:creator>
      <dc:date>2020-05-08T18:46:42Z</dc:date>
    </item>
    <item>
      <title>Re: problem with save to db table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208223#M1982541</link>
      <description>&lt;P&gt;Select method&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;iv_key type zebeln_emnt (data element for ebeln) - import
value( IV_MAX_ROWS ) type i default 0 - import
IT_ZHEADER TYPE ZEKKO03_TT (table type) - import
   IT_ZITEMS TYPE ZEKPO03_TT (table type) - import
   ES_BAPIRET2 TYPE BAPIRET2 - export 

  METHOD SELECT_PURCHASE_ORDERS.

    DATA: LS_ZHEADER TYPE ZEKKO03.

    IF IV_KEY IS INITIAL .

      SELECT MANDT EBELN BEDAT BSART LIFNR WAERS KNUMV
        INTO TABLE IT_ZHEADER
        FROM ZEKKO03
        WHERE EBELN EQ IV_KEY.

      IF SY-SUBRC = 0.

        IF IV_MAX_ROWS GT 0.

          SELECT MANDT EBELN BEDAT BSART LIFNR WAERS KNUMV
            FROM ZEKKO03 INTO TABLE IT_ZHEADER
            UP TO IV_MAX_ROWS ROWS.

          SELECT MANDT EBELN EBELP BUKRS WERKS MATNR MENGE MEINS NETPR
            FROM ZEKPO03 INTO TABLE IT_ZITEMS UP TO IV_MAX_ROWS ROWS
            WHERE EBELN EQ IV_KEY.

          ES_BAPIRET2-TYPE = 'S'.
          ES_BAPIRET2-MESSAGE = 'Record with input rows found'.

        ELSEIF IV_MAX_ROWS EQ 0.

          SELECT MANDT EBELN EBELP BUKRS WERKS MATNR MENGE MEINS NETPR
            FROM ZEKPO03 INTO TABLE IT_ZITEMS
            WHERE EBELN EQ IV_KEY.

          ES_BAPIRET2-TYPE = 'S'.
          ES_BAPIRET2-MESSAGE = 'All records found'.

        ELSE .
          ES_BAPIRET2-TYPE = 'E'.
          ES_BAPIRET2-MESSAGE = 'No record found'.
        ENDIF.

      ELSE.     "this statement belongs to sy-subrc (all above are fulfilled)

        SELECT MANDT EBELN BEDAT BSART LIFNR WAERS KNUMV
          FROM ZEKKO03 INTO TABLE IT_ZHEADER
          UP TO IV_MAX_ROWS ROWS.

        LOOP AT IT_ZHEADER INTO LS_ZHEADER.   ""join line item to header
          SELECT MANDT EBELN EBELP BUKRS WERKS MATNR MENGE MEINS NETPR
            FROM ZEKPO03 APPENDING TABLE IT_ZITEMS
            WHERE EBELN EQ LS_ZHEADER-EBELN.
        ENDLOOP.

      ENDIF.

    ELSE.

      SELECT MANDT EBELN EBELP BUKRS WERKS MATNR MENGE MEINS NETPR      """added for ALV program
        INTO TABLE IT_ZITEMS
        FROM ZEKPO03
        WHERE EBELN EQ IV_KEY.

      SELECT MANDT EBELN BEDAT BSART LIFNR WAERS KNUMV                  """" added for ALV program
        INTO TABLE IT_ZHEADER
        FROM ZEKKO03
        WHERE EBELN EQ IV_KEY.

    ENDIF.

  ENDMETHOD.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Update (modify) method&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;   IT_ZHEADER TYPE ZEKKO03_TT (table type) - import
   IT_ZITEMS TYPE ZEKPO03_TT (table type) - import
   ES_BAPIRET2 TYPE BAPIRET2 - export

METHOD UPDATE_PURCHASE_ORDERS.

    DATA: LS_ZHEADER      TYPE ZEKKO03,
          LS_ZITEMS       TYPE ZEKPO03.


if it_zheader IS NOT INITIAL.

  loop at it_zheader INTO ls_zheader.
        modify zekko03 FROM ls_zheader .
        IF SY-SUBRC = 0.
          ES_BAPIRET2-TYPE = 'S'.
          ES_BAPIRET2-MESSAGE = 'Successfully updated for table ZEKKO03'.

        ELSE.
          ES_BAPIRET2-TYPE = 'E'.
          ES_BAPIRET2-MESSAGE = 'Error updating table ZEKKO03'.
        ENDIF.

  endloop.

endif.



  ENDMETHOD.&amp;lt;br&amp;gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Insert method&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;   
IT_ZHEADER TYPE ZEKKO03_TT (table type) - import
   IT_ZITEMS TYPE ZEKPO03_TT (table type) - import
   ES_BAPIRET2 TYPE BAPIRET2 - export

METHOD CREATE_PURCHASE_ORDERS.

    IF IT_ZHEADER IS NOT INITIAL.
      INSERT ZEKKO03 FROM TABLE IT_ZHEADER.

      IF SY-SUBRC = 0.
        ES_BAPIRET2-TYPE = 'S'.
        ES_BAPIRET2-MESSAGE = 'Row ZEKKO03 inserted'.

      ELSE.
        ES_BAPIRET2-TYPE = 'E'.
        ES_BAPIRET2-MESSAGE = 'Error for ZEKKO03'.
      ENDIF.
    ENDIF.

    IF IT_ZHEADER IS NOT INITIAL AND IT_ZITEMS IS NOT INITIAL.
      INSERT ZEKPO03 FROM TABLE IT_ZITEMS.

      IF SY-SUBRC = 0.
        ES_BAPIRET2-TYPE = 'S'.
        CONCATENATE ES_BAPIRET2-MESSAGE 'Row ZEKPO03 inserted' INTO ES_BAPIRET2-MESSAGE.

      ELSE.
        ES_BAPIRET2-TYPE = 'E'.
        CONCATENATE ES_BAPIRET2-MESSAGE 'Error for ZEKPO03' INTO ES_BAPIRET2-MESSAGE.
      ENDIF.
    ENDIF.

  ENDMETHOD.&amp;lt;br&amp;gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Delete method&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;  
 IT_ZHEADER TYPE ZEKKO03_TT (table type) - import
   IT_ZITEMS TYPE ZEKPO03_TT (table type) - import

value( IV_IS_DELETE_ALL ) TYPE TYPE BOOLEAN OPTIONAL - import
   ES_BAPIRET2 TYPE BAPIRET2 - export  



METHOD DELETE_PURCHASE_ORDERS.

    DATA: LS_ZHEADER     TYPE ZEKKO03,
          LS_ZITEMS      TYPE ZEKPO03,
          LV_COUNT_HDR   TYPE I,
          LV_COUNT_ITEMS TYPE I.

    IF IV_IS_DELETE_ALL = 'X' OR IV_IS_DELETE_ALL = 'x' .
      DELETE FROM ZEKKO03.
      DELETE FROM ZEKPO03.

      IF SY-SUBRC = 0.
        ES_BAPIRET2-TYPE = 'S'.
        ES_BAPIRET2-MESSAGE = 'All records deleted'.

      ENDIF.

    ELSE.
      LOOP AT IT_ZHEADER INTO LS_ZHEADER.
        SELECT COUNT(*) INTO LV_COUNT_HDR FROM ZEKPO03
          WHERE EBELN = LS_ZHEADER-EBELN.
      ENDLOOP.

            IF LV_COUNT_HDR = 1.

        DELETE FROM ZEKPO03 WHERE EBELN EQ LS_ZHEADER-EBELN.
        DELETE FROM ZEKKO03 WHERE EBELN EQ LS_ZHEADER-EBELN.

        IF SY-SUBRC = 0.
          ES_BAPIRET2-TYPE = 'S'.
          ES_BAPIRET2-MESSAGE = 'Record successfully deleted'.

        ELSE.
          ES_BAPIRET2-TYPE = 'E'.
          ES_BAPIRET2-MESSAGE = 'Error deleting record'.
        ENDIF.

      ENDIF.

    ENDIF.

  ENDMETHOD.&amp;lt;br&amp;gt;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 09 May 2020 05:10:35 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208223#M1982541</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2020-05-09T05:10:35Z</dc:date>
    </item>
    <item>
      <title>Re: problem with save to db table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208224#M1982542</link>
      <description>&lt;P&gt;Everything should be straight forward. If you debug your code, you see that MODIFY, INSERT or DELETE do update correctly the database (SY-SUBRC = 0, except if internal table is empty). So, no doubt that it updates the database. You must also use COMMIT WORK and ROLLBACK WORK to commit or roll back the changes. Where are they?&lt;/P&gt;&lt;P&gt;If you say that it doesn't update the database, maybe you mean that the DISPLAY doesn't reflect the changes. Then it's another question, not that the database is not updated, but that the screen is not refreshed correctly. Leave the transaction and call it again, if it displays the database table correctly, that confirms the refresh issue.&lt;/P&gt;</description>
      <pubDate>Sat, 09 May 2020 05:49:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208224#M1982542</guid>
      <dc:creator>Sandra_Rossi</dc:creator>
      <dc:date>2020-05-09T05:49:24Z</dc:date>
    </item>
    <item>
      <title>Re: problem with save to db table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208225#M1982543</link>
      <description>&lt;P&gt;I have added the commit and rollback work. Same as before, when called into alv program, modified values dont reflect&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;if it_zheader IS NOT INITIAL.

  loop at it_zheader INTO ls_zheader.
        modify zekko03 FROM ls_zheader .
        IF SY-SUBRC = 0.
          COMMIT WORK.
          ES_BAPIRET2-TYPE = 'S'.
          ES_BAPIRET2-MESSAGE = 'Successfully updated for table ZEKKO03'.

        ELSE.
          ROLLBACK WORK.
          ES_BAPIRET2-TYPE = 'E'.
          ES_BAPIRET2-MESSAGE = 'Error updating table ZEKKO03'.
        ENDIF.

  endloop.

endif.&amp;lt;br&amp;gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;When i added refresh_table_display, it is taking the very first record whenever value change update is performed and excludes other records, update is not reflected as well. &lt;/P&gt;&lt;P&gt;Original output:&lt;/P&gt;&lt;P&gt;&lt;IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/attachments/storage/7/attachments/1806564-update-capture1.png" /&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;  LOOP AT gt_zheader INTO gs_zheader.
        CALL METHOD ZCL_03_DATA_MODEL=&amp;gt;SELECT_PURCHASE_ORDERS
      EXPORTING
       IV_KEY      = gs_zheader-ebeln
        IV_MAX_ROWS = IV_MAX_ROWS
      IMPORTING
        IT_ZHEADER  = gt_zheader
      .


    CALL METHOD ZCL_03_DATA_MODEL=&amp;gt;UPDATE_PURCHASE_ORDERS
      EXPORTING
        IT_ZHEADER  = GT_ZHEADER
        IT_ZITEMS   = GT_ZITEMS
      IMPORTING
        ES_BAPIRET2 = BAPIRET2.

ENDLOOP.

    g_grid_left-&amp;gt;refresh_table_display( ).&amp;lt;br&amp;gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Output once refresh_table_display inserted in program source code:&lt;/P&gt;&lt;P&gt;&lt;IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/attachments/storage/7/attachments/1806563-update-capture.png" /&gt;&lt;/P&gt;&lt;P&gt;Once removed refresh_table_display, it will revert back to the original output.&lt;/P&gt;&lt;P&gt;Kindly advise&lt;/P&gt;&lt;P&gt;Whenever update changes made by pressing update button (even if value not reflected), it keeps on looping, meaning the first record (example: 4500000015) will appear in the last record, and the next record (example: 4500000021) appear as first record &lt;/P&gt;</description>
      <pubDate>Sat, 09 May 2020 06:31:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208225#M1982543</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2020-05-09T06:31:53Z</dc:date>
    </item>
    <item>
      <title>Re: problem with save to db table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208226#M1982544</link>
      <description>&lt;P&gt;Did you restart the program? So you see that the database updates are okay, right? So, you understand that it's only a screen refresh problem, right?&lt;/P&gt;&lt;P&gt;Based on this evidence, that would be more simple to say it immediately instead of spending useless time on discussing about the updates.&lt;/P&gt;&lt;P&gt;Your refresh issue is probably the same as usual: you instantiate the grid again and again, but in that case only the first instance is always displayed. &lt;A href="https://stackoverflow.com/a/53969849/9150270"&gt;More information here&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Sat, 09 May 2020 07:07:54 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208226#M1982544</guid>
      <dc:creator>Sandra_Rossi</dc:creator>
      <dc:date>2020-05-09T07:07:54Z</dc:date>
    </item>
    <item>
      <title>Re: problem with save to db table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208227#M1982545</link>
      <description>&lt;P&gt;Hi Sandra, should be refresh problem, the third paragraph of your statement, Im not sure know how to apply it to my program, can you guide through?&lt;/P&gt;</description>
      <pubDate>Sat, 09 May 2020 07:32:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208227#M1982545</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2020-05-09T07:32:26Z</dc:date>
    </item>
    <item>
      <title>Re: problem with save to db table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208228#M1982546</link>
      <description>&lt;P&gt;I'm sorry but you didn't post any code related to how you instantiate your grid control so I can't answer. But can't you debug yourself: do you instantiate the grid control several times, do you free it, etc. Sorry, I don't do spoon feeding. Good luck.&lt;/P&gt;</description>
      <pubDate>Sat, 09 May 2020 08:40:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208228#M1982546</guid>
      <dc:creator>Sandra_Rossi</dc:creator>
      <dc:date>2020-05-09T08:40:33Z</dc:date>
    </item>
    <item>
      <title>Re: problem with save to db table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208229#M1982547</link>
      <description>&lt;P&gt;The FREE method is only applicable to custom container, which means i might need to re-do everything, the one i used is not type compatible with FREE method&lt;/P&gt;&lt;P&gt;Is there an alternative way?&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;ORM DISPLAY_GRID.

  DATA: SPLITTER        TYPE REF TO CL_GUI_SPLITTER_CONTAINER,
        GRAPHIC_PARENT1 TYPE REF TO CL_GUI_CONTAINER,
        GRAPHIC_PARENT2 TYPE REF TO CL_GUI_CONTAINER.

*----------------------------------------------------------------------*
*                       FOR VARIANT
*----------------------------------------------------------------------*
  DATA LS_VARIANT TYPE DISVARIANT .
  DATA SAVE TYPE C.
*  ST_VAR-REPORT = 'YKC_ALV_OOPS'.
  SAVE = 'A'.


  CREATE OBJECT SPLITTER
    EXPORTING
      PARENT  = CL_GUI_CONTAINER=&amp;gt;DEFAULT_SCREEN
      ROWS    = 1
      COLUMNS = 2
      ALIGN   = 15.

  CALL METHOD SPLITTER-&amp;gt;GET_CONTAINER
    EXPORTING
      ROW       = 1
      COLUMN    = 1
    RECEIVING
      CONTAINER = GRAPHIC_PARENT1.

  CALL METHOD SPLITTER-&amp;gt;GET_CONTAINER
    EXPORTING
      ROW       = 1
      COLUMN    = 2
    RECEIVING
      CONTAINER = GRAPHIC_PARENT2.

  CREATE OBJECT G_GRID_LEFT
    EXPORTING
      I_PARENT = GRAPHIC_PARENT1.

  CREATE OBJECT G_GRID_RIGHT
    EXPORTING
      I_PARENT = GRAPHIC_PARENT2.

  LS_VARIANT-REPORT   = SY-REPID.

  PERFORM FIELDCAT.
  GS_LAYOUT-EDIT = ABAP_TRUE.                     """" to add edit layout function
  CALL METHOD G_GRID_LEFT-&amp;gt;SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
      IS_VARIANT                    = LS_VARIANT
      I_STRUCTURE_NAME              = 'ZEKKO03'
      I_SAVE                        = SAVE
      IS_LAYOUT                     = GS_LAYOUT
    CHANGING
      IT_OUTTAB                     = GT_ZHEADER
      IT_FIELDCATALOG               = GT_FIELDCAT
    EXCEPTIONS
      INVALID_PARAMETER_COMBINATION = 1
      PROGRAM_ERROR                 = 2
      TOO_MANY_LINES                = 3
      OTHERS                        = 4.
  IF SY-SUBRC &amp;lt;&amp;gt; 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


  PERFORM FIELDCAT.
  CALL METHOD G_GRID_RIGHT-&amp;gt;SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
      IS_VARIANT                    = LS_VARIANT
      I_STRUCTURE_NAME              = 'ZEKPO03'
      IS_LAYOUT                     = GS_LAYOUT
      I_SAVE                        = SAVE
    CHANGING
      IT_OUTTAB                     = GT_ZITEMS
      IT_FIELDCATALOG               = GT_FIELDCAT
    EXCEPTIONS
      INVALID_PARAMETER_COMBINATION = 1
      PROGRAM_ERROR                 = 2
      TOO_MANY_LINES                = 3
      OTHERS                        = 4.
  IF SY-SUBRC &amp;lt;&amp;gt; 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.



ENDFORM.                  "display_grid&amp;lt;br&amp;gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;&lt;CODE&gt;*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  STATUS_0100  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.

  SET PF-STATUS 'MAIN'.
  SET TITLEBAR 'ZPROJ03_ALV'.

    DATA: rs_selfield type slis_selfield,
        l_valid type c.

  IF G_GRID_LEFT IS INITIAL.

    PERFORM READ_DATA_HEADER.
    PERFORM DISPLAY_GRID.

    CREATE OBJECT EVENT_HANDLER.
    SET HANDLER EVENT_HANDLER-&amp;gt;HANDLE_DOUBLE_CLICK FOR G_GRID_LEFT.

  ENDIF.


ENDMODULE.                 " STATUS_0100  OUTPUT

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  USER_COMMAND_0100  INPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.

  CALL METHOD CL_GUI_CFW=&amp;gt;DISPATCH.

  CASE SY-UCOMM.

    WHEN 'BACK'.
      SET SCREEN 0. LEAVE SCREEN.
    WHEN 'EXIT'.
      SET SCREEN 0. LEAVE SCREEN.
    WHEN 'CANCEL'.
      LEAVE PROGRAM. LEAVE SCREEN.
    WHEN 'DELETE'.
      PERFORM SAVE_DATABASE_DELETE.
*    WHEN 'RELOAD'.
*      PERFORM SAVE_DATABASE_RELOAD.
    WHEN 'UPDATE'.
      PERFORM SAVE_DATABASE_UPDATE.
    WHEN 'SWITCH'.
      PERFORM SWITCH_EDIT_MODE.
    WHEN OTHERS.

  ENDCASE.


ENDMODULE.                 " USER_COMMAND_0100  INPUT&amp;lt;br&amp;gt;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 09 May 2020 11:41:47 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208229#M1982547</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2020-05-09T11:41:47Z</dc:date>
    </item>
    <item>
      <title>Re: problem with save to db table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208230#M1982548</link>
      <description>&lt;P&gt;In your code, I see that you have a condition IF g_grid_left IS INITIAL so it shouldn't be instantiated several times. I asked questions ("do you instantiate the grid control several times") but I don't get answers. So maybe you should post the complete code so that people can review and analyze it, I hope additional questions won't be needed.&lt;/P&gt;</description>
      <pubDate>Sat, 09 May 2020 14:19:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208230#M1982548</guid>
      <dc:creator>Sandra_Rossi</dc:creator>
      <dc:date>2020-05-09T14:19:02Z</dc:date>
    </item>
    <item>
      <title>Re: problem with save to db table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208231#M1982549</link>
      <description>&lt;P&gt;Noted Im looking into it, sorry for inconvenience&lt;/P&gt;&lt;P&gt;Due to limit of characters in comment box, ive attached the rest of the alv program source code here &lt;A href="https://answers.sap.com/storage/temp/1806573-subroutines-update-and-delete.txt"&gt;subroutines-update-and-delete.txt&lt;/A&gt;&lt;/P&gt;&lt;P&gt;All the select, update(modify), delete and insert methods i have shared in txt file &lt;A href="https://answers.sap.com/storage/temp/1806578-methods-for-z-class.txt"&gt;methods-for-z-class.txt&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Program source code:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;CLASS LCL_EVENTHANDLER DEFINITION DEFERRED.

DATA: GT_ZHEADER TYPE TABLE OF ZEKKO03, ""global variable for ZEKKO03
 GT_ZITEMS TYPE TABLE OF ZEKPO03. ""global variable for ZEKPO03

DATA: GS_ZHEADER LIKE LINE OF GT_ZHEADER,
 GS_ZITEMS LIKE LINE OF GT_ZITEMS.

DATA: SPLITTER TYPE REF TO CL_GUI_SPLITTER_CONTAINER,
 GRAPHIC_PARENT1 TYPE REF TO CL_GUI_CONTAINER,
 GRAPHIC_PARENT2 TYPE REF TO CL_GUI_CONTAINER.

DATA: G_GRID_LEFT TYPE REF TO CL_GUI_ALV_GRID, "" instance for left grid
 G_GRID_RIGHT TYPE REF TO CL_GUI_ALV_GRID, "" instance for right grid
 GS_LAYOUT TYPE LVC_S_LAYO, "" global structure for layout
 GT_FIELDCAT TYPE LVC_T_FCAT, "" global variable for fieldcat
 GS_FIELDCAT TYPE LVC_S_FCAT, "" global structure for fieldcat
 check.
DATA: BAPIRET2 TYPE BAPIRET2.

CONSTANTS: IV_MAX_ROWS TYPE I VALUE 100.

*** Alv toolbar
DATA: EVENT_HANDLER TYPE REF TO LCL_EVENTHANDLER.

*---------------------------------------------------------------------*
* CLASS lcl_eventhandler DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*

CLASS LCL_EVENTHANDLER DEFINITION." class definition

 PUBLIC SECTION.

 CLASS-METHODS:
 HANDLE_DOUBLE_CLICK FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID
 IMPORTING
 E_ROW
 E_COLUMN
 ES_ROW_NO
 SENDER.

ENDCLASS. "LCL_EVENT_RECEIVER DEFINITION
START-OF-SELECTION.

 CALL SCREEN 100.

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Form read_data
*&amp;amp;---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM READ_DATA_HEADER.
 DATA:
 LT_ZHEADER TYPE TABLE OF ZEKKO03,
 LS_ZHEADER TYPE ZEKKO03.

 CALL METHOD ZCL_03_DATA_MODEL=&amp;gt;SELECT_PURCHASE_ORDERS
 EXPORTING
 IV_MAX_ROWS = IV_MAX_ROWS
 IMPORTING
 IT_ZHEADER = GT_ZHEADER.

ENDFORM.
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Form display_grid
*&amp;amp;---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM DISPLAY_GRID.

 DATA: SPLITTER TYPE REF TO CL_GUI_SPLITTER_CONTAINER,
 GRAPHIC_PARENT1 TYPE REF TO CL_GUI_CONTAINER,
 GRAPHIC_PARENT2 TYPE REF TO CL_GUI_CONTAINER.

*----------------------------------------------------------------------*
* FOR VARIANT
*----------------------------------------------------------------------*
 DATA LS_VARIANT TYPE DISVARIANT .
 DATA SAVE TYPE C.
* ST_VAR-REPORT = 'YKC_ALV_OOPS'.
 SAVE = 'A'.

 CREATE OBJECT SPLITTER
 EXPORTING
 PARENT = CL_GUI_CONTAINER=&amp;gt;DEFAULT_SCREEN
 ROWS = 1
 COLUMNS = 2
 ALIGN = 15.

 CALL METHOD SPLITTER-&amp;gt;GET_CONTAINER
 EXPORTING
 ROW = 1
 COLUMN = 1
 RECEIVING
 CONTAINER = GRAPHIC_PARENT1.

 CALL METHOD SPLITTER-&amp;gt;GET_CONTAINER
 EXPORTING
 ROW = 1
 COLUMN = 2
 RECEIVING
 CONTAINER = GRAPHIC_PARENT2.
 CREATE OBJECT G_GRID_LEFT
 EXPORTING
 I_PARENT = GRAPHIC_PARENT1.

 CREATE OBJECT G_GRID_RIGHT
 EXPORTING
 I_PARENT = GRAPHIC_PARENT2.

 LS_VARIANT-REPORT = SY-REPID.

 PERFORM FIELDCAT.
 GS_LAYOUT-EDIT = ABAP_TRUE. """" to add edit layout function
 CALL METHOD G_GRID_LEFT-&amp;gt;SET_TABLE_FOR_FIRST_DISPLAY
 EXPORTING
 IS_VARIANT = LS_VARIANT
 I_STRUCTURE_NAME = 'ZEKKO03'
 I_SAVE = SAVE
 IS_LAYOUT = GS_LAYOUT
 CHANGING
 IT_OUTTAB = GT_ZHEADER
 IT_FIELDCATALOG = GT_FIELDCAT
 EXCEPTIONS
 INVALID_PARAMETER_COMBINATION = 1
 PROGRAM_ERROR = 2
 TOO_MANY_LINES = 3
 OTHERS = 4.
 IF SY-SUBRC &amp;lt;&amp;gt; 0.
 MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
 ENDIF.
 PERFORM FIELDCAT.
 CALL METHOD G_GRID_RIGHT-&amp;gt;SET_TABLE_FOR_FIRST_DISPLAY
 EXPORTING
 IS_VARIANT = LS_VARIANT
 I_STRUCTURE_NAME = 'ZEKPO03'
 IS_LAYOUT = GS_LAYOUT
 I_SAVE = SAVE
 CHANGING
 IT_OUTTAB = GT_ZITEMS
 IT_FIELDCATALOG = GT_FIELDCAT
 EXCEPTIONS
 INVALID_PARAMETER_COMBINATION = 1
 PROGRAM_ERROR = 2
 TOO_MANY_LINES = 3
 OTHERS = 4.
 IF SY-SUBRC &amp;lt;&amp;gt; 0.
 MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
 ENDIF.
ENDFORM. "display_grid
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Form fieldcat
*&amp;amp;---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM FIELDCAT.

 DATA: NO TYPE I VALUE 1.

 IF G_GRID_LEFT IS NOT INITIAL.

 CLEAR GT_FIELDCAT.
* NO = NO + 1.
* GS_FIELDCAT-ROW_POS = NO.
 GS_FIELDCAT-FIELDNAME = 'EBELN'.
 GS_FIELDCAT-TABNAME = 'ZEKKO03'.
 GS_FIELDCAT-OUTPUTLEN = 20.
 APPEND GS_FIELDCAT TO GT_FIELDCAT.
 ELSEIF G_GRID_RIGHT IS NOT INITIAL.

 APPEND GS_FIELDCAT TO GT_FIELDCAT.

 ENDIF.

ENDFORM. "fieldname
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Module STATUS_0100 OUTPUT
*&amp;amp;---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.

 SET PF-STATUS 'MAIN'.
 SET TITLEBAR 'ZPROJ03_ALV'.

 IF G_GRID_LEFT IS INITIAL.

 PERFORM READ_DATA_HEADER.
 PERFORM DISPLAY_GRID.
* PERFORM SWITCH_EDIT_MODE.

 CREATE OBJECT EVENT_HANDLER.
 SET HANDLER EVENT_HANDLER-&amp;gt;HANDLE_DOUBLE_CLICK FOR G_GRID_LEFT.

 ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Module USER_COMMAND_0100 INPUT
*&amp;amp;---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.

 CALL METHOD CL_GUI_CFW=&amp;gt;DISPATCH.

 CASE SY-UCOMM.

 WHEN 'BACK'.
 SET SCREEN 0. LEAVE SCREEN.
 WHEN 'EXIT'.
 SET SCREEN 0. LEAVE SCREEN.
 WHEN 'CANCEL'.
 LEAVE PROGRAM. LEAVE SCREEN.
 WHEN 'DELETE'.
 PERFORM SAVE_DATABASE_DELETE.
* WHEN 'RELOAD'.
* PERFORM SAVE_DATABASE_RELOAD.
 WHEN 'UPDATE'.
 PERFORM SAVE_DATABASE_UPDATE.
 WHEN 'SWITCH'.
 PERFORM SWITCH_EDIT_MODE.
 WHEN OTHERS.
* do nothing

 ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
""" Source: DEMO_GUI_ALV_GRID_EXT
* ===============================================================
* LOCAL CLASSES: IMPLEMENTATION
* ===============================================================
CLASS LCL_EVENTHANDLER IMPLEMENTATION." implementation
 METHOD HANDLE_DOUBLE_CLICK.

* define local data
 DATA:
 LT_ZHEADER TYPE TABLE OF ZEKKO03,
 LT_ZITEMS2 TYPE TABLE OF ZEKPO03,
 LS_ZHEADER TYPE ZEKKO03,
 LS_ZITEMS2 LIKE LINE OF LT_ZITEMS2. """ like line of applicable to structure for ztables

 DATA: LT_INDEX TYPE LVC_T_ROW,
 LT_ROWID TYPE LVC_T_ROID,
 LS_ROWIN LIKE LINE OF LT_ROWID.

 CASE SENDER.

 WHEN G_GRID_LEFT.

 CALL METHOD G_GRID_LEFT-&amp;gt;GET_SELECTED_ROWS
 IMPORTING
 ET_INDEX_ROWS = LT_INDEX """ comes with 10 digits start with 0, not recommended as the index only read the first 2 digits
 ET_ROW_NO = LT_ROWID. """ Integer data type with 4 digits, recommended as index for read table the system will only read first 2 digits
 LOOP AT LT_ROWID INTO LS_ROWIN.

 CALL METHOD ZCL_03_DATA_MODEL=&amp;gt;SELECT_PURCHASE_ORDERS """ PO selection to get total number of record on header in the db table
 EXPORTING
* IV_KEY =
 IV_MAX_ROWS = IV_MAX_ROWS
 IMPORTING
 IT_ZHEADER = LT_ZHEADER
* IT_ZITEMS =
* ES_BAPIRET2 =
 .

 READ TABLE LT_ZHEADER INDEX LS_ROWIN-ROW_ID INTO LS_ZHEADER.

 CALL METHOD ZCL_03_DATA_MODEL=&amp;gt;SELECT_PURCHASE_ORDERS """""select line items based on header
 EXPORTING
 IV_KEY = LS_ZHEADER-EBELN
* IV_MAX_ROWS =
 IMPORTING
* IT_ZHEADER =
 IT_ZITEMS = LT_ZITEMS2
* ES_BAPIRET2 =
 .

 ENDLOOP.

 GT_ZITEMS = LT_ZITEMS2.
 G_GRID_RIGHT-&amp;gt;REFRESH_TABLE_DISPLAY( ). """ refresh table

 ENDCASE.

 ENDMETHOD.
ENDCLASS. "LCL_EVENT_RECEIVER IMPLEMENTATION
FORM SWITCH_EDIT_MODE.
 IF G_GRID_LEFT-&amp;gt;IS_READY_FOR_INPUT( ) EQ 0.
 CALL METHOD G_GRID_LEFT-&amp;gt;SET_READY_FOR_INPUT
 EXPORTING
 I_READY_FOR_INPUT = 1.
 ELSE.
 CALL METHOD G_GRID_LEFT-&amp;gt;SET_READY_FOR_INPUT
 EXPORTING
 I_READY_FOR_INPUT = 0.
 ENDIF.
ENDFORM. " SWITCH_EDIT_MODE&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 09 May 2020 15:40:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208231#M1982549</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2020-05-09T15:40:42Z</dc:date>
    </item>
    <item>
      <title>Re: problem with save to db table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208232#M1982550</link>
      <description>&lt;P&gt;I don't see anything wrong in the display. You don't instantiate the control again and again, you do it once, and you simply refresh the screen each time. No issue. Can't you just say it when I ask?&lt;/P&gt;&lt;P&gt;So it seems that your updates are wrong. But you should see that in debug !? Why don't you see it?&lt;/P&gt;&lt;P&gt;I don't understand your code here, why do you replace GT_ZHEADER at each iteration of GT_ZHEADER, it's non sense, I don't understand what you want to achieve:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;  LOOP AT gt_zheader INTO gs_zheader.
    CALL METHOD ZCL_03_DATA_MODEL=&amp;gt;SELECT_PURCHASE_ORDERS
      EXPORTING
       IV_KEY      = gs_zheader-ebeln
        IV_MAX_ROWS = IV_MAX_ROWS
      IMPORTING
        IT_ZHEADER  = gt_zheader. " &amp;lt;============ WHY ????&lt;BR /&gt;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 09 May 2020 18:01:11 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208232#M1982550</guid>
      <dc:creator>Sandra_Rossi</dc:creator>
      <dc:date>2020-05-09T18:01:11Z</dc:date>
    </item>
    <item>
      <title>Re: problem with save to db table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208233#M1982551</link>
      <description>&lt;P&gt;Some problem with the logic, I'm trying to think how to do it&lt;/P&gt;</description>
      <pubDate>Sun, 10 May 2020 04:58:58 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208233#M1982551</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2020-05-10T04:58:58Z</dc:date>
    </item>
    <item>
      <title>Re: problem with save to db table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208234#M1982552</link>
      <description>&lt;P&gt;Logic: &lt;/P&gt;&lt;P&gt;1. Loop with row_id from LVC_T_ROID&lt;/P&gt;&lt;P&gt;2. Get all row IV_MAX_ROWS of header data LT_ZHEADER_UPD for internal table LT_ZHEADER_UPD&lt;/P&gt;&lt;P&gt;3. read table LT_ZHEADER_UPD with index row_id&lt;/P&gt;&lt;P&gt;4. Get a row of data with header LT_ZHEADER_UPD and line item LT_ZITEMS_UPD based on key ebeln&lt;/P&gt;&lt;P&gt;5.  Delete Header and line item data&lt;/P&gt;&lt;P&gt;Outside loop - refresh table so new data gets updated when modified, another internal table LT_ZHEADER_UPD_N and LT_ZITEMS_UPD_N are used&lt;/P&gt;&lt;P&gt;Kindly advise if any issue with logic&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;FORM SAVE_DATABASE_UPDATE.

  DATA: LT_ZHEADER_UPD TYPE TABLE OF ZEKKO03,
        LT_ZITEMS_UPD  TYPE TABLE OF ZEKPO03,
        LS_ZHEADER_UPD TYPE ZEKKO03,
        LS_ZITEMS_UPD  LIKE LINE OF LT_ZITEMS_UPD.

  DATA: LT_ZHEADER_UPD_N TYPE TABLE OF ZEKKO03,
        LT_ZITEMS_UPD_N  TYPE TABLE OF ZEKPO03,
        LS_ZHEADER_UPD_N LIKE LINE OF LT_ZHEADER_UPD_N,
        LS_ZITEMS_UPD_N  LIKE LINE OF LT_ZITEMS_UPD_N.

  DATA: LT_INDEX_UPD TYPE LVC_T_ROW,
        LT_ROWID_UPD TYPE LVC_T_ROID,
        LS_ROWID_UPD LIKE LINE OF LT_ROWID_UPD.


  CALL METHOD g_grid_left-&amp;gt;check_changed_data
    IMPORTING
      e_valid = check.

*******--- Getting the selected rows index
  CALL METHOD G_GRID_LEFT-&amp;gt;GET_SELECTED_ROWS
    IMPORTING
      ET_INDEX_ROWS = LT_INDEX_UPD
      ET_ROW_NO     = LT_ROWID_UPD.
******--- Through the index capturing the values of selected rows


  LOOP AT LT_ROWID_UPD INTO LS_ROWID_UPD.

    CALL METHOD ZCL_03_DATA_MODEL=&amp;gt;SELECT_PURCHASE_ORDERS
      EXPORTING
*       IV_KEY      =
        IV_MAX_ROWS = IV_MAX_ROWS
      IMPORTING
        IT_ZHEADER  = LT_ZHEADER_UPD  .

    READ TABLE LT_ZHEADER_UPD INDEX LS_ROWID_UPD-ROW_ID INTO LS_ZHEADER_UPD.

    CLEAR LT_ZHEADER_UPD.

    CALL METHOD ZCL_03_DATA_MODEL=&amp;gt;SELECT_PURCHASE_ORDERS
      EXPORTING
        IV_KEY     = LS_ZHEADER_UPD-EBELN
*       IV_MAX_ROWS = 0
      IMPORTING
        IT_ZHEADER = LT_ZHEADER_UPD
*       IT_ZITEMS  =
*       ES_BAPIRET2 =
      .

*
    CALL METHOD ZCL_03_DATA_MODEL=&amp;gt;SELECT_PURCHASE_ORDERS
      EXPORTING
        IV_KEY    = LS_ZHEADER_UPD-EBELN
*       IV_MAX_ROWS = 0
      IMPORTING
*       IT_ZHEADER  =
        IT_ZITEMS = LT_ZITEMS_UPD
*       ES_BAPIRET2 =
      .

    CALL METHOD ZCL_03_DATA_MODEL=&amp;gt;UPDATE_PURCHASE_ORDERS
      EXPORTING
        IT_ZHEADER  = LT_ZHEADER_UPD
        IT_ZITEMS   = LT_ZITEMS_UPD
      IMPORTING
        ES_BAPIRET2 = BAPIRET2.
    .

  ENDLOOP.

  CALL METHOD ZCL_03_DATA_MODEL=&amp;gt;SELECT_PURCHASE_ORDERS
    EXPORTING
*     IV_KEY      =
      IV_MAX_ROWS = IV_MAX_ROWS
    IMPORTING
      IT_ZHEADER  = LT_ZHEADER_UPD_N
*     IT_ZITEMS   =
*     ES_BAPIRET2 =
    .


  CALL METHOD ZCL_03_DATA_MODEL=&amp;gt;SELECT_PURCHASE_ORDERS
    EXPORTING
      IV_KEY    = LS_ZHEADER_UPD-EBELN
*     IV_MAX_ROWS = 0
    IMPORTING
*     IT_ZHEADER  =
      IT_ZITEMS = LT_ZITEMS_UPD_N
*     ES_BAPIRET2 =
    .


  GT_ZHEADER = LT_ZHEADER_UPD_N.
  GT_ZITEMS = LT_ZITEMS_UPD_N.


  G_GRID_LEFT-&amp;gt;REFRESH_TABLE_DISPLAY( ).
  G_GRID_RIGHT-&amp;gt;REFRESH_TABLE_DISPLAY( ).

*  CALL METHOD g_grid_left-&amp;gt;free. &amp;lt;&amp;lt; not applicable
*  CALL METHOD g_grid_right-&amp;gt;free.  &amp;lt;&amp;lt; not applicable
*
*  CALL METHOD cl_gui_cfw=&amp;gt;flush.  &amp;lt;&amp;lt; not applicable

  CLEAR LT_ZITEMS_UPD_N.
  CLEAR LT_ZHEADER_UPD_N.
  CLEAR LT_ZITEMS_UPD.


ENDFORM.&amp;lt;br&amp;gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;I tried to debug, cannot get selected row_id during loop (screenshot), therefore no value in internal table, stuck here&lt;/P&gt;</description>
      <pubDate>Sun, 10 May 2020 17:47:14 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208234#M1982552</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2020-05-10T17:47:14Z</dc:date>
    </item>
    <item>
      <title>Re: problem with save to db table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208235#M1982553</link>
      <description>&lt;P&gt;Do you mean that the call to G_GRID_LEFT-&amp;gt;GET_SELECTED_ROWS returns empty parameters ET_INDEX_ROWS and ET_ROW_NO ?&lt;/P&gt;&lt;P&gt;It's normal that they are empty if the user didn't select explicitly any row. But do you really want to save only the rows marked by the user?&lt;/P&gt;&lt;P&gt;Moreover, I think you didn't understand the concept of selected rows, because GET_SELECTED_ROWS can maximum return one line by default, because you didn't set the layout option SEL_MODE (must be 'A', 'C' or 'D' to allow several rows to be selected).&lt;/P&gt;&lt;P&gt;Anyway, why are you updating database tables inside a loop? Why don't you call UPDATE_PURCHASE_ORDERS once, with the internal table containing the lines to update?&lt;/P&gt;</description>
      <pubDate>Sun, 10 May 2020 19:25:40 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208235#M1982553</guid>
      <dc:creator>Sandra_Rossi</dc:creator>
      <dc:date>2020-05-10T19:25:40Z</dc:date>
    </item>
    <item>
      <title>Re: problem with save to db table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208236#M1982554</link>
      <description>&lt;P&gt;call to G_GRID_LEFT-&amp;gt;GET_SELECTED_ROWS ET_ROW_NO&lt;/P&gt;&lt;P&gt;Actually get_selected_row code above i used for delete subroutine, when switched to non-editable mode (switch_mode), select a row and delete.&lt;/P&gt;&lt;P&gt;I tried to apply the same with update see if modified value gets updated for the selected row&lt;/P&gt;&lt;P&gt;As long as table updated will do even without selected row, problem is without selected rows. In debug mode, the modified record doesnt even get reflected and no updates being performed.&lt;/P&gt;&lt;P&gt;I couldnt think of other ways to code otherwise for updates to reflect in alv&lt;/P&gt;&lt;P&gt;In debug mode (screenshot), no updated value reflected in internal table&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;FORM SAVE_DATABASE_UPDATE.

 DATA: LT_ZHEADER_UPD TYPE TABLE OF ZEKKO03,
 LT_ZITEMS_UPD TYPE TABLE OF ZEKPO03,
 LS_ZHEADER_UPD TYPE ZEKKO03,
 LS_ZITEMS_UPD LIKE LINE OF LT_ZITEMS_UPD.

 DATA: LT_ZHEADER_UPD_N TYPE TABLE OF ZEKKO03,
 LT_ZITEMS_UPD_N TYPE TABLE OF ZEKPO03,
 LS_ZHEADER_UPD_N LIKE LINE OF LT_ZHEADER_UPD_N,
 LS_ZITEMS_UPD_N LIKE LINE OF LT_ZITEMS_UPD_N.

 DATA: LT_INDEX_UPD TYPE LVC_T_ROW,
 LT_ROWID_UPD TYPE LVC_T_ROID,
 LS_ROWID_UPD LIKE LINE OF LT_ROWID_UPD.
 CALL METHOD ZCL_03_DATA_MODEL=&amp;gt;SELECT_PURCHASE_ORDERS
 EXPORTING
* IV_KEY =
 IV_MAX_ROWS = IV_MAX_ROWS
 IMPORTING
 IT_ZHEADER = LT_ZHEADER_UPD_N
* IT_ZITEMS =
* ES_BAPIRET2 =
 .
 CALL METHOD ZCL_03_DATA_MODEL=&amp;gt;SELECT_PURCHASE_ORDERS
 EXPORTING
 IV_KEY = LS_ZHEADER_UPD-EBELN
* IV_MAX_ROWS = 0
 IMPORTING
* IT_ZHEADER =
 IT_ZITEMS = LT_ZITEMS_UPD_N
* ES_BAPIRET2 =
 .

 CALL METHOD ZCL_03_DATA_MODEL=&amp;gt;UPDATE_PURCHASE_ORDERS
 EXPORTING
 IT_ZHEADER = LT_ZHEADER_UPD_N
 IT_ZITEMS = LT_ZITEMS_UPD_N
 IMPORTING
 ES_BAPIRET2 = BAPIRET2.
 GT_ZHEADER = LT_ZHEADER_UPD_N.
 GT_ZITEMS = LT_ZITEMS_UPD_N.
 G_GRID_LEFT-&amp;gt;REFRESH_TABLE_DISPLAY( ).
 G_GRID_RIGHT-&amp;gt;REFRESH_TABLE_DISPLAY( ).


 CLEAR LT_ZITEMS_UPD_N.
 CLEAR LT_ZHEADER_UPD_N.
 CLEAR LT_ZITEMS_UPD.
ENDFORM.&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 11 May 2020 02:24:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208236#M1982554</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2020-05-11T02:24:39Z</dc:date>
    </item>
    <item>
      <title>Re: problem with save to db table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208237#M1982555</link>
      <description>&lt;P&gt;The last comments are no more related to the original question, which is no more useful for future visitors. Anyway, I don't think anyone understands what's going on here.&lt;/P&gt;&lt;P&gt;Your previous comment was about GET_SELECTED_ROWS, and now you're talking about delete and data not reflected, without giving feedback on my last comment. It's difficult to understand if you did anything, changed your mind, and if your last comment is related in any way to my last comment.&lt;/P&gt;&lt;P&gt;Let's answer one of your concerns: you say that the user inputs in the screen are not reflected. That's normal. You have to call the method CHECK_CHANGED_DATA to transfer the input values to the internal table.&lt;/P&gt;</description>
      <pubDate>Mon, 11 May 2020 08:19:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208237#M1982555</guid>
      <dc:creator>Sandra_Rossi</dc:creator>
      <dc:date>2020-05-11T08:19:50Z</dc:date>
    </item>
    <item>
      <title>Re: problem with save to db table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208238#M1982556</link>
      <description>&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;Do you execute a DB COMMIT after change is made to the DB table?&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;Mateusz&lt;/P&gt;</description>
      <pubDate>Mon, 11 May 2020 08:55:08 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-save-to-db-table/m-p/12208238#M1982556</guid>
      <dc:creator>MateuszAdamus</dc:creator>
      <dc:date>2020-05-11T08:55:08Z</dc:date>
    </item>
  </channel>
</rss>

