<?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: Not Updating Customized Table when System having Performance Issue in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076032#M96319</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Check all keys are holding values,and try to check sy-subrc after insert.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards&lt;/P&gt;&lt;P&gt;vijay&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 05 Dec 2005 07:38:14 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2005-12-05T07:38:14Z</dc:date>
    <item>
      <title>Not Updating Customized Table when System having Performance Issue</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076022#M96309</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Gurus,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've built an user exit in MM using EXIT_SAPLMBMB_001&lt;/P&gt;&lt;P&gt;.  This userexit is triggered whenever a material document is created.  This userexit in turns call a function module that write information to a customized table ZMCHA.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;During normal operations, this function has been working fine. Both MCHA and ZMCHB is updated.  However during performance issue times, only MCHA table is updated and not ZMCHB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've tried a commit statement inside the function module but i've got an abap dump. Function Module used for Commit is DB_COMMIT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please let me know if anybody has encounter such issues. Thanks in advance&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Leonard&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Dec 2005 04:59:08 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076022#M96309</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-12-05T04:59:08Z</dc:date>
    </item>
    <item>
      <title>Re: Not Updating Customized Table when System having Performance Issue</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076023#M96310</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;what is ther Dump you are getting.&lt;/P&gt;&lt;P&gt;and After Dump are you able to check the Debugger.&lt;/P&gt;&lt;P&gt;so that you can see why and where it gave dump..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards&lt;/P&gt;&lt;P&gt;vijay&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Dec 2005 05:02:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076023#M96310</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-12-05T05:02:21Z</dc:date>
    </item>
    <item>
      <title>Re: Not Updating Customized Table when System having Performance Issue</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076024#M96311</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Leonard,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The reason I can think of is that whenever there are performance issues, some where the code might not be able to handle the data and is going for a short dump and I guess this is happening even before it reaches the user exit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you please put a break point in the user exit (In case of performance issues) and see of the execution is happening in the first place?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Ravi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note : Please reward the posts that are helpful.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Dec 2005 05:02:31 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076024#M96311</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-12-05T05:02:31Z</dc:date>
    </item>
    <item>
      <title>Re: Not Updating Customized Table when System having Performance Issue</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076025#M96312</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Gurus,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I really appreciate your reply. Actually, I decided to take away the Commit statement because SAP recommends not to put commit statement inside user exit.  Without Commit Statement, there will be no dump. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However still when there is performance issue, table ZMCHB is not updated. I am not sure what is going on. Please advise.  Is there other way of ensure that this table is updated whenever standard sap table MCHB is updated.  U see, i'm not getting any hint from SM13 and ST22. I cannot see any update failure nor ABAP Dump.  The data simply did not update the customized table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please advise.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;&lt;P&gt;Leonard&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Dec 2005 06:22:59 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076025#M96312</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-12-05T06:22:59Z</dc:date>
    </item>
    <item>
      <title>Re: Not Updating Customized Table when System having Performance Issue</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076026#M96313</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;How are you Updating the Tables. and what kind of Performance issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;please let us know...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards&lt;/P&gt;&lt;P&gt;vijay&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Dec 2005 06:29:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076026#M96313</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-12-05T06:29:26Z</dc:date>
    </item>
    <item>
      <title>Re: Not Updating Customized Table when System having Performance Issue</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076027#M96314</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Can you just show the code ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards&lt;/P&gt;&lt;P&gt;vijay&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Dec 2005 06:38:35 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076027#M96314</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-12-05T06:38:35Z</dc:date>
    </item>
    <item>
      <title>Re: Not Updating Customized Table when System having Performance Issue</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076028#M96315</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;FUNCTION EXIT_SAPLMBMB_001.&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;/STRONG&gt;"Lokale Schnittstelle:&lt;/P&gt;&lt;P&gt;*"       TABLES&lt;/P&gt;&lt;P&gt;*"              XMKPF STRUCTURE  MKPF&lt;/P&gt;&lt;P&gt;*"              XMSEG STRUCTURE  MSEG&lt;/P&gt;&lt;P&gt;*"              XVM07M STRUCTURE  VM07M&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  INCLUDE ZXMBCU01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFUNCTION.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  INCLUDE ZXMBCU01                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Code to save to database ZMM_HIDE&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; for goods movement, transfer posting, post goods issue and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; reversal&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*- Owner of process&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; goods movement and transfer, refer to MM, Hason Ho from DC&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; post goods issue and reversal, refer to SD, Chai Kim Feng or&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Chew Tzin Pang from DC&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Purpose of exit&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Hide quantity are stored into the Goods Recipient(WEMPF) field&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; in exit MBCF0002. It will be abstracted for ZMM_HIDE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- check transaction codes&lt;/P&gt;&lt;P&gt;CHECK sy-tcode EQ gc_movement   OR                          "MIGO&lt;/P&gt;&lt;P&gt;      sy-tcode EQ gc_transfer   OR                          "MB1B&lt;/P&gt;&lt;P&gt;      sy-tcode EQ gc_goodsissue OR                          "MB1A&lt;/P&gt;&lt;P&gt;      sy-tcode EQ gc_goodsrecei OR                          "MB31&lt;/P&gt;&lt;P&gt;      sy-tcode EQ gc_return     OR                          "MB01&lt;/P&gt;&lt;P&gt;      sy-tcode EQ 'VL01N'       OR&lt;/P&gt;&lt;P&gt;      sy-tcode EQ 'MB1C'        OR&lt;/P&gt;&lt;P&gt;      sy-tcode EQ 'MB11'        OR&lt;/P&gt;&lt;P&gt;      sy-tcode EQ 'MI07'        OR&lt;/P&gt;&lt;P&gt;      sy-tcode EQ gc_pgi        OR                          "VL02N&lt;/P&gt;&lt;P&gt;      sy-tcode EQ gc_reversal   OR                          "VL09&lt;/P&gt;&lt;P&gt;      sy-tcode EQ gc_rev_matl.                              "MBST&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR lt_value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- check that the material document is new&lt;/P&gt;&lt;P&gt;SELECT SINGLE mblnr INTO gw_ymseg-mblnr&lt;/P&gt;&lt;P&gt;  FROM mseg&lt;/P&gt;&lt;P&gt;  WHERE mblnr EQ xmseg-mblnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHECK sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- stock type from database index&lt;/P&gt;&lt;P&gt;CLEAR gt_lbbsa.&lt;/P&gt;&lt;P&gt;IMPORT lbbsa = gt_lbbsa FROM DATABASE indx(sm) ID sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DELETE FROM DATABASE indx(sm) ID sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- get hide quantities from the WEMPF field&lt;/P&gt;&lt;P&gt;LOOP AT xmseg INTO gw_ymseg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- check special stock indicator&lt;/P&gt;&lt;P&gt;  CHECK gw_ymseg-sobkz EQ 'E' OR&lt;/P&gt;&lt;P&gt;        gw_ymseg-sobkz EQ space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR lw_value.&lt;/P&gt;&lt;P&gt;  MOVE-CORRESPONDING gw_ymseg TO lw_value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- stock type&lt;/P&gt;&lt;P&gt;  READ TABLE gt_lbbsa INTO gw_lbbsa&lt;/P&gt;&lt;P&gt;    WITH KEY zeile = gw_ymseg-zeile.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lw_value-lbbsa = gw_lbbsa-lbbsa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- sales order stock, take from different field for sales order number&lt;/P&gt;&lt;P&gt;  MOVE: gw_ymseg-mat_kdauf TO lw_value-kdauf,&lt;/P&gt;&lt;P&gt;        gw_ymseg-mat_kdpos TO lw_value-kdpos.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- convert only if not blank&lt;/P&gt;&lt;P&gt;  IF NOT gw_ymseg IS INITIAL.&lt;/P&gt;&lt;P&gt;    MOVE gw_ymseg-wempf TO lw_value-hideq.&lt;/P&gt;&lt;P&gt;*- save&lt;/P&gt;&lt;P&gt;    INSERT lw_value INTO TABLE lt_value.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: lw_xmkpf1 LIKE mkpf.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE xmkpf INTO lw_xmkpf1 INDEX 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if gw_ymseg-werks = '2011' and&lt;/P&gt;&lt;P&gt;   gw_ymseg-lifnr NE space and&lt;/P&gt;&lt;P&gt;   lw_xmkpf1-blart = 'WE' and&lt;/P&gt;&lt;P&gt; ( gw_ymseg-bwart = '101' or gw_ymseg-bwart = '102' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-tcode EQ 'MIGO' or sy-tcode EQ 'MB01' or sy-tcode EQ 'MBST'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    Tables: ZMM_MSEG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DATA: l_charg1 like mseg-charg,&lt;/P&gt;&lt;P&gt;          l_charg2 like mseg-charg,&lt;/P&gt;&lt;P&gt;          l_matkl like mara-matkl,&lt;/P&gt;&lt;P&gt;          l_LWRBTR like ZFI_COST_VALID-LWRBTR,&lt;/P&gt;&lt;P&gt;          l_UWRBTR like ZFI_COST_VALID-UWRBTR,&lt;/P&gt;&lt;P&gt;          l_ZUDCSQF like ZMM_MSEG-ZUDCSQF,&lt;/P&gt;&lt;P&gt;          l_ZLDCSQF like ZMM_MSEG-ZULCSQF,&lt;/P&gt;&lt;P&gt;          lv_update(1).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    select single matkl into l_matkl&lt;/P&gt;&lt;P&gt;           from mara&lt;/P&gt;&lt;P&gt;           where matnr = gw_ymseg-matnr&lt;/P&gt;&lt;P&gt;             and ( matkl = 'WB' or matkl = 'WB SPLIT' ).&lt;/P&gt;&lt;P&gt;    if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      split gw_ymseg-charg at '/' into l_charg1 l_charg2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     if gw_ymseg-bwart = '101'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*--Populate data to table ZMM_MSEG.&lt;/P&gt;&lt;P&gt;        ZMM_MSEG-WERKS = gw_ymseg-werks.&lt;/P&gt;&lt;P&gt;        ZMM_MSEG-MBLNR = gw_ymseg-mblnr.&lt;/P&gt;&lt;P&gt;        ZMM_MSEG-ZEILE = gw_ymseg-zeile.&lt;/P&gt;&lt;P&gt;        ZMM_MSEG-BUDAT = lw_xmkpf1-budat.&lt;/P&gt;&lt;P&gt;        ZMM_MSEG-ZCHRG = l_charg2.&lt;/P&gt;&lt;P&gt;        ZMM_MSEG-EBELN = gw_ymseg-ebeln.&lt;/P&gt;&lt;P&gt;        ZMM_MSEG-EBELP = gw_ymseg-ebelp.&lt;/P&gt;&lt;P&gt;        ZMM_MSEG-MATNR = gw_ymseg-matnr.&lt;/P&gt;&lt;P&gt;        ZMM_MSEG-CHARG = gw_ymseg-charg.&lt;/P&gt;&lt;P&gt;        ZMM_MSEG-BWART = gw_ymseg-bwart.&lt;/P&gt;&lt;P&gt;        ZMM_MSEG-SHKZG = gw_ymseg-shkzg.&lt;/P&gt;&lt;P&gt;        ZMM_MSEG-WAERS = space.&lt;/P&gt;&lt;P&gt;        ZMM_MSEG-BUALT = space.&lt;/P&gt;&lt;P&gt;        ZMM_MSEG-DMBTR = space.&lt;/P&gt;&lt;P&gt;        ZMM_MSEG-MENGE = gw_ymseg-menge.&lt;/P&gt;&lt;P&gt;        ZMM_MSEG-MEINS = gw_ymseg-meins.&lt;/P&gt;&lt;P&gt;        ZMM_MSEG-WEMPF = gw_ymseg-wempf.&lt;/P&gt;&lt;P&gt;        ZMM_MSEG-WEMPF = gw_ymseg-wempf.&lt;/P&gt;&lt;P&gt;        ZMM_MSEG-ZUDCSQF = space.&lt;/P&gt;&lt;P&gt;        ZMM_MSEG-ZULCSQF = space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        INSERT INTO ZMM_MSEG VALUES ZMM_MSEG.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;insert start - tehbm 29/11/03&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: lw_xmkpf LIKE mkpf.     "tehbm 29/11/03&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE xmkpf INTO lw_xmkpf INDEX 1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end insert&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;P&gt;*- save hide quantity into&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'Z_MM_SAVE_HIDE_QTY'&lt;/P&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         i_budat            = xmkpf-budat    "tehbm 29/11&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          i_budat            = lw_xmkpf-budat  "tehbm 29/11&lt;/P&gt;&lt;P&gt;     TABLES&lt;/P&gt;&lt;P&gt;          t_value            = lt_value&lt;/P&gt;&lt;P&gt;     EXCEPTIONS&lt;/P&gt;&lt;P&gt;          save_failed        = 1&lt;/P&gt;&lt;P&gt;          no_data_found      = 2&lt;/P&gt;&lt;P&gt;          data_already_exist = 3&lt;/P&gt;&lt;P&gt;          no_movement        = 4&lt;/P&gt;&lt;P&gt;          OTHERS             = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Dec 2005 07:07:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076028#M96315</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-12-05T07:07:53Z</dc:date>
    </item>
    <item>
      <title>Re: Not Updating Customized Table when System having Performance Issue</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076029#M96316</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;FUNCTION z_mm_save_hide_qty.&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;/STRONG&gt;"Local interface:&lt;/P&gt;&lt;P&gt;*"  IMPORTING&lt;/P&gt;&lt;P&gt;*"     REFERENCE(I_TCODE) LIKE  SY-TCODE DEFAULT SY-TCODE&lt;/P&gt;&lt;P&gt;*"     REFERENCE(I_BUDAT) LIKE  MKPF-BUDAT&lt;/P&gt;&lt;P&gt;*"  TABLES&lt;/P&gt;&lt;P&gt;*"      T_VALUE STRUCTURE  ZSMM_HIDE&lt;/P&gt;&lt;P&gt;*"  EXCEPTIONS&lt;/P&gt;&lt;P&gt;*"      SAVE_FAILED&lt;/P&gt;&lt;P&gt;*"      NO_DATA_FOUND&lt;/P&gt;&lt;P&gt;*"      DATA_ALREADY_EXIST&lt;/P&gt;&lt;P&gt;*"      NO_MOVEMENT&lt;/P&gt;&lt;P&gt;*"      STOCK_TYPE_IS_BLANK&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*- purpose :&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; to save information of hide quantities into the database table&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; based on the debit/credit indicator&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; S = debit, H = credit&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*- warning :&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; function module does not check whether the GI quantity is more than&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; the stored quantity&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- transfer input values into global data&lt;/P&gt;&lt;P&gt;  CLEAR gt_value.&lt;/P&gt;&lt;P&gt;  gt_value[] = t_value[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- transfer transaction code&lt;/P&gt;&lt;P&gt;  gv_tcode = i_tcode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- filter valid materials only&lt;/P&gt;&lt;P&gt;  PERFORM filter_materials TABLES gt_value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- check lines&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE gt_value LINES gv_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF gv_lines EQ 0.&lt;/P&gt;&lt;P&gt;    RAISE no_data_found.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- get data from table ZMM_MCHB and ZMM_MCHBH&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                     ZMM_MSKA and ZMM_MSKAH&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM get_custom_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- compile amount for same batch&lt;/P&gt;&lt;P&gt;  PERFORM process_mseg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- check if previous posting is in ZMM_MSKA or ZMM_MCHB&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; then move to the history table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM past_period_posting USING i_budat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- create new data if not found&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; add or subtract depending on credit/debit indicator&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; and update database&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM process_movement USING i_budat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- initialize&lt;/P&gt;&lt;P&gt;  CLEAR: gt_new,&lt;/P&gt;&lt;P&gt;         gt_change.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFUNCTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***INCLUDE LZMM0001F01 .&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  transfer_data_out&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Change History&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;David Wirawan    10/05/2005    DR019MM     DEVK909232&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM transfer_data_out.&lt;/P&gt;&lt;P&gt;*- transfer data to screen&lt;/P&gt;&lt;P&gt;  zsmm_hide = gw_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- transfer item number based on line item number&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WRITE sy-stepl TO gv_posnr RIGHT-JUSTIFIED.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- get hide unit of measure to hide quantity field&lt;/P&gt;&lt;P&gt;  IF zsmm_hide-hideu EQ space.&lt;/P&gt;&lt;P&gt;    CLEAR gw_twew.&lt;/P&gt;&lt;P&gt;    READ TABLE gt_twew INTO gw_twew&lt;/P&gt;&lt;P&gt;      WITH TABLE KEY matnr = zsmm_hide-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zsmm_hide-hideu = gw_twew-ewbez.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " transfer_data_out&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  filter_materials&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM filter_materials TABLES pt_data STRUCTURE zsmm_hide.&lt;/P&gt;&lt;P&gt;*- filter valid materials with hide&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- get purchasing document that is 3rd party assignments&lt;/P&gt;&lt;P&gt;  CLEAR gt_ekpo.&lt;/P&gt;&lt;P&gt;  SELECT ebeln ebelp knttp INTO TABLE gt_ekpo&lt;/P&gt;&lt;P&gt;    FROM ekpo&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN pt_data&lt;/P&gt;&lt;P&gt;    WHERE ebeln EQ pt_data-ebeln&lt;/P&gt;&lt;P&gt;      AND ebelp EQ pt_data-ebelp&lt;/P&gt;&lt;P&gt;      AND ( knttp EQ 'X' OR&lt;/P&gt;&lt;P&gt;            knttp EQ 'Z' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- check that it is not third party document&lt;/P&gt;&lt;P&gt;  LOOP AT pt_data INTO gw_value.&lt;/P&gt;&lt;P&gt;    READ TABLE gt_ekpo INTO gw_ekpo&lt;/P&gt;&lt;P&gt;      WITH TABLE KEY ebeln = gw_value-ebeln&lt;/P&gt;&lt;P&gt;                     ebelp = gw_value-ebelp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      DELETE pt_data.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- get external material group for checking&lt;/P&gt;&lt;P&gt;  CLEAR gt_twew.&lt;/P&gt;&lt;P&gt;  SELECT a&lt;SUB&gt;matnr a&lt;/SUB&gt;matkl b&lt;SUB&gt;extwg b&lt;/SUB&gt;ewbez INTO TABLE gt_twew&lt;/P&gt;&lt;P&gt;    FROM mara AS a JOIN twewt AS b&lt;/P&gt;&lt;P&gt;      ON a&lt;SUB&gt;matkl EQ b&lt;/SUB&gt;extwg&lt;/P&gt;&lt;P&gt;     FOR ALL ENTRIES IN pt_data&lt;/P&gt;&lt;P&gt;    WHERE a~matnr EQ pt_data-matnr&lt;/P&gt;&lt;P&gt;      AND b~spras EQ 'E'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- check that material is dual unit&lt;/P&gt;&lt;P&gt;  LOOP AT pt_data INTO gw_value.&lt;/P&gt;&lt;P&gt;    READ TABLE gt_twew INTO gw_twew&lt;/P&gt;&lt;P&gt;      WITH TABLE KEY matnr = gw_value-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      DELETE pt_data.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- conversion alpha for sales order number&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              input  = gw_value-kdauf&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              output = gw_value-kdauf.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MODIFY pt_data FROM gw_value TRANSPORTING kdauf.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " filter_materials&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  process_movement&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM process_movement USING pv_datum LIKE sy-datum.&lt;/P&gt;&lt;P&gt;*- save information with positive values, receive values&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- check to MCHB&lt;/P&gt;&lt;P&gt;  PERFORM check_save_mchb USING gt_quan&lt;/P&gt;&lt;P&gt;                                pv_datum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- check to MKSA&lt;/P&gt;&lt;P&gt;  PERFORM check_save_mska USING gt_quan&lt;/P&gt;&lt;P&gt;                                pv_datum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " process_movement&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  add_subtract_cuhide&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM add_subtract_cuhide.&lt;/P&gt;&lt;P&gt;*- add or subtract value based on credit/debit indicator&lt;/P&gt;&lt;P&gt;  IF gw_value-shkzg EQ gc_debit.&lt;/P&gt;&lt;P&gt;    ADD gw_value-hideq TO gw_hide-cuhide.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    SUBTRACT gw_value-hideq FROM gw_hide-cuhide.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " add_subtract_cuhide&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  process_mseg&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM process_mseg.&lt;/P&gt;&lt;P&gt;  FIELD-SYMBOLS: &amp;lt;hide&amp;gt; LIKE gw_zmm_mchb-clabs,&lt;/P&gt;&lt;P&gt;                 &amp;lt;quan&amp;gt; LIKE gw_zmm_mchb-clabs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lv_save  TYPE sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- sum for same batch&lt;/P&gt;&lt;P&gt;  SORT gt_value BY matnr werks lgort charg sobkz kdauf kdpos.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR gt_quan[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT gt_value INTO gw_value.&lt;/P&gt;&lt;P&gt;*- get the stock type for the automated document entries&lt;/P&gt;&lt;P&gt;    CLEAR gw_zmm_stock.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- read value according to the stock movement + or -&lt;/P&gt;&lt;P&gt;    IF gw_value-shkzg EQ gc_debit.&lt;/P&gt;&lt;P&gt;      READ TABLE gt_zmm_stock INTO gw_zmm_stock&lt;/P&gt;&lt;P&gt;        WITH KEY bwart = gw_value-bwart&lt;/P&gt;&lt;P&gt;                 tsobk = gw_value-sobkz.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      READ TABLE gt_zmm_stock INTO gw_zmm_stock&lt;/P&gt;&lt;P&gt;        WITH KEY bwart = gw_value-bwart&lt;/P&gt;&lt;P&gt;                 fsobk = gw_value-sobkz.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;*- stock type to diff stock type&lt;/P&gt;&lt;P&gt;      IF gw_value-shkzg EQ gc_debit.&lt;/P&gt;&lt;P&gt;        gw_value-lbbsa = gw_zmm_stock-tlbbs.&lt;/P&gt;&lt;P&gt;        gw_value-sobkz = gw_zmm_stock-tsobk.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        gw_value-lbbsa = gw_zmm_stock-flbbs.&lt;/P&gt;&lt;P&gt;        gw_value-sobkz = gw_zmm_stock-fsobk.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- get stock movement indicator&lt;/P&gt;&lt;P&gt;    PERFORM get_movement_ind USING gw_value-lbbsa&lt;/P&gt;&lt;P&gt;                                   gw_value-sobkz&lt;/P&gt;&lt;P&gt;                          CHANGING gw_t156c&lt;/P&gt;&lt;P&gt;                                   sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- get the stock type&lt;/P&gt;&lt;P&gt;    CASE 'X'.&lt;/P&gt;&lt;P&gt;      WHEN gw_t156c-xlabst.&lt;/P&gt;&lt;P&gt;        ASSIGN: gw_quan-clabh TO &amp;lt;hide&amp;gt;,&lt;/P&gt;&lt;P&gt;                gw_quan-clabs TO &amp;lt;quan&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WHEN gw_t156c-xinsme.&lt;/P&gt;&lt;P&gt;        ASSIGN: gw_quan-cinsh TO &amp;lt;hide&amp;gt;,&lt;/P&gt;&lt;P&gt;                gw_quan-cinsm TO &amp;lt;quan&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WHEN gw_t156c-xeinme.&lt;/P&gt;&lt;P&gt;        ASSIGN: gw_quan-ceinh TO &amp;lt;hide&amp;gt;,&lt;/P&gt;&lt;P&gt;                gw_quan-ceinm TO &amp;lt;quan&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WHEN gw_t156c-xspeme.&lt;/P&gt;&lt;P&gt;        ASSIGN: gw_quan-cspeh TO &amp;lt;hide&amp;gt;,&lt;/P&gt;&lt;P&gt;                gw_quan-cspem TO &amp;lt;quan&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WHEN gw_t156c-xretme.&lt;/P&gt;&lt;P&gt;        ASSIGN: gw_quan-creth TO &amp;lt;hide&amp;gt;,&lt;/P&gt;&lt;P&gt;                gw_quan-cretm TO &amp;lt;quan&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WHEN gw_t156c-xumlme.&lt;/P&gt;&lt;P&gt;        ASSIGN: gw_quan-cumlh TO &amp;lt;hide&amp;gt;,&lt;/P&gt;&lt;P&gt;                gw_quan-cumlm TO &amp;lt;quan&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WHEN gw_t156c-xmeikl.&lt;/P&gt;&lt;P&gt;        ASSIGN: gw_quan-kalah TO &amp;lt;hide&amp;gt;,&lt;/P&gt;&lt;P&gt;                gw_quan-kalab TO &amp;lt;quan&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WHEN gw_t156c-xmeikq.&lt;/P&gt;&lt;P&gt;        ASSIGN: gw_quan-kainh TO &amp;lt;hide&amp;gt;,&lt;/P&gt;&lt;P&gt;                gw_quan-kains TO &amp;lt;quan&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WHEN gw_t156c-xmeiks.&lt;/P&gt;&lt;P&gt;        ASSIGN: gw_quan-kasph TO &amp;lt;hide&amp;gt;,&lt;/P&gt;&lt;P&gt;                gw_quan-kaspe TO &amp;lt;quan&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WHEN gw_t156c-xmeike.&lt;/P&gt;&lt;P&gt;        ASSIGN: gw_quan-kaeih TO &amp;lt;hide&amp;gt;,&lt;/P&gt;&lt;P&gt;                gw_quan-kaein TO &amp;lt;quan&amp;gt;.&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- different key based on special stock indicator&lt;/P&gt;&lt;P&gt;*- normal stock&lt;/P&gt;&lt;P&gt;    IF gw_value-sobkz EQ space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      AT END OF sobkz.&lt;/P&gt;&lt;P&gt;        lv_save = 1.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- sales order stock&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      AT END OF kdpos.&lt;/P&gt;&lt;P&gt;        lv_save = 1.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-  credit/debit movements&lt;/P&gt;&lt;P&gt;    IF gw_value-shkzg EQ gc_debit.&lt;/P&gt;&lt;P&gt;      ADD: gw_value-hideq TO &amp;lt;hide&amp;gt;,&lt;/P&gt;&lt;P&gt;           gw_value-menge TO &amp;lt;quan&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      SUBTRACT: gw_value-hideq FROM &amp;lt;hide&amp;gt;,&lt;/P&gt;&lt;P&gt;                gw_value-menge FROM &amp;lt;quan&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-  save into temp table&lt;/P&gt;&lt;P&gt;    IF lv_save EQ 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING gw_value TO gw_quan.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- sales order stock&lt;/P&gt;&lt;P&gt;      IF gw_value-sobkz EQ 'E'.&lt;/P&gt;&lt;P&gt;        MOVE: gw_value-kdauf TO gw_quan-vbeln,&lt;/P&gt;&lt;P&gt;              gw_value-kdpos TO gw_quan-posnr.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND gw_quan TO gt_quan.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR: gw_quan,&lt;/P&gt;&lt;P&gt;             lv_save.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- delete where no movements&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DELETE gt_quan WHERE clabs EQ 0&lt;/P&gt;&lt;P&gt;                     AND cinsm EQ 0&lt;/P&gt;&lt;P&gt;                     AND ceinm EQ 0&lt;/P&gt;&lt;P&gt;                     AND cspem EQ 0&lt;/P&gt;&lt;P&gt;                     AND cretm EQ 0&lt;/P&gt;&lt;P&gt;                     AND cumlm EQ 0&lt;/P&gt;&lt;P&gt;                     AND kalab EQ 0&lt;/P&gt;&lt;P&gt;                     AND kains EQ 0&lt;/P&gt;&lt;P&gt;                     AND kaspe EQ 0&lt;/P&gt;&lt;P&gt;                     AND kaein EQ 0&lt;/P&gt;&lt;P&gt;                     and clabh EQ 0&lt;/P&gt;&lt;P&gt;                     AND cinsh EQ 0&lt;/P&gt;&lt;P&gt;                     AND ceinh EQ 0&lt;/P&gt;&lt;P&gt;                     AND cspeh EQ 0&lt;/P&gt;&lt;P&gt;                     AND creth EQ 0&lt;/P&gt;&lt;P&gt;                     AND cumlh EQ 0&lt;/P&gt;&lt;P&gt;                     AND kalah EQ 0&lt;/P&gt;&lt;P&gt;                     AND kainh EQ 0&lt;/P&gt;&lt;P&gt;                     AND kasph EQ 0&lt;/P&gt;&lt;P&gt;                     AND kaeih EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " process_mseg&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  past_period_posting&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM past_period_posting USING pv_datum LIKE sy-datum.&lt;/P&gt;&lt;P&gt;*- check if past period posting, then update the history table&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; accordingly&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- check lines&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE gt_quan LINES gv_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF gv_lines EQ 0.&lt;/P&gt;&lt;P&gt;    RAISE no_movement.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- for MCHBH&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform update_mchbh using gt_quan.          "tehbm 29/11&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM update_mchbh USING gt_quan pv_datum.  "tehbm 29/11&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- for MSKAH&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform update_mskah using gt_quan.          "tehbm 29/11&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM update_mskah USING gt_quan pv_datum.  "tehbm 29/11&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " past_period_posting&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_custom_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_custom_data.&lt;/P&gt;&lt;P&gt;*- store the custom data from ZMM_MCHB and ZMM_MCHBH&lt;/P&gt;&lt;P&gt;  CLEAR gt_zmm_mchb.&lt;/P&gt;&lt;P&gt;  SELECT * INTO TABLE gt_zmm_mchb&lt;/P&gt;&lt;P&gt;    FROM zmm_mchb&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN gt_value&lt;/P&gt;&lt;P&gt;    WHERE matnr EQ gt_value-matnr&lt;/P&gt;&lt;P&gt;      AND werks EQ gt_value-werks&lt;/P&gt;&lt;P&gt;      AND lgort EQ gt_value-lgort&lt;/P&gt;&lt;P&gt;      AND charg EQ gt_value-charg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR gt_zmm_mchbh.&lt;/P&gt;&lt;P&gt;  SELECT * INTO TABLE gt_zmm_mchbh&lt;/P&gt;&lt;P&gt;    FROM zmm_mchbh&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN gt_value&lt;/P&gt;&lt;P&gt;    WHERE matnr EQ gt_value-matnr&lt;/P&gt;&lt;P&gt;      AND werks EQ gt_value-werks&lt;/P&gt;&lt;P&gt;      AND lgort EQ gt_value-lgort&lt;/P&gt;&lt;P&gt;      AND charg EQ gt_value-charg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR gt_zmm_mska.&lt;/P&gt;&lt;P&gt;  SELECT * INTO TABLE gt_zmm_mska&lt;/P&gt;&lt;P&gt;    FROM zmm_mska&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN gt_value&lt;/P&gt;&lt;P&gt;    WHERE matnr EQ gt_value-matnr&lt;/P&gt;&lt;P&gt;      AND werks EQ gt_value-werks&lt;/P&gt;&lt;P&gt;      AND lgort EQ gt_value-lgort&lt;/P&gt;&lt;P&gt;      AND charg EQ gt_value-charg&lt;/P&gt;&lt;P&gt;      AND sobkz EQ gt_value-sobkz.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     AND vbeln EQ gt_value-kdauf&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     AND posnr EQ gt_value-kdpos.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR gt_zmm_mskah.&lt;/P&gt;&lt;P&gt;  SELECT * INTO TABLE gt_zmm_mskah&lt;/P&gt;&lt;P&gt;    FROM zmm_mskah&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN gt_value&lt;/P&gt;&lt;P&gt;    WHERE matnr EQ gt_value-matnr&lt;/P&gt;&lt;P&gt;      AND werks EQ gt_value-werks&lt;/P&gt;&lt;P&gt;      AND lgort EQ gt_value-lgort&lt;/P&gt;&lt;P&gt;      AND charg EQ gt_value-charg&lt;/P&gt;&lt;P&gt;      AND sobkz EQ gt_value-sobkz&lt;/P&gt;&lt;P&gt;      AND vbeln EQ gt_value-kdauf&lt;/P&gt;&lt;P&gt;      AND posnr EQ gt_value-kdpos.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR gt_zmm_stock.&lt;/P&gt;&lt;P&gt;  SELECT * INTO TABLE gt_zmm_stock&lt;/P&gt;&lt;P&gt;    FROM zmm_stockmvt.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_custom_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  check_save_mchb&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM check_save_mchb USING pt_quan  LIKE gt_quan&lt;/P&gt;&lt;P&gt;                           pv_datum LIKE sy-datum.&lt;/P&gt;&lt;P&gt;  FIELD-SYMBOLS: &amp;lt;hide&amp;gt; LIKE gw_zmm_mchb-clabs,&lt;/P&gt;&lt;P&gt;                 &amp;lt;quan&amp;gt; LIKE gw_zmm_mchb-clabs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lv_cur_lfmon LIKE marv-lfmon,   "tehbm&lt;/P&gt;&lt;P&gt;        lv_cur_lfgja LIKE marv-lfgja,   "tehbm&lt;/P&gt;&lt;P&gt;        lv_bukrs     LIKE marv-bukrs.   "tehbm&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lv_bwkey like t001w-bwkey.  "David Wirawan&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- initialize&lt;/P&gt;&lt;P&gt;  CLEAR: gt_new_mchb,&lt;/P&gt;&lt;P&gt;         gt_change_mchb,&lt;/P&gt;&lt;P&gt;         gt_change_mchbh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT pt_quan INTO gw_quan WHERE sobkz EQ space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- insert start by tehbm 29/11/03&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  get the current MM posting period&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF lv_cur_lfmon IS INITIAL OR&lt;/P&gt;&lt;P&gt;       lv_cur_lfgja IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Start David Wirawan DR019MM&lt;/P&gt;&lt;P&gt;*--Start Remark this code&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR lv_bukrs.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     SELECT SINGLE bwkey INTO lv_bukrs&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              FROM t001w&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             WHERE werks EQ gw_quan-werks.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*--End Remark this code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR lv_bukrs.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE bwkey INTO lv_bwkey&lt;/P&gt;&lt;P&gt;               FROM t001w&lt;/P&gt;&lt;P&gt;              WHERE werks EQ gw_quan-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT SINGLE bukrs INTO lv_bukrs&lt;/P&gt;&lt;P&gt;               FROM t001k&lt;/P&gt;&lt;P&gt;              WHERE bwkey EQ lv_bwkey.&lt;/P&gt;&lt;P&gt;*-- End David Wirawan&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT SINGLE lfgja lfmon&lt;/P&gt;&lt;P&gt;               INTO (lv_cur_lfgja, lv_cur_lfmon)&lt;/P&gt;&lt;P&gt;               FROM marv&lt;/P&gt;&lt;P&gt;              WHERE bukrs EQ lv_bukrs.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;*-- insert end by tehbm 29/11/03&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- get value from database&lt;/P&gt;&lt;P&gt;    CLEAR gw_zmm_mchb.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE gt_zmm_mchb INTO gw_zmm_mchb&lt;/P&gt;&lt;P&gt;      WITH KEY matnr = gw_quan-matnr&lt;/P&gt;&lt;P&gt;               werks = gw_quan-werks&lt;/P&gt;&lt;P&gt;               lgort = gw_quan-lgort&lt;/P&gt;&lt;P&gt;               charg = gw_quan-charg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;*- if found, add difference (add or minus is done at consolidation)&lt;/P&gt;&lt;P&gt;      ADD: gw_quan-clabs TO gw_zmm_mchb-clabs,&lt;/P&gt;&lt;P&gt;           gw_quan-cumlm TO gw_zmm_mchb-cumlm,&lt;/P&gt;&lt;P&gt;           gw_quan-cinsm TO gw_zmm_mchb-cinsm,&lt;/P&gt;&lt;P&gt;           gw_quan-ceinm TO gw_zmm_mchb-ceinm,&lt;/P&gt;&lt;P&gt;           gw_quan-cspem TO gw_zmm_mchb-cspem,&lt;/P&gt;&lt;P&gt;           gw_quan-cretm TO gw_zmm_mchb-cretm,&lt;/P&gt;&lt;P&gt;           gw_quan-clabh TO gw_zmm_mchb-clabh,&lt;/P&gt;&lt;P&gt;           gw_quan-cumlh TO gw_zmm_mchb-cumlh,&lt;/P&gt;&lt;P&gt;           gw_quan-cinsh TO gw_zmm_mchb-cinsh,&lt;/P&gt;&lt;P&gt;           gw_quan-ceinh TO gw_zmm_mchb-ceinh,&lt;/P&gt;&lt;P&gt;           gw_quan-cspeh TO gw_zmm_mchb-cspeh,&lt;/P&gt;&lt;P&gt;           gw_quan-creth TO gw_zmm_mchb-creth.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- changed date &amp;amp; periods&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     move: sy-datum(04)    to gw_zmm_mchb-lfgja,     "tehbm&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           sy-datum+04(02) to gw_zmm_mchb-lfmon,     "tehbm&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      MOVE: lv_cur_lfgja    TO gw_zmm_mchb-lfgja,      "tehbm&lt;/P&gt;&lt;P&gt;            lv_cur_lfmon    TO gw_zmm_mchb-lfmon,      "tehbm&lt;/P&gt;&lt;P&gt;            sy-datum        TO gw_zmm_mchb-laeda,&lt;/P&gt;&lt;P&gt;            sy-uname        TO gw_zmm_mchb-aenam.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF gv_bwart NE 'Z13'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       MOVE: lv_cur_lfgja    TO gw_zmm_mchb-lfgja,      "tehbm&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             lv_cur_lfmon    TO gw_zmm_mchb-lfmon.      "tehbm&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE: sy-datum        TO gw_zmm_mchb-laeda,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           sy-uname        TO gw_zmm_mchb-aenam.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- change&lt;/P&gt;&lt;P&gt;      INSERT gw_zmm_mchb INTO TABLE gt_change_mchb.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;*- not found, create new entry&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- get unit of measure&lt;/P&gt;&lt;P&gt;      CLEAR gw_twew.&lt;/P&gt;&lt;P&gt;      READ TABLE gt_twew INTO gw_twew&lt;/P&gt;&lt;P&gt;        WITH TABLE KEY matnr = gw_quan-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- if not found, then create new entry with entered hide quantity&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING gw_quan TO gw_zmm_mchb.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- move values&lt;/P&gt;&lt;P&gt;      MOVE: gw_twew-ewbez   TO gw_zmm_mchb-hideu,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           sy-datum(04)    to gw_zmm_mchb-lfgja,    "tehbm&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           sy-datum+04(02) to gw_zmm_mchb-lfmon,    "tehbm&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            lv_cur_lfgja    TO gw_zmm_mchb-lfgja,     "tehbm&lt;/P&gt;&lt;P&gt;            lv_cur_lfmon    TO gw_zmm_mchb-lfmon,     "tehbm&lt;/P&gt;&lt;P&gt;            sy-datum        TO gw_zmm_mchb-ersda,&lt;/P&gt;&lt;P&gt;            sy-uname        TO gw_zmm_mchb-ernam,&lt;/P&gt;&lt;P&gt;            sy-datum        TO gw_zmm_mchb-laeda,&lt;/P&gt;&lt;P&gt;            sy-uname        TO gw_zmm_mchb-aenam.&lt;/P&gt;&lt;P&gt;*- new entry&lt;/P&gt;&lt;P&gt;      INSERT gw_zmm_mchb INTO TABLE gt_new_mchb.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- back posting ?&lt;/P&gt;&lt;P&gt;    PERFORM check_back_posting USING pv_datum&lt;/P&gt;&lt;P&gt;                                     gw_quan-werks&lt;/P&gt;&lt;P&gt;                            CHANGING sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**- start addition by tehbm 29/11/03&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt; check if the record was just updated in routine&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*'past_period_posting'&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt; if true, then should no update again&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   READ TABLE gt_new_mchbh INTO gw_zmm_mchbh&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     WITH KEY matnr = gw_quan-matnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              werks = gw_quan-werks&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              lgort = gw_quan-lgort&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              charg = gw_quan-charg&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              lfgja = pv_datum+00(04)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              lfmon = pv_datum+04(02).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CHECK sy-subrc NE 0.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**- end addition by tehbm 29/11/03&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;**- get value from database&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR gw_zmm_mchbh.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   READ TABLE gt_zmm_mchbh INTO gw_zmm_mchbh&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     WITH KEY matnr = gw_quan-matnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              werks = gw_quan-werks&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              lgort = gw_quan-lgort&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              charg = gw_quan-charg&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              lfgja = pv_datum+00(04)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              lfmon = pv_datum+04(02).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;**- add changes&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ADD: gw_quan-clabs TO gw_zmm_mchbh-clabs,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        gw_quan-cumlm TO gw_zmm_mchbh-cumlm,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        gw_quan-cinsm TO gw_zmm_mchbh-cinsm,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        gw_quan-ceinm TO gw_zmm_mchbh-ceinm,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        gw_quan-cspem TO gw_zmm_mchbh-cspem,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        gw_quan-cretm TO gw_zmm_mchbh-cretm,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        gw_quan-clabh TO gw_zmm_mchbh-clabh,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        gw_quan-cumlh TO gw_zmm_mchbh-cumlh,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        gw_quan-cinsh TO gw_zmm_mchbh-cinsh,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        gw_quan-ceinh TO gw_zmm_mchbh-ceinh,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        gw_quan-cspeh TO gw_zmm_mchbh-cspeh,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        gw_quan-creth TO gw_zmm_mchbh-creth.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;**- not found, transfer (default, should not be found)&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   INSERT gw_zmm_mchbh INTO TABLE gt_change_mchbh.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;*-  create into customized table MCHB&lt;/P&gt;&lt;P&gt;    DESCRIBE TABLE gt_new_mchb LINES gv_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF gv_lines GT 0.&lt;/P&gt;&lt;P&gt;      INSERT zmm_mchb FROM TABLE gt_new_mchb.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;        RAISE save_failed.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-  save into customized table MCHB&lt;/P&gt;&lt;P&gt;    DESCRIBE TABLE gt_change_mchb LINES gv_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF gv_lines GT 0.&lt;/P&gt;&lt;P&gt;      UPDATE zmm_mchb FROM TABLE gt_change_mchb.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;        RAISE save_failed.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**- save into customized table MCHBH&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   DESCRIBE TABLE gt_change_mchbh LINES gv_lines.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF gv_lines GT 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     UPDATE zmm_mchbh FROM TABLE gt_change_mchbh.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF sy-subrc NE 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       RAISE save_failed.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " check_save_mchb&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_movement_ind&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_movement_ind USING pv_lbbsa LIKE vm07m-lbbsa&lt;/P&gt;&lt;P&gt;                            pv_sobkz LIKE mseg-sobkz&lt;/P&gt;&lt;P&gt;                   CHANGING pw_t156c LIKE gw_t156c&lt;/P&gt;&lt;P&gt;                            pv_subrc LIKE sy-subrc.&lt;/P&gt;&lt;P&gt;*- get the movement indicator&lt;/P&gt;&lt;P&gt;  CLEAR pw_t156c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT SINGLE * INTO pw_t156c&lt;/P&gt;&lt;P&gt;    FROM t156c&lt;/P&gt;&lt;P&gt;   WHERE lbbsa EQ pv_lbbsa&lt;/P&gt;&lt;P&gt;     AND sobkz EQ pv_sobkz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  pv_subrc = sy-subrc.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_movement_ind&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  check_save_mska&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM check_save_mska USING pt_quan  LIKE gt_quan&lt;/P&gt;&lt;P&gt;                           pv_datum LIKE sy-datum.&lt;/P&gt;&lt;P&gt;  FIELD-SYMBOLS: &amp;lt;hide&amp;gt; LIKE gw_zmm_mchb-clabs,&lt;/P&gt;&lt;P&gt;                 &amp;lt;quan&amp;gt; LIKE gw_zmm_mchb-clabs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lv_cur_lfmon LIKE marv-lfmon,   "tehbm&lt;/P&gt;&lt;P&gt;        lv_cur_lfgja LIKE marv-lfgja,   "tehbm&lt;/P&gt;&lt;P&gt;        lv_bukrs     LIKE marv-bukrs.   "tehbm&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- initialize&lt;/P&gt;&lt;P&gt;  CLEAR: gt_new_mska,&lt;/P&gt;&lt;P&gt;         gt_change_mska,&lt;/P&gt;&lt;P&gt;         gt_change_mskah.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT pt_quan INTO gw_quan WHERE sobkz EQ 'E'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- insert start by tehbm 29/11/03&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  get the current MM posting period&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF lv_cur_lfmon IS INITIAL OR&lt;/P&gt;&lt;P&gt;       lv_cur_lfgja IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR lv_bukrs.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE bwkey INTO lv_bukrs&lt;/P&gt;&lt;P&gt;               FROM t001w&lt;/P&gt;&lt;P&gt;              WHERE werks EQ gw_quan-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT SINGLE lfgja lfmon&lt;/P&gt;&lt;P&gt;               INTO (lv_cur_lfgja, lv_cur_lfmon)&lt;/P&gt;&lt;P&gt;               FROM marv&lt;/P&gt;&lt;P&gt;              WHERE bukrs EQ lv_bukrs.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;*-- insert end by tehbm 29/11/03&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- get value from database&lt;/P&gt;&lt;P&gt;    CLEAR gw_zmm_mska.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE gt_zmm_mska INTO gw_zmm_mska&lt;/P&gt;&lt;P&gt;      WITH KEY matnr = gw_quan-matnr&lt;/P&gt;&lt;P&gt;               werks = gw_quan-werks&lt;/P&gt;&lt;P&gt;               lgort = gw_quan-lgort&lt;/P&gt;&lt;P&gt;               charg = gw_quan-charg&lt;/P&gt;&lt;P&gt;               sobkz = gw_quan-sobkz&lt;/P&gt;&lt;P&gt;               vbeln = gw_quan-vbeln&lt;/P&gt;&lt;P&gt;               posnr = gw_quan-posnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;*- if found, add difference (add or minus is done at consolidation)&lt;/P&gt;&lt;P&gt;      ADD: gw_quan-kalab TO gw_zmm_mska-kalab,&lt;/P&gt;&lt;P&gt;           gw_quan-kains TO gw_zmm_mska-kains,&lt;/P&gt;&lt;P&gt;           gw_quan-kaspe TO gw_zmm_mska-kaspe,&lt;/P&gt;&lt;P&gt;           gw_quan-kaein TO gw_zmm_mska-kaein,&lt;/P&gt;&lt;P&gt;           gw_quan-kalah TO gw_zmm_mska-kalah,&lt;/P&gt;&lt;P&gt;           gw_quan-kainh TO gw_zmm_mska-kainh,&lt;/P&gt;&lt;P&gt;           gw_quan-kasph TO gw_zmm_mska-kasph,&lt;/P&gt;&lt;P&gt;           gw_quan-kaeih TO gw_zmm_mska-kaeih.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     move: sy-datum(04)    to gw_zmm_mska-lfgja,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           sy-datum+04(02) to gw_zmm_mska-lfmon.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF gv_bwart NE 'Z13'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        MOVE: lv_cur_lfgja    TO gw_zmm_mska-lfgja,&lt;/P&gt;&lt;P&gt;              lv_cur_lfmon    TO gw_zmm_mska-lfmon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- change&lt;/P&gt;&lt;P&gt;      INSERT gw_zmm_mska INTO TABLE gt_change_mska.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;*- not found, create new entry&lt;/P&gt;&lt;P&gt;*- get unit of measure&lt;/P&gt;&lt;P&gt;      CLEAR gw_twew.&lt;/P&gt;&lt;P&gt;      READ TABLE gt_twew INTO gw_twew&lt;/P&gt;&lt;P&gt;        WITH TABLE KEY matnr = gw_quan-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- if not found, then create new entry with entered hide quantity&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING gw_quan TO gw_zmm_mska.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- move values&lt;/P&gt;&lt;P&gt;      MOVE: gw_twew-ewbez   TO gw_zmm_mska-hideu,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           sy-datum(04)    to gw_zmm_mska-lfgja,   "tehbm&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           sy-datum+04(02) to gw_zmm_mska-lfmon.   "tehbm&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            lv_cur_lfgja     TO gw_zmm_mska-lfgja,   "tehbm&lt;/P&gt;&lt;P&gt;            lv_cur_lfmon     TO gw_zmm_mska-lfmon.   "tehbm&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- new entry&lt;/P&gt;&lt;P&gt;      INSERT gw_zmm_mska INTO TABLE gt_new_mska.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**- back posting ?&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM check_back_posting USING pv_datum&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                    gw_quan-werks&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                           CHANGING sy-subrc.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;**- start addition by tehbm 29/11/03&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt; check if the record was just updated in routine&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*'past_period_posting'&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt; if true, then should no update again&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   READ TABLE gt_new_mskah INTO gw_zmm_mskah&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     WITH KEY matnr = gw_quan-matnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              werks = gw_quan-werks&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              lgort = gw_quan-lgort&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              charg = gw_quan-charg&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              sobkz = gw_quan-sobkz&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              vbeln = gw_quan-vbeln&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              posnr = gw_quan-posnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              lfgja = pv_datum+00(04)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              lfmon = pv_datum+04(02).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CHECK sy-subrc NE 0.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**- end addition by tehbm 29/11/03&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;**- get value from database&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR gw_zmm_mskah.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   READ TABLE gt_zmm_mskah INTO gw_zmm_mskah&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     WITH KEY matnr = gw_quan-matnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              werks = gw_quan-werks&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              lgort = gw_quan-lgort&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              charg = gw_quan-charg&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              sobkz = gw_quan-sobkz&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              vbeln = gw_quan-vbeln&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              posnr = gw_quan-posnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              lfgja = pv_datum+00(04)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              lfmon = pv_datum+04(02).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;   check sy-subrc ne 0.           "tehbm 1/12/03&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CHECK sy-subrc EQ 0.            "tehbm 1/12/03&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;**- add changes&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ADD: gw_quan-kalab TO gw_zmm_mskah-kalab,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        gw_quan-kains TO gw_zmm_mskah-kains,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        gw_quan-kaspe TO gw_zmm_mskah-kaspe,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        gw_quan-kaein TO gw_zmm_mskah-kaein,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        gw_quan-kalah TO gw_zmm_mskah-kalah,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        gw_quan-kainh TO gw_zmm_mskah-kainh,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        gw_quan-kasph TO gw_zmm_mskah-kasph,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        gw_quan-kaeih TO gw_zmm_mskah-kaeih.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;**- not found, transfer (default, should not be found)&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   INSERT gw_zmm_mskah INTO TABLE gt_change_mskah.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;*-  create into customized table MSKA&lt;/P&gt;&lt;P&gt;    DESCRIBE TABLE gt_new_mska LINES gv_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF gv_lines GT 0.&lt;/P&gt;&lt;P&gt;      INSERT zmm_mska FROM TABLE gt_new_mska.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;        RAISE save_failed.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-  save into customized table MSKA&lt;/P&gt;&lt;P&gt;    DESCRIBE TABLE gt_change_mska LINES gv_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF gv_lines GT 0.&lt;/P&gt;&lt;P&gt;      UPDATE zmm_mska FROM TABLE gt_change_mska.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;        RAISE save_failed.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-  save into customized table MSKAH&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   DESCRIBE TABLE gt_change_mskah LINES gv_lines.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF gv_lines GT 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     UPDATE zmm_mskah FROM TABLE gt_change_mskah.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF sy-subrc NE 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       RAISE save_failed.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " check_save_mska&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  update_mchbh&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM update_mchbh USING pt_quan  LIKE gt_quan&lt;/P&gt;&lt;P&gt;                        pv_budat LIKE sy-datum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FIELD-SYMBOLS: &amp;lt;hide&amp;gt; LIKE gw_zmm_mchb-clabs,&lt;/P&gt;&lt;P&gt;                 &amp;lt;quan&amp;gt; LIKE gw_zmm_mchb-clabs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lv_cur_lfmon LIKE marv-lfmon,   "tehbm&lt;/P&gt;&lt;P&gt;        lv_cur_lfgja LIKE marv-lfgja,   "tehbm&lt;/P&gt;&lt;P&gt;        lv_bukrs     LIKE marv-bukrs.   "tehbm&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lv_tab_lfmon LIKE marv-lfmon,&lt;/P&gt;&lt;P&gt;        lv_tab_lfgja LIKE marv-lfgja.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lv_matnr     TYPE matnr,&lt;/P&gt;&lt;P&gt;        lw_zmm_mchbh LIKE gw_zmm_mchbh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- initialize&lt;/P&gt;&lt;P&gt;  CLEAR gt_new_mchbh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT pt_quan INTO gw_quan WHERE sobkz EQ space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- insert start by tehbm 29/11/03&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  get the current MM posting period&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF lv_cur_lfmon IS INITIAL OR&lt;/P&gt;&lt;P&gt;       lv_cur_lfgja IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR lv_bukrs.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE bwkey INTO lv_bukrs&lt;/P&gt;&lt;P&gt;               FROM t001w&lt;/P&gt;&lt;P&gt;              WHERE werks EQ gw_quan-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT SINGLE lfgja lfmon&lt;/P&gt;&lt;P&gt;               INTO (lv_cur_lfgja, lv_cur_lfmon)&lt;/P&gt;&lt;P&gt;               FROM marv&lt;/P&gt;&lt;P&gt;              WHERE bukrs EQ lv_bukrs.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;*-- insert end by tehbm 29/11/03&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- get value from database&lt;/P&gt;&lt;P&gt;    CLEAR: gw_zmm_mchb, gw_zmm_mchbh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE gt_zmm_mchb INTO gw_zmm_mchb&lt;/P&gt;&lt;P&gt;      WITH KEY matnr = gw_quan-matnr&lt;/P&gt;&lt;P&gt;               werks = gw_quan-werks&lt;/P&gt;&lt;P&gt;               lgort = gw_quan-lgort&lt;/P&gt;&lt;P&gt;               charg = gw_quan-charg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;*- if current period, no change to history table&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;replace start by tehbm 29/11/2003&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     if gw_zmm_mchb-lfgja eq sy-datum(04) and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        gw_zmm_mchb-lfmon eq sy-datum+04(02).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF gw_zmm_mchb-lfmon EQ lv_cur_lfmon AND    "month&lt;/P&gt;&lt;P&gt;         gw_zmm_mchb-lfgja EQ lv_cur_lfgja.       "year&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;replace end by tehbm 29/11/03&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- replce start by tehbm 29/11/2003&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       continue.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF gw_zmm_mchb-lfmon NE pv_budat+4(2) OR&lt;/P&gt;&lt;P&gt;           gw_zmm_mchb-lfgja NE pv_budat(4).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- add value into history table&lt;/P&gt;&lt;P&gt;          MOVE-CORRESPONDING gw_zmm_mchb TO gw_zmm_mchbh.&lt;/P&gt;&lt;P&gt;          gw_zmm_mchbh-lfgja = pv_budat(4).&lt;/P&gt;&lt;P&gt;          gw_zmm_mchbh-lfmon = pv_budat+4(2).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          CLEAR: gw_zmm_mchbh-clabs,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mchbh-cumlm,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mchbh-cinsm,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mchbh-ceinm,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mchbh-cspem,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mchbh-cretm,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mchbh-clabh,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mchbh-cumlh,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mchbh-cinsh,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mchbh-ceinh,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mchbh-cspeh,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mchbh-creth.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          READ TABLE gt_zmm_mchbh INTO gw_zmm_mchbh&lt;/P&gt;&lt;P&gt;            WITH KEY matnr = gw_zmm_mchbh-matnr&lt;/P&gt;&lt;P&gt;                     werks = gw_zmm_mchbh-werks&lt;/P&gt;&lt;P&gt;                     lgort = gw_zmm_mchbh-lgort&lt;/P&gt;&lt;P&gt;                     charg = gw_zmm_mchbh-charg&lt;/P&gt;&lt;P&gt;                     lfgja = gw_zmm_mchbh-lfgja&lt;/P&gt;&lt;P&gt;                     lfmon = gw_zmm_mchbh-lfmon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;            DELETE gt_zmm_mchbh INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          ADD: gw_quan-clabs TO gw_zmm_mchbh-clabs,&lt;/P&gt;&lt;P&gt;               gw_quan-cumlm TO gw_zmm_mchbh-cumlm,&lt;/P&gt;&lt;P&gt;               gw_quan-cinsm TO gw_zmm_mchbh-cinsm,&lt;/P&gt;&lt;P&gt;               gw_quan-ceinm TO gw_zmm_mchbh-ceinm,&lt;/P&gt;&lt;P&gt;               gw_quan-cspem TO gw_zmm_mchbh-cspem,&lt;/P&gt;&lt;P&gt;               gw_quan-cretm TO gw_zmm_mchbh-cretm,&lt;/P&gt;&lt;P&gt;               gw_quan-clabh TO gw_zmm_mchbh-clabh,&lt;/P&gt;&lt;P&gt;               gw_quan-cumlh TO gw_zmm_mchbh-cumlh,&lt;/P&gt;&lt;P&gt;               gw_quan-cinsh TO gw_zmm_mchbh-cinsh,&lt;/P&gt;&lt;P&gt;               gw_quan-ceinh TO gw_zmm_mchbh-ceinh,&lt;/P&gt;&lt;P&gt;               gw_quan-cspeh TO gw_zmm_mchbh-cspeh,&lt;/P&gt;&lt;P&gt;               gw_quan-creth TO gw_zmm_mchbh-creth.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          INSERT gw_zmm_mchbh INTO TABLE: gt_new_mchbh,&lt;/P&gt;&lt;P&gt;                                          gt_zmm_mchbh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          SUBTRACT 1 FROM gw_zmm_mchbh-lfmon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF gw_zmm_mchbh-lfmon EQ 0.&lt;/P&gt;&lt;P&gt;            gw_zmm_mchbh-lfmon = '12'.&lt;/P&gt;&lt;P&gt;            SUBTRACT 1 FROM gw_zmm_mchbh-lfgja.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          lw_zmm_mchbh = gw_zmm_mchbh.&lt;/P&gt;&lt;P&gt;          CLEAR: gw_zmm_mchbh-clabs,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mchbh-cumlm,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mchbh-cinsm,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mchbh-ceinm,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mchbh-cspem,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mchbh-cretm,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mchbh-clabh,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mchbh-cumlh,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mchbh-cinsh,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mchbh-ceinh,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mchbh-cspeh,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mchbh-creth.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- create only if it does not exist&lt;/P&gt;&lt;P&gt;          READ TABLE gt_zmm_mchbh FROM gw_zmm_mchbh&lt;/P&gt;&lt;P&gt;            TRANSPORTING NO FIELDS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;            INSERT gw_zmm_mchbh INTO TABLE: gt_new_mchbh,&lt;/P&gt;&lt;P&gt;                                            gt_zmm_mchbh.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          CONTINUE.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;*- replace end by tehbm 29/11/2003&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;*- different period, move to history table&lt;/P&gt;&lt;P&gt;        CLEAR gw_zmm_mchbh.&lt;/P&gt;&lt;P&gt;        MOVE-CORRESPONDING gw_zmm_mchb TO gw_zmm_mchbh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- table period&lt;/P&gt;&lt;P&gt;        lv_tab_lfmon = gw_zmm_mchbh-lfmon.&lt;/P&gt;&lt;P&gt;        lv_tab_lfgja = gw_zmm_mchbh-lfgja.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       IF gw_zmm_mchbh-lfmon EQ pv_budat+4(2) AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          gw_zmm_mchbh-lfgja EQ pv_budat(4).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- create entry of the previous entry&lt;/P&gt;&lt;P&gt;        gw_zmm_mchbh-lfmon = lv_cur_lfmon.&lt;/P&gt;&lt;P&gt;        gw_zmm_mchbh-lfgja = lv_cur_lfgja.&lt;/P&gt;&lt;P&gt;        SUBTRACT 1 FROM gw_zmm_mchbh-lfmon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF gw_zmm_mchbh-lfmon EQ 0.&lt;/P&gt;&lt;P&gt;          gw_zmm_mchbh-lfmon = '12'.&lt;/P&gt;&lt;P&gt;          SUBTRACT 1 FROM gw_zmm_mchbh-lfgja.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        INSERT gw_zmm_mchbh INTO TABLE: gt_new_mchbh,&lt;/P&gt;&lt;P&gt;                                        gt_zmm_mchbh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*---- add changes&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- add by dc_adriant&lt;/P&gt;&lt;P&gt;*- get value from database&lt;/P&gt;&lt;P&gt;        lw_zmm_mchbh = gw_zmm_mchbh.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       gw_zmm_mchbh = lw_zmm_mchbh.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       gw_zmm_mchbh-lfmon = pv_budat+4(2).&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       gw_zmm_mchbh-lfgja = pv_budat(4).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        DO 2 TIMES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          SUBTRACT 1 FROM gw_zmm_mchbh-lfmon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF gw_zmm_mchbh-lfmon EQ 0.&lt;/P&gt;&lt;P&gt;            gw_zmm_mchbh-lfmon = '12'.&lt;/P&gt;&lt;P&gt;            SUBTRACT 1 FROM gw_zmm_mchbh-lfgja.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         READ TABLE gt_zmm_mchbh INTO gw_zmm_mchbh&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           WITH KEY matnr = gw_zmm_mchbh-matnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                    werks = gw_zmm_mchbh-werks&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                    lgort = gw_zmm_mchbh-lgort&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                    charg = gw_zmm_mchbh-charg&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                    lfgja = gw_zmm_mchbh-lfgja&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                    lfmon = gw_zmm_mchbh-lfmon.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*- add by dc_adriant&lt;/P&gt;&lt;P&gt;          IF ( gw_zmm_mchbh-lfmon LT lv_tab_lfmon AND&lt;/P&gt;&lt;P&gt;               gw_zmm_mchbh-lfgja EQ lv_tab_lfgja ) OR&lt;/P&gt;&lt;P&gt;             ( gw_zmm_mchbh-lfgja LT lv_tab_lfgja ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            CLEAR: gw_zmm_mchbh-clabs,&lt;/P&gt;&lt;P&gt;                   gw_zmm_mchbh-cumlm,&lt;/P&gt;&lt;P&gt;                   gw_zmm_mchbh-cinsm,&lt;/P&gt;&lt;P&gt;                   gw_zmm_mchbh-ceinm,&lt;/P&gt;&lt;P&gt;                   gw_zmm_mchbh-cspem,&lt;/P&gt;&lt;P&gt;                   gw_zmm_mchbh-cretm,&lt;/P&gt;&lt;P&gt;                   gw_zmm_mchbh-clabh,&lt;/P&gt;&lt;P&gt;                   gw_zmm_mchbh-cumlh,&lt;/P&gt;&lt;P&gt;                   gw_zmm_mchbh-cinsh,&lt;/P&gt;&lt;P&gt;                   gw_zmm_mchbh-ceinh,&lt;/P&gt;&lt;P&gt;                   gw_zmm_mchbh-cspeh,&lt;/P&gt;&lt;P&gt;                   gw_zmm_mchbh-creth.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          READ TABLE gt_zmm_mchbh FROM gw_zmm_mchbh&lt;/P&gt;&lt;P&gt;            TRANSPORTING NO FIELDS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- create if not exist&lt;/P&gt;&lt;P&gt;          IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;            INSERT gw_zmm_mchbh INTO TABLE: gt_new_mchbh,&lt;/P&gt;&lt;P&gt;                                            gt_zmm_mchbh.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        gw_zmm_mchbh = lw_zmm_mchbh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- add quantity of posting date is in period&lt;/P&gt;&lt;P&gt;        IF pv_budat+04(02) NE lv_cur_lfmon OR&lt;/P&gt;&lt;P&gt;           pv_budat+00(04) NE lv_cur_lfgja.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          gw_zmm_mchbh-lfmon = pv_budat+04(02).&lt;/P&gt;&lt;P&gt;          gw_zmm_mchbh-lfgja = pv_budat+00(04).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          READ TABLE gt_zmm_mchbh INTO gw_zmm_mchbh&lt;/P&gt;&lt;P&gt;            WITH KEY matnr = gw_zmm_mchbh-matnr&lt;/P&gt;&lt;P&gt;                     werks = gw_zmm_mchbh-werks&lt;/P&gt;&lt;P&gt;                     lgort = gw_zmm_mchbh-lgort&lt;/P&gt;&lt;P&gt;                     charg = gw_zmm_mchbh-charg&lt;/P&gt;&lt;P&gt;                     lfgja = gw_zmm_mchbh-lfgja&lt;/P&gt;&lt;P&gt;                     lfmon = gw_zmm_mchbh-lfmon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- delete&lt;/P&gt;&lt;P&gt;          IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;            DELETE gt_zmm_mchbh INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            READ TABLE gt_new_mchbh FROM gw_zmm_mchbh&lt;/P&gt;&lt;P&gt;              TRANSPORTING NO FIELDS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;              DELETE gt_new_mchbh INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          ADD: gw_quan-clabs TO gw_zmm_mchbh-clabs,&lt;/P&gt;&lt;P&gt;               gw_quan-cumlm TO gw_zmm_mchbh-cumlm,&lt;/P&gt;&lt;P&gt;               gw_quan-cinsm TO gw_zmm_mchbh-cinsm,&lt;/P&gt;&lt;P&gt;               gw_quan-ceinm TO gw_zmm_mchbh-ceinm,&lt;/P&gt;&lt;P&gt;               gw_quan-cspem TO gw_zmm_mchbh-cspem,&lt;/P&gt;&lt;P&gt;               gw_quan-cretm TO gw_zmm_mchbh-cretm,&lt;/P&gt;&lt;P&gt;               gw_quan-clabh TO gw_zmm_mchbh-clabh,&lt;/P&gt;&lt;P&gt;               gw_quan-cumlh TO gw_zmm_mchbh-cumlh,&lt;/P&gt;&lt;P&gt;               gw_quan-cinsh TO gw_zmm_mchbh-cinsh,&lt;/P&gt;&lt;P&gt;               gw_quan-ceinh TO gw_zmm_mchbh-ceinh,&lt;/P&gt;&lt;P&gt;               gw_quan-cspeh TO gw_zmm_mchbh-cspeh,&lt;/P&gt;&lt;P&gt;               gw_quan-creth TO gw_zmm_mchbh-creth.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          INSERT gw_zmm_mchbh INTO TABLE: gt_new_mchbh,&lt;/P&gt;&lt;P&gt;                                          gt_zmm_mchbh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*------ end insertion by tehbm 29/11&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;*- start deletion by tehbm 29/11/03&lt;/P&gt;&lt;P&gt;**- if no value; do not continue&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     exit.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*- end deletion by tehbm 29/11/03&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- start insertion by tehbm 29/11/03&lt;/P&gt;&lt;P&gt;*- if it's a new record in zmm_mchb, create a history in zmm_mchbh as&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; well if it is a back posting&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*- if it is not a back posting, only upadate zmm_mchb&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- check posting date&lt;/P&gt;&lt;P&gt;      IF pv_budat(4)   EQ lv_cur_lfgja AND&lt;/P&gt;&lt;P&gt;         pv_budat+4(2) EQ lv_cur_lfmon.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       EXIT.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CONTINUE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- get unit of measure&lt;/P&gt;&lt;P&gt;      CLEAR gw_twew.&lt;/P&gt;&lt;P&gt;      READ TABLE gt_twew INTO gw_twew&lt;/P&gt;&lt;P&gt;        WITH TABLE KEY matnr = gw_quan-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- if not found, then create new entry with entered hide quantity&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING gw_quan TO gw_zmm_mchbh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- move values&lt;/P&gt;&lt;P&gt;      MOVE: gw_twew-ewbez   TO gw_zmm_mchbh-hideu,&lt;/P&gt;&lt;P&gt;            pv_budat(4)     TO gw_zmm_mchbh-lfgja,&lt;/P&gt;&lt;P&gt;            pv_budat+4(2)   TO gw_zmm_mchbh-lfmon.&lt;/P&gt;&lt;P&gt;*- end insertion by tehbm 29/11/03&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**- check if back posting more than 2 periods&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM check_back_posting USING pv_datum&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                    gw_quan-werks&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                           CHANGING sy-subrc.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- get value from database&lt;/P&gt;&lt;P&gt;      READ TABLE gt_zmm_mchbh FROM gw_zmm_mchbh TRANSPORTING NO FIELDS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CHECK sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- not found, transfer (default, should not be found)&lt;/P&gt;&lt;P&gt;      INSERT gw_zmm_mchbh INTO TABLE: gt_new_mchbh,&lt;/P&gt;&lt;P&gt;                                      gt_zmm_mchbh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- check if previous period is available&lt;/P&gt;&lt;P&gt;      SUBTRACT 1 FROM gw_zmm_mchbh-lfmon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF gw_zmm_mchbh-lfmon EQ 0.&lt;/P&gt;&lt;P&gt;        gw_zmm_mchbh-lfmon = 12.&lt;/P&gt;&lt;P&gt;        SUBTRACT 1 FROM gw_zmm_mchbh-lfgja.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- not found, create entry of previous period with null values&lt;/P&gt;&lt;P&gt;      READ TABLE gt_zmm_mchbh FROM gw_zmm_mchbh TRANSPORTING NO FIELDS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CHECK sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR: gw_zmm_mchbh-clabs,&lt;/P&gt;&lt;P&gt;             gw_zmm_mchbh-cumlm,&lt;/P&gt;&lt;P&gt;             gw_zmm_mchbh-cinsm,&lt;/P&gt;&lt;P&gt;             gw_zmm_mchbh-ceinm,&lt;/P&gt;&lt;P&gt;             gw_zmm_mchbh-cspem,&lt;/P&gt;&lt;P&gt;             gw_zmm_mchbh-cretm,&lt;/P&gt;&lt;P&gt;             gw_zmm_mchbh-clabh,&lt;/P&gt;&lt;P&gt;             gw_zmm_mchbh-cumlh,&lt;/P&gt;&lt;P&gt;             gw_zmm_mchbh-cinsh,&lt;/P&gt;&lt;P&gt;             gw_zmm_mchbh-ceinh,&lt;/P&gt;&lt;P&gt;             gw_zmm_mchbh-cspeh,&lt;/P&gt;&lt;P&gt;             gw_zmm_mchbh-creth.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      INSERT gw_zmm_mchbh INTO TABLE: gt_new_mchbh,&lt;/P&gt;&lt;P&gt;                                      gt_zmm_mchbh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;*- check if already exist&lt;/P&gt;&lt;P&gt;    CLEAR gt_change_mchbh.&lt;/P&gt;&lt;P&gt;    LOOP AT gt_new_mchbh INTO gw_zmm_mchbh.&lt;/P&gt;&lt;P&gt;*- get value from database&lt;/P&gt;&lt;P&gt;      SELECT SINGLE matnr INTO lv_matnr&lt;/P&gt;&lt;P&gt;        FROM zmm_mchbh&lt;/P&gt;&lt;P&gt;       WHERE matnr EQ gw_zmm_mchbh-matnr&lt;/P&gt;&lt;P&gt;         AND werks EQ gw_zmm_mchbh-werks&lt;/P&gt;&lt;P&gt;         AND lgort EQ gw_zmm_mchbh-lgort&lt;/P&gt;&lt;P&gt;         AND charg EQ gw_zmm_mchbh-charg&lt;/P&gt;&lt;P&gt;         AND lfgja EQ gw_zmm_mchbh-lfgja&lt;/P&gt;&lt;P&gt;         AND lfmon EQ gw_zmm_mchbh-lfmon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- not found?&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        DELETE gt_new_mchbh.&lt;/P&gt;&lt;P&gt;        APPEND gw_zmm_mchbh TO gt_change_mchbh.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-  create into customized table&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF gv_tcode NE 'Z13'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DESCRIBE TABLE gt_new_mchbh LINES gv_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF gv_lines GT 0.&lt;/P&gt;&lt;P&gt;      INSERT zmm_mchbh FROM TABLE gt_new_mchbh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;        RAISE save_failed.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-  update into customized table&lt;/P&gt;&lt;P&gt;    DESCRIBE TABLE gt_change_mchbh LINES gv_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF gv_lines GT 0.&lt;/P&gt;&lt;P&gt;      UPDATE zmm_mchbh FROM TABLE gt_change_mchbh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;        RAISE save_failed.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " update_mchbh&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  update_mskah&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM update_mskah USING pt_quan  LIKE gt_quan&lt;/P&gt;&lt;P&gt;                        pv_budat LIKE sy-datum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FIELD-SYMBOLS: &amp;lt;hide&amp;gt; LIKE gw_zmm_mchb-clabs,&lt;/P&gt;&lt;P&gt;                 &amp;lt;quan&amp;gt; LIKE gw_zmm_mchb-clabs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lv_cur_lfmon LIKE marv-lfmon,   "tehbm&lt;/P&gt;&lt;P&gt;        lv_cur_lfgja LIKE marv-lfgja,   "tehbm&lt;/P&gt;&lt;P&gt;        lv_bukrs     LIKE marv-bukrs.   "tehbm&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lv_tab_lfmon LIKE marv-lfmon,&lt;/P&gt;&lt;P&gt;        lv_tab_lfgja LIKE marv-lfgja.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lv_matnr     TYPE matnr,&lt;/P&gt;&lt;P&gt;        lw_zmm_mskah LIKE gw_zmm_mskah.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- initialize&lt;/P&gt;&lt;P&gt;  CLEAR gt_new_mskah.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT pt_quan INTO gw_quan WHERE sobkz EQ 'E'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- insert start by tehbm 29/11/03&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  get the current MM posting period&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF lv_cur_lfmon IS INITIAL OR&lt;/P&gt;&lt;P&gt;       lv_cur_lfgja IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR lv_bukrs.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE bwkey INTO lv_bukrs&lt;/P&gt;&lt;P&gt;               FROM t001w&lt;/P&gt;&lt;P&gt;              WHERE werks EQ gw_quan-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT SINGLE lfgja lfmon&lt;/P&gt;&lt;P&gt;               INTO (lv_cur_lfgja, lv_cur_lfmon)&lt;/P&gt;&lt;P&gt;               FROM marv&lt;/P&gt;&lt;P&gt;              WHERE bukrs EQ lv_bukrs.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;*-- insert end by tehbm 29/11/03&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- get value from database&lt;/P&gt;&lt;P&gt;    CLEAR: gw_zmm_mska, gw_zmm_mskah.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE gt_zmm_mska INTO gw_zmm_mska&lt;/P&gt;&lt;P&gt;      WITH KEY matnr = gw_quan-matnr&lt;/P&gt;&lt;P&gt;               werks = gw_quan-werks&lt;/P&gt;&lt;P&gt;               lgort = gw_quan-lgort&lt;/P&gt;&lt;P&gt;               charg = gw_quan-charg&lt;/P&gt;&lt;P&gt;               sobkz = gw_quan-sobkz&lt;/P&gt;&lt;P&gt;               vbeln = gw_quan-vbeln&lt;/P&gt;&lt;P&gt;               posnr = gw_quan-posnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;*- if current period, no change to history table&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;replace start by tehbm 29/11/2003&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     if gw_zmm_mska-lfgja eq sy-datum(04) and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        gw_zmm_mska-lfmon eq sy-datum+04(02).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF gw_zmm_mska-lfmon EQ lv_cur_lfmon AND    "month&lt;/P&gt;&lt;P&gt;         gw_zmm_mska-lfgja EQ lv_cur_lfgja.       "year&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;replace end by tehbm 29/11/03&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- replce start by tehbm 29/11/2003&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       continue.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF gw_zmm_mska-lfmon NE pv_budat+4(2) OR&lt;/P&gt;&lt;P&gt;           gw_zmm_mska-lfgja NE pv_budat(4).&lt;/P&gt;&lt;P&gt;          MOVE-CORRESPONDING gw_zmm_mska TO gw_zmm_mskah.&lt;/P&gt;&lt;P&gt;          gw_zmm_mskah-lfgja = pv_budat(4).&lt;/P&gt;&lt;P&gt;          gw_zmm_mskah-lfmon = pv_budat+4(2).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          CLEAR: gw_zmm_mskah-kalab,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mskah-kains,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mskah-kaspe,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mskah-kaein,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mskah-kalah,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mskah-kainh,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mskah-kasph,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mskah-kaeih.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          READ TABLE gt_zmm_mskah INTO gw_zmm_mskah&lt;/P&gt;&lt;P&gt;            WITH KEY matnr = gw_zmm_mskah-matnr&lt;/P&gt;&lt;P&gt;                     werks = gw_zmm_mskah-werks&lt;/P&gt;&lt;P&gt;                     lgort = gw_zmm_mskah-lgort&lt;/P&gt;&lt;P&gt;                     charg = gw_zmm_mskah-charg&lt;/P&gt;&lt;P&gt;                     sobkz = gw_zmm_mskah-sobkz&lt;/P&gt;&lt;P&gt;                     vbeln = gw_zmm_mskah-vbeln&lt;/P&gt;&lt;P&gt;                     posnr = gw_zmm_mskah-posnr&lt;/P&gt;&lt;P&gt;                     lfgja = gw_zmm_mskah-lfgja&lt;/P&gt;&lt;P&gt;                     lfmon = gw_zmm_mskah-lfmon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;            DELETE gt_zmm_mskah INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*---- add changes&lt;/P&gt;&lt;P&gt;          ADD: gw_quan-kalab TO gw_zmm_mskah-kalab,&lt;/P&gt;&lt;P&gt;               gw_quan-kains TO gw_zmm_mskah-kains,&lt;/P&gt;&lt;P&gt;               gw_quan-kaspe TO gw_zmm_mskah-kaspe,&lt;/P&gt;&lt;P&gt;               gw_quan-kaein TO gw_zmm_mskah-kaein,&lt;/P&gt;&lt;P&gt;               gw_quan-kalah TO gw_zmm_mskah-kalah,&lt;/P&gt;&lt;P&gt;               gw_quan-kainh TO gw_zmm_mskah-kainh,&lt;/P&gt;&lt;P&gt;               gw_quan-kasph TO gw_zmm_mskah-kasph,&lt;/P&gt;&lt;P&gt;               gw_quan-kaeih TO gw_zmm_mskah-kaeih.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          INSERT gw_zmm_mskah INTO TABLE: gt_new_mskah,&lt;/P&gt;&lt;P&gt;                                          gt_zmm_mskah.&lt;/P&gt;&lt;P&gt;*- check if previous period is available&lt;/P&gt;&lt;P&gt;          SUBTRACT 1 FROM gw_zmm_mskah-lfmon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF gw_zmm_mskah-lfmon EQ 0.&lt;/P&gt;&lt;P&gt;            gw_zmm_mskah-lfmon = 12.&lt;/P&gt;&lt;P&gt;            SUBTRACT 1 FROM gw_zmm_mskah-lfgja.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          lw_zmm_mskah = gw_zmm_mskah.&lt;/P&gt;&lt;P&gt;          CLEAR: gw_zmm_mskah-kalab,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mskah-kains,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mskah-kaspe,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mskah-kaein,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mskah-kalah,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mskah-kainh,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mskah-kasph,&lt;/P&gt;&lt;P&gt;                 gw_zmm_mskah-kaeih.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- create only if it does not exist&lt;/P&gt;&lt;P&gt;          READ TABLE gt_zmm_mskah FROM gw_zmm_mskah&lt;/P&gt;&lt;P&gt;            TRANSPORTING NO FIELDS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;            INSERT gw_zmm_mskah INTO TABLE: gt_new_mskah,&lt;/P&gt;&lt;P&gt;                                            gt_zmm_mskah.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          CONTINUE.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;*- replace end by tehbm 29/11/2003&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;*- different period, move to history table&lt;/P&gt;&lt;P&gt;        CLEAR gw_zmm_mskah.&lt;/P&gt;&lt;P&gt;        MOVE-CORRESPONDING gw_zmm_mska TO gw_zmm_mskah.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- table period - tbm @ 7/2/2004&lt;/P&gt;&lt;P&gt;        lv_tab_lfmon = gw_zmm_mskah-lfmon.&lt;/P&gt;&lt;P&gt;        lv_tab_lfgja = gw_zmm_mskah-lfgja.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       IF gw_zmm_mskah-lfmon EQ pv_budat+4(2) AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          gw_zmm_mskah-lfgja EQ pv_budat(4).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------ start insertion by tehbm 29/11/2003&lt;/P&gt;&lt;P&gt;        gw_zmm_mskah-lfmon = lv_cur_lfmon - 1.&lt;/P&gt;&lt;P&gt;        gw_zmm_mskah-lfgja = lv_cur_lfgja.&lt;/P&gt;&lt;P&gt;        IF gw_zmm_mskah-lfmon EQ 0.&lt;/P&gt;&lt;P&gt;          gw_zmm_mskah-lfmon = '12'.&lt;/P&gt;&lt;P&gt;          SUBTRACT 1 FROM gw_zmm_mskah-lfgja.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        INSERT gw_zmm_mskah INTO TABLE: gt_new_mskah,&lt;/P&gt;&lt;P&gt;                                        gt_zmm_mskah.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         SUBTRACT 1 FROM gw_zmm_mskah-lfmon.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         IF gw_zmm_mskah-lfmon EQ 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           gw_zmm_mskah-lfmon = '12'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           SUBTRACT 1 FROM gw_zmm_mskah-lfgja.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        lw_zmm_mskah = gw_zmm_mskah.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        DO 2 TIMES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          SUBTRACT 1 FROM gw_zmm_mskah-lfmon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF gw_zmm_mskah-lfmon EQ 0.&lt;/P&gt;&lt;P&gt;            gw_zmm_mskah-lfmon = '12'.&lt;/P&gt;&lt;P&gt;            SUBTRACT 1 FROM gw_zmm_mskah-lfgja.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF ( gw_zmm_mskah-lfmon LT lv_tab_lfmon AND&lt;/P&gt;&lt;P&gt;               gw_zmm_mskah-lfgja EQ lv_tab_lfgja ) OR&lt;/P&gt;&lt;P&gt;             ( gw_zmm_mskah-lfgja LT lv_tab_lfgja ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            CLEAR: gw_zmm_mskah-kalab,&lt;/P&gt;&lt;P&gt;                   gw_zmm_mskah-kains,&lt;/P&gt;&lt;P&gt;                   gw_zmm_mskah-kaspe,&lt;/P&gt;&lt;P&gt;                   gw_zmm_mskah-kaein,&lt;/P&gt;&lt;P&gt;                   gw_zmm_mskah-kalah,&lt;/P&gt;&lt;P&gt;                   gw_zmm_mskah-kainh,&lt;/P&gt;&lt;P&gt;                   gw_zmm_mskah-kasph,&lt;/P&gt;&lt;P&gt;                   gw_zmm_mskah-kaeih.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- create only if not exists&lt;/P&gt;&lt;P&gt;          READ TABLE gt_zmm_mskah FROM gw_zmm_mskah&lt;/P&gt;&lt;P&gt;            TRANSPORTING NO FIELDS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;            INSERT gw_zmm_mskah INTO TABLE: gt_new_mskah,&lt;/P&gt;&lt;P&gt;                                            gt_zmm_mskah.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- add by dc_adriant&lt;/P&gt;&lt;P&gt;*- get value from database&lt;/P&gt;&lt;P&gt;        gw_zmm_mskah = lw_zmm_mskah.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        gw_zmm_mskah-lfmon = pv_budat+4(2).&lt;/P&gt;&lt;P&gt;        gw_zmm_mskah-lfgja = pv_budat(4).&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         READ TABLE gt_zmm_mskah INTO gw_zmm_mskah&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           WITH KEY matnr = gw_zmm_mskah-matnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                    werks = gw_zmm_mskah-werks&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                    lgort = gw_zmm_mskah-lgort&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                    charg = gw_zmm_mskah-charg&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                    sobkz = gw_zmm_mskah-sobkz&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                    vbeln = gw_zmm_mskah-vbeln&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                    posnr = gw_zmm_mskah-posnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                    lfgja = gw_zmm_mskah-lfgja&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                    lfmon = gw_zmm_mskah-lfmon.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*- add by dc_adriant&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- add quantity of posting date is in period&lt;/P&gt;&lt;P&gt;        IF pv_budat+04(02) NE lv_cur_lfmon OR&lt;/P&gt;&lt;P&gt;           pv_budat+00(04) NE lv_cur_lfgja.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          gw_zmm_mskah-lfmon = pv_budat+04(02).&lt;/P&gt;&lt;P&gt;          gw_zmm_mskah-lfgja = pv_budat+00(04).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          READ TABLE gt_zmm_mskah INTO gw_zmm_mskah&lt;/P&gt;&lt;P&gt;            WITH KEY matnr = gw_zmm_mskah-matnr&lt;/P&gt;&lt;P&gt;                     werks = gw_zmm_mskah-werks&lt;/P&gt;&lt;P&gt;                     lgort = gw_zmm_mskah-lgort&lt;/P&gt;&lt;P&gt;                     charg = gw_zmm_mskah-charg&lt;/P&gt;&lt;P&gt;                     sobkz = gw_zmm_mskah-sobkz&lt;/P&gt;&lt;P&gt;                     vbeln = gw_zmm_mskah-vbeln&lt;/P&gt;&lt;P&gt;                     posnr = gw_zmm_mskah-posnr&lt;/P&gt;&lt;P&gt;                     lfgja = gw_zmm_mskah-lfgja&lt;/P&gt;&lt;P&gt;                     lfmon = gw_zmm_mskah-lfmon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- delete&lt;/P&gt;&lt;P&gt;          IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;            DELETE gt_zmm_mskah INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            READ TABLE gt_new_mskah FROM gw_zmm_mskah&lt;/P&gt;&lt;P&gt;              TRANSPORTING NO FIELDS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;              DELETE gt_new_mskah INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*---- add changes&lt;/P&gt;&lt;P&gt;          ADD: gw_quan-kalab TO gw_zmm_mskah-kalab,&lt;/P&gt;&lt;P&gt;               gw_quan-kains TO gw_zmm_mskah-kains,&lt;/P&gt;&lt;P&gt;               gw_quan-kaspe TO gw_zmm_mskah-kaspe,&lt;/P&gt;&lt;P&gt;               gw_quan-kaein TO gw_zmm_mskah-kaein,&lt;/P&gt;&lt;P&gt;               gw_quan-kalah TO gw_zmm_mskah-kalah,&lt;/P&gt;&lt;P&gt;               gw_quan-kainh TO gw_zmm_mskah-kainh,&lt;/P&gt;&lt;P&gt;               gw_quan-kasph TO gw_zmm_mskah-kasph,&lt;/P&gt;&lt;P&gt;               gw_quan-kaeih TO gw_zmm_mskah-kaeih.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          INSERT gw_zmm_mskah INTO TABLE: gt_new_mskah,&lt;/P&gt;&lt;P&gt;                                          gt_zmm_mskah.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;*------ end insertion by tehbm 29/11&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;*- start deletion by tehbm 29/11/03&lt;/P&gt;&lt;P&gt;**- if no value; do not continue&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     exit.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*- end deletion by tehbm 29/11/03&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- start insertion by tehbm 29/11/03&lt;/P&gt;&lt;P&gt;*- if it's a new record in zmm_mska, create a history in zmm_mskah as&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; well if it is a back posting&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*- if it is not a back posting, only upadate zmm_mska&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- check posting date&lt;/P&gt;&lt;P&gt;      IF pv_budat(4)   EQ lv_cur_lfgja AND&lt;/P&gt;&lt;P&gt;         pv_budat+4(2) EQ lv_cur_lfmon.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       EXIT.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CONTINUE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- get unit of measure&lt;/P&gt;&lt;P&gt;      CLEAR gw_twew.&lt;/P&gt;&lt;P&gt;      READ TABLE gt_twew INTO gw_twew&lt;/P&gt;&lt;P&gt;        WITH TABLE KEY matnr = gw_quan-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- if not found, then create new entry with entered hide quantity&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING gw_quan TO gw_zmm_mskah.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- move values&lt;/P&gt;&lt;P&gt;      MOVE: gw_twew-ewbez   TO gw_zmm_mskah-hideu,&lt;/P&gt;&lt;P&gt;            pv_budat(4)     TO gw_zmm_mskah-lfgja,&lt;/P&gt;&lt;P&gt;            pv_budat+4(2)   TO gw_zmm_mskah-lfmon.&lt;/P&gt;&lt;P&gt;*- end insertion by tehbm 29/11/03&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**- check if back posting more than 2 periods&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM check_back_posting USING pv_datum&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                    gw_quan-werks&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                           CHANGING sy-subrc.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- get value from database&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   clear gw_zmm_mskah.     "commented out by tehbm&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE gt_zmm_mskah FROM gw_zmm_mskah TRANSPORTING NO FIELDS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- not found, transfer (default, should not be found)&lt;/P&gt;&lt;P&gt;      CHECK sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      INSERT gw_zmm_mskah INTO TABLE: gt_new_mskah,&lt;/P&gt;&lt;P&gt;                                      gt_zmm_mskah.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- check if previous period is available&lt;/P&gt;&lt;P&gt;      SUBTRACT 1 FROM gw_zmm_mskah-lfmon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF gw_zmm_mskah-lfmon EQ 0.&lt;/P&gt;&lt;P&gt;        gw_zmm_mskah-lfmon = 12.&lt;/P&gt;&lt;P&gt;        SUBTRACT 1 FROM gw_zmm_mskah-lfgja.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- not found, create entry of previous period with null values&lt;/P&gt;&lt;P&gt;      READ TABLE gt_zmm_mskah FROM gw_zmm_mskah TRANSPORTING NO FIELDS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CHECK sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR: gw_zmm_mskah-kalab,&lt;/P&gt;&lt;P&gt;             gw_zmm_mskah-kains,&lt;/P&gt;&lt;P&gt;             gw_zmm_mskah-kaspe,&lt;/P&gt;&lt;P&gt;             gw_zmm_mskah-kaein,&lt;/P&gt;&lt;P&gt;             gw_zmm_mskah-kalah,&lt;/P&gt;&lt;P&gt;             gw_zmm_mskah-kainh,&lt;/P&gt;&lt;P&gt;             gw_zmm_mskah-kasph,&lt;/P&gt;&lt;P&gt;             gw_zmm_mskah-kaeih.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      INSERT gw_zmm_mskah INTO TABLE: gt_new_mskah,&lt;/P&gt;&lt;P&gt;                                      gt_zmm_mskah.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;*- check if already exist&lt;/P&gt;&lt;P&gt;    CLEAR gt_change_mskah.&lt;/P&gt;&lt;P&gt;    LOOP AT gt_new_mskah INTO gw_zmm_mskah.&lt;/P&gt;&lt;P&gt;*- get value from database&lt;/P&gt;&lt;P&gt;      SELECT SINGLE matnr INTO lv_matnr&lt;/P&gt;&lt;P&gt;        FROM zmm_mskah&lt;/P&gt;&lt;P&gt;       WHERE matnr EQ gw_zmm_mskah-matnr&lt;/P&gt;&lt;P&gt;         AND werks EQ gw_zmm_mskah-werks&lt;/P&gt;&lt;P&gt;         AND lgort EQ gw_zmm_mskah-lgort&lt;/P&gt;&lt;P&gt;         AND charg EQ gw_zmm_mskah-charg&lt;/P&gt;&lt;P&gt;         AND sobkz EQ gw_zmm_mskah-sobkz&lt;/P&gt;&lt;P&gt;         AND vbeln EQ gw_zmm_mskah-vbeln&lt;/P&gt;&lt;P&gt;         AND posnr EQ gw_zmm_mskah-posnr&lt;/P&gt;&lt;P&gt;         AND lfgja EQ gw_zmm_mskah-lfgja&lt;/P&gt;&lt;P&gt;         AND lfmon EQ gw_zmm_mskah-lfmon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- not found?&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        DELETE gt_new_mskah.&lt;/P&gt;&lt;P&gt;        APPEND gw_zmm_mskah TO gt_change_mskah.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-  create into customized table&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF gv_tcode NE 'Z13'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   describe table gt_new_mska lines gv_lines.   "tehbm&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    DESCRIBE TABLE gt_new_mskah LINES gv_lines.   "tehbm&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF gv_lines GT 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     insert zmm_mska from table gt_new_mska.    "tehbm&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      INSERT zmm_mskah FROM TABLE gt_new_mskah.     "tehbm&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;        RAISE save_failed.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-  update into customized table&lt;/P&gt;&lt;P&gt;    DESCRIBE TABLE gt_change_mskah LINES gv_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF gv_lines GT 0.&lt;/P&gt;&lt;P&gt;      UPDATE zmm_mskah FROM TABLE gt_change_mskah.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;        RAISE save_failed.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " update_mskah&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  check_back_posting&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM check_back_posting USING pv_datum LIKE sy-datum&lt;/P&gt;&lt;P&gt;                              pv_werks TYPE werks_d&lt;/P&gt;&lt;P&gt;                     CHANGING pv_subrc LIKE sy-subrc.&lt;/P&gt;&lt;P&gt;  DATA: diff_perio TYPE i,&lt;/P&gt;&lt;P&gt;        curr_year  LIKE marv-lfgja,&lt;/P&gt;&lt;P&gt;        curr_month LIKE marv-lfmon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- default error unless otherwise&lt;/P&gt;&lt;P&gt;  pv_subrc = 4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- get the previous posting period from material control&lt;/P&gt;&lt;P&gt;  SELECT SINGLE a&lt;SUB&gt;vmgja a&lt;/SUB&gt;vmmon INTO (curr_year,curr_month)&lt;/P&gt;&lt;P&gt;    FROM marv AS a JOIN t001k AS b&lt;/P&gt;&lt;P&gt;      ON a&lt;SUB&gt;bukrs EQ b&lt;/SUB&gt;bukrs&lt;/P&gt;&lt;P&gt;                   JOIN t001w AS c&lt;/P&gt;&lt;P&gt;      ON b&lt;SUB&gt;bwkey EQ c&lt;/SUB&gt;bwkey&lt;/P&gt;&lt;P&gt;   WHERE c~werks EQ pv_werks&lt;/P&gt;&lt;P&gt;     AND a~xruem EQ 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- start addition by tehbm 29/11/03&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; do not update history table if posting period is the same as&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; current period&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF curr_year EQ pv_datum(4) AND&lt;/P&gt;&lt;P&gt;     curr_month EQ pv_datum+4(2).&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- calculate the difference&lt;/P&gt;&lt;P&gt;  COMPUTE diff_perio = ( ( ( curr_year - pv_datum+00(04) ) * 12 )&lt;/P&gt;&lt;P&gt;                         + curr_month ) - pv_datum+04(02).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF diff_perio EQ 0 OR&lt;/P&gt;&lt;P&gt;     diff_perio EQ 1.&lt;/P&gt;&lt;P&gt;    pv_subrc = 0.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " check_back_posting&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Dec 2005 07:08:36 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076029#M96316</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-12-05T07:08:36Z</dc:date>
    </item>
    <item>
      <title>Re: Not Updating Customized Table when System having Performance Issue</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076030#M96317</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Can you Check &amp;lt;b&amp;gt;Sy-subrc&amp;lt;/b&amp;gt; after insert and then say &amp;lt;b&amp;gt;commit work&amp;lt;/b&amp;gt;.&lt;/P&gt;&lt;P&gt;and what are the key fields in ztable.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards&lt;/P&gt;&lt;P&gt;vijay&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Dec 2005 07:16:08 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076030#M96317</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-12-05T07:16:08Z</dc:date>
    </item>
    <item>
      <title>Re: Not Updating Customized Table when System having Performance Issue</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076031#M96318</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Vijay,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We use the same key fields as standard SAP.&lt;/P&gt;&lt;P&gt;E.g ZMM_MCHB will be using same Key Field as MCHB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In this case, they are as follows.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MANDT&lt;/P&gt;&lt;P&gt;MATNR&lt;/P&gt;&lt;P&gt;WERKS&lt;/P&gt;&lt;P&gt;LGORT&lt;/P&gt;&lt;P&gt;CHARG&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Dec 2005 07:33:06 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076031#M96318</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-12-05T07:33:06Z</dc:date>
    </item>
    <item>
      <title>Re: Not Updating Customized Table when System having Performance Issue</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076032#M96319</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Check all keys are holding values,and try to check sy-subrc after insert.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards&lt;/P&gt;&lt;P&gt;vijay&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Dec 2005 07:38:14 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076032#M96319</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-12-05T07:38:14Z</dc:date>
    </item>
    <item>
      <title>Re: Not Updating Customized Table when System having Performance Issue</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076033#M96320</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Vijay,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We've actually coded the error checking as below. Please give us your comment. Thanks&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INSERT zmm_mskah FROM TABLE gt_new_mskah. "tehbm&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;RAISE save_failed.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;&lt;P&gt;Leonard&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Dec 2005 08:18:05 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076033#M96320</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-12-05T08:18:05Z</dc:date>
    </item>
    <item>
      <title>Re: Not Updating Customized Table when System having Performance Issue</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076034#M96321</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;yeah it is fine..&lt;/P&gt;&lt;P&gt;are you able to capture sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards&lt;/P&gt;&lt;P&gt;vijay&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Dec 2005 08:20:48 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-updating-customized-table-when-system-having-performance-issue/m-p/1076034#M96321</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-12-05T08:20:48Z</dc:date>
    </item>
  </channel>
</rss>

