<?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: Hi in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/hi/m-p/2850301#M667901</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for response.&lt;/P&gt;&lt;P&gt;I dont have the complete code right now. And I used another loop to summarize for each month and another loop for concatenation.&lt;/P&gt;&lt;P&gt;Please let me know if this is ok. thanks a lot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  ZSENTEST1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : It_vbak like vbak OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;data : it_vbap like vbap OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;data : begin of it_vbak_vbap ,&lt;/P&gt;&lt;P&gt;       vbak1 like vbak,&lt;/P&gt;&lt;P&gt;       vbap1 like vbap,&lt;/P&gt;&lt;P&gt;      END OF it_vbak_vbap.&lt;/P&gt;&lt;P&gt;data : begin of it_tol occurs 0   ,&lt;/P&gt;&lt;P&gt;       matnr like vbap-matnr,&lt;/P&gt;&lt;P&gt;       vbeln like vbak-vbeln,&lt;/P&gt;&lt;P&gt;       vkorg like vbak-vkorg,&lt;/P&gt;&lt;P&gt;       werks like vbap-werks,&lt;/P&gt;&lt;P&gt;       auart like vbak-auart,&lt;/P&gt;&lt;P&gt;       kunnr like vbak-kunnr,&lt;/P&gt;&lt;P&gt;       erdat like vbak-erdat,&lt;/P&gt;&lt;P&gt;       vtweg like vbak-vtweg,&lt;/P&gt;&lt;P&gt;       pstyv like vbap-pstyv,&lt;/P&gt;&lt;P&gt;       lfrel like vbap-lfrel,&lt;/P&gt;&lt;P&gt;     END OF it_tol.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : wa_vbak like line of it_vbak.&lt;/P&gt;&lt;P&gt;DATA : wa_vbap like line of it_vbap.&lt;/P&gt;&lt;P&gt;data : wa_tol like LINE OF it_tol.&lt;/P&gt;&lt;P&gt;data  : lowdate like vbap-erdat.&lt;/P&gt;&lt;P&gt;data :  datechar(8) type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;lowdate = SY-DATUM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RE_ADD_MONTH_TO_DATE'&lt;/P&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;P&gt;          MONTHS = '-24'&lt;/P&gt;&lt;P&gt;          OLDDATE = lowdate&lt;/P&gt;&lt;P&gt;   IMPORTING&lt;/P&gt;&lt;P&gt;          NEWDATE = lowdate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; write : / lowdate , ' function - lowdate'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;move lowdate to datechar.&lt;/P&gt;&lt;P&gt;move 0 to lowdate.&lt;/P&gt;&lt;P&gt;move datechar to lowdate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*s_erdat-low = lowdate.&lt;/P&gt;&lt;P&gt;*s_erdat-high = sy-datum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-SCREEN begin of block b1 with frame title text-002.&lt;/P&gt;&lt;P&gt;select-options s_vkorg for it_vbak-vkorg  DEFAULT '1000' to 'zzzzz'.&lt;/P&gt;&lt;P&gt;select-options s_auart for  it_vbak-auart.&lt;/P&gt;&lt;P&gt;select-options s_erdat for  it_vbak-erdat. " DEFAULT  lowdate to sy-datum. "&lt;/P&gt;&lt;P&gt;select-options s_kunnr for it_vbak-kunnr.&lt;/P&gt;&lt;P&gt;select-options s_vtweg for It_vbak-vtweg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select-options s_pstyv for it_tol-pstyv.&lt;/P&gt;&lt;P&gt;PARAMETERS : s_lfrel like it_tol-lfrel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; selection-SCREEN end of BLOCK b1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;*if s_erdat is INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;*  s_erdat-high = sy-datum.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  s_erdat-low = sy-datum - 730.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if s_erdat is INITIAL.&lt;/P&gt;&lt;P&gt;  s_erdat-high = sy-datum.&lt;/P&gt;&lt;P&gt;  move lowdate to s_erdat-low.&lt;/P&gt;&lt;P&gt;  write : / s_erdat-low.&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;Select * from vbak into table it_vbak WHERE&lt;/P&gt;&lt;P&gt;               vkorg in s_vkorg&lt;/P&gt;&lt;P&gt;            and   auart in s_auart&lt;/P&gt;&lt;P&gt;            and kunnr in s_kunnr&lt;/P&gt;&lt;P&gt;            and erdat BETWEEN s_erdat-low and s_erdat-high&lt;/P&gt;&lt;P&gt;            AND vtweg  in s_vtweg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select * from vbap into table it_vbap&lt;/P&gt;&lt;P&gt;    for all entries in it_vbak&lt;/P&gt;&lt;P&gt;    where vbeln = it_vbak-vbeln&lt;/P&gt;&lt;P&gt;    and pstyv in s_pstyv&lt;/P&gt;&lt;P&gt;    and lfrel = s_lfrel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    loop at it_vbak into wa_vbak.&lt;/P&gt;&lt;P&gt;      read table it_vbap into wa_vbap with key vbeln = wa_vbak-vbeln .&lt;/P&gt;&lt;P&gt;      wa_tol-vbeln = wa_vbak-vbeln.&lt;/P&gt;&lt;P&gt;      wa_tol-vkorg = wa_vbak-vkorg.&lt;/P&gt;&lt;P&gt;      wa_tol-werks = wa_vbap-werks.&lt;/P&gt;&lt;P&gt;      wa_tol-auart = wa_vbak-auart.&lt;/P&gt;&lt;P&gt;      wa_tol-kunnr = wa_vbak-kunnr.&lt;/P&gt;&lt;P&gt;      wa_tol-erdat = wa_vbak-erdat.&lt;/P&gt;&lt;P&gt;      wa_tol-vtweg = wa_vbak-vtweg.&lt;/P&gt;&lt;P&gt;      wa_tol-matnr = wa_vbap-matnr.&lt;/P&gt;&lt;P&gt;      wa_tol-pstyv = wa_vbap-pstyv.&lt;/P&gt;&lt;P&gt;      wa_tol-lfrel = wa_vbap-lfrel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      append wa_tol to it_tol.&lt;/P&gt;&lt;P&gt;      endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; sort it_tol by vkorg werks ascending erdat descending.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : mat11 like vbap-matnr,&lt;/P&gt;&lt;P&gt;       plt1 like vbap-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; loop at it_tol to 1.&lt;/P&gt;&lt;P&gt;  write : /   it_tol-vkorg under 'it_tol-vkorg'&lt;/P&gt;&lt;P&gt;  ,  it_tol-werks, it_tol-auart, it_tol-kunnr ,&lt;/P&gt;&lt;P&gt;        it_tol-erdat , it_tol-pstyv , it_tol-lfrel .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  mat11 = it_tol-matnr.&lt;/P&gt;&lt;P&gt;  plt1 = it_tol-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="8" type="ul"&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 23 Sep 2007 17:23:30 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-09-23T17:23:30Z</dc:date>
    <item>
      <title>Hi</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/hi/m-p/2850299#M667899</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I need your help to get a output report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Report is for each material and plant for last 24 months to come in one line. same mat next plant for 24 months shd come in next line. like that for each material and plant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am able to derive a code &lt;/P&gt;&lt;P&gt;mat  plant sales ......date&lt;/P&gt;&lt;P&gt;x......1       ......12              ......12-09-2007&lt;/P&gt;&lt;P&gt;x......     1          ......9              ......10-08-2007&lt;/P&gt;&lt;P&gt;x......     1          ......9......              10-08-2006&lt;/P&gt;&lt;P&gt;x......     1  ......        9......              10-11-2005&lt;/P&gt;&lt;P&gt;y......     1          ......9              ......10-11-2006&lt;/P&gt;&lt;P&gt;y......     1        ......  9 ......             10-10-2006&lt;/P&gt;&lt;P&gt;y......     1          ......9      ......        10-6-2006&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want to summerize and print each mat/ plant in a single line&lt;/P&gt;&lt;P&gt;cur date = sep 2007&lt;/P&gt;&lt;P&gt;mat plant    9/7     8/7 7/7  6/6 5/7 4/7 ....... 9/5 &lt;/P&gt;&lt;P&gt;x     1          12     9    -- -- -- -- -- -- -- -- -- -- --- --- -- -- -- --&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if there is no value I need to insert a comma  and the lenght is always 24 + 2 whether the values are there or not. 24 for sales of last 24 months and 2 is mat and plant&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I need to write a code&lt;/P&gt;&lt;P&gt;appreciate your quick response&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Senthil&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 23 Sep 2007 16:09:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/hi/m-p/2850299#M667899</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-23T16:09:09Z</dc:date>
    </item>
    <item>
      <title>Re: Hi</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/hi/m-p/2850300#M667900</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Easy my friend,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just use AT END Operator for ur Material to summarize.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If u want the code then send me ur code then i can do some changes in ur finalitab then return it to u &lt;SPAN __jive_emoticon_name="happy"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Usman Malik&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 23 Sep 2007 17:13:06 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/hi/m-p/2850300#M667900</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-23T17:13:06Z</dc:date>
    </item>
    <item>
      <title>Re: Hi</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/hi/m-p/2850301#M667901</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for response.&lt;/P&gt;&lt;P&gt;I dont have the complete code right now. And I used another loop to summarize for each month and another loop for concatenation.&lt;/P&gt;&lt;P&gt;Please let me know if this is ok. thanks a lot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  ZSENTEST1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : It_vbak like vbak OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;data : it_vbap like vbap OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;data : begin of it_vbak_vbap ,&lt;/P&gt;&lt;P&gt;       vbak1 like vbak,&lt;/P&gt;&lt;P&gt;       vbap1 like vbap,&lt;/P&gt;&lt;P&gt;      END OF it_vbak_vbap.&lt;/P&gt;&lt;P&gt;data : begin of it_tol occurs 0   ,&lt;/P&gt;&lt;P&gt;       matnr like vbap-matnr,&lt;/P&gt;&lt;P&gt;       vbeln like vbak-vbeln,&lt;/P&gt;&lt;P&gt;       vkorg like vbak-vkorg,&lt;/P&gt;&lt;P&gt;       werks like vbap-werks,&lt;/P&gt;&lt;P&gt;       auart like vbak-auart,&lt;/P&gt;&lt;P&gt;       kunnr like vbak-kunnr,&lt;/P&gt;&lt;P&gt;       erdat like vbak-erdat,&lt;/P&gt;&lt;P&gt;       vtweg like vbak-vtweg,&lt;/P&gt;&lt;P&gt;       pstyv like vbap-pstyv,&lt;/P&gt;&lt;P&gt;       lfrel like vbap-lfrel,&lt;/P&gt;&lt;P&gt;     END OF it_tol.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : wa_vbak like line of it_vbak.&lt;/P&gt;&lt;P&gt;DATA : wa_vbap like line of it_vbap.&lt;/P&gt;&lt;P&gt;data : wa_tol like LINE OF it_tol.&lt;/P&gt;&lt;P&gt;data  : lowdate like vbap-erdat.&lt;/P&gt;&lt;P&gt;data :  datechar(8) type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;lowdate = SY-DATUM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RE_ADD_MONTH_TO_DATE'&lt;/P&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;P&gt;          MONTHS = '-24'&lt;/P&gt;&lt;P&gt;          OLDDATE = lowdate&lt;/P&gt;&lt;P&gt;   IMPORTING&lt;/P&gt;&lt;P&gt;          NEWDATE = lowdate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; write : / lowdate , ' function - lowdate'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;move lowdate to datechar.&lt;/P&gt;&lt;P&gt;move 0 to lowdate.&lt;/P&gt;&lt;P&gt;move datechar to lowdate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*s_erdat-low = lowdate.&lt;/P&gt;&lt;P&gt;*s_erdat-high = sy-datum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-SCREEN begin of block b1 with frame title text-002.&lt;/P&gt;&lt;P&gt;select-options s_vkorg for it_vbak-vkorg  DEFAULT '1000' to 'zzzzz'.&lt;/P&gt;&lt;P&gt;select-options s_auart for  it_vbak-auart.&lt;/P&gt;&lt;P&gt;select-options s_erdat for  it_vbak-erdat. " DEFAULT  lowdate to sy-datum. "&lt;/P&gt;&lt;P&gt;select-options s_kunnr for it_vbak-kunnr.&lt;/P&gt;&lt;P&gt;select-options s_vtweg for It_vbak-vtweg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select-options s_pstyv for it_tol-pstyv.&lt;/P&gt;&lt;P&gt;PARAMETERS : s_lfrel like it_tol-lfrel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; selection-SCREEN end of BLOCK b1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;*if s_erdat is INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;*  s_erdat-high = sy-datum.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  s_erdat-low = sy-datum - 730.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if s_erdat is INITIAL.&lt;/P&gt;&lt;P&gt;  s_erdat-high = sy-datum.&lt;/P&gt;&lt;P&gt;  move lowdate to s_erdat-low.&lt;/P&gt;&lt;P&gt;  write : / s_erdat-low.&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;Select * from vbak into table it_vbak WHERE&lt;/P&gt;&lt;P&gt;               vkorg in s_vkorg&lt;/P&gt;&lt;P&gt;            and   auart in s_auart&lt;/P&gt;&lt;P&gt;            and kunnr in s_kunnr&lt;/P&gt;&lt;P&gt;            and erdat BETWEEN s_erdat-low and s_erdat-high&lt;/P&gt;&lt;P&gt;            AND vtweg  in s_vtweg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select * from vbap into table it_vbap&lt;/P&gt;&lt;P&gt;    for all entries in it_vbak&lt;/P&gt;&lt;P&gt;    where vbeln = it_vbak-vbeln&lt;/P&gt;&lt;P&gt;    and pstyv in s_pstyv&lt;/P&gt;&lt;P&gt;    and lfrel = s_lfrel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    loop at it_vbak into wa_vbak.&lt;/P&gt;&lt;P&gt;      read table it_vbap into wa_vbap with key vbeln = wa_vbak-vbeln .&lt;/P&gt;&lt;P&gt;      wa_tol-vbeln = wa_vbak-vbeln.&lt;/P&gt;&lt;P&gt;      wa_tol-vkorg = wa_vbak-vkorg.&lt;/P&gt;&lt;P&gt;      wa_tol-werks = wa_vbap-werks.&lt;/P&gt;&lt;P&gt;      wa_tol-auart = wa_vbak-auart.&lt;/P&gt;&lt;P&gt;      wa_tol-kunnr = wa_vbak-kunnr.&lt;/P&gt;&lt;P&gt;      wa_tol-erdat = wa_vbak-erdat.&lt;/P&gt;&lt;P&gt;      wa_tol-vtweg = wa_vbak-vtweg.&lt;/P&gt;&lt;P&gt;      wa_tol-matnr = wa_vbap-matnr.&lt;/P&gt;&lt;P&gt;      wa_tol-pstyv = wa_vbap-pstyv.&lt;/P&gt;&lt;P&gt;      wa_tol-lfrel = wa_vbap-lfrel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      append wa_tol to it_tol.&lt;/P&gt;&lt;P&gt;      endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; sort it_tol by vkorg werks ascending erdat descending.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : mat11 like vbap-matnr,&lt;/P&gt;&lt;P&gt;       plt1 like vbap-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; loop at it_tol to 1.&lt;/P&gt;&lt;P&gt;  write : /   it_tol-vkorg under 'it_tol-vkorg'&lt;/P&gt;&lt;P&gt;  ,  it_tol-werks, it_tol-auart, it_tol-kunnr ,&lt;/P&gt;&lt;P&gt;        it_tol-erdat , it_tol-pstyv , it_tol-lfrel .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  mat11 = it_tol-matnr.&lt;/P&gt;&lt;P&gt;  plt1 = it_tol-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="8" type="ul"&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 23 Sep 2007 17:23:30 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/hi/m-p/2850301#M667901</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-23T17:23:30Z</dc:date>
    </item>
    <item>
      <title>Re: Hi</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/hi/m-p/2850302#M667902</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I will be able to get a sum of all the months or the days. But can you let me how it can be feasible to summarize and display each mat / plant in one line with last 24 months. then another line for another plant. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks a lot.&lt;/P&gt;&lt;P&gt;Senthil&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 23 Sep 2007 21:52:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/hi/m-p/2850302#M667902</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-23T21:52:24Z</dc:date>
    </item>
    <item>
      <title>Re: Hi</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/hi/m-p/2850303#M667903</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am getting error in a loop while concatination. Instead of getting 24 coma's I am getting around 32 comas. Can you please figure my error.  please see below for the program code. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;SEnthil&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT ZSENddd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES : VBAK,&lt;/P&gt;&lt;P&gt;         VBAP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF I_REPORT_VBAK OCCURS 0,&lt;/P&gt;&lt;P&gt;        VKORG LIKE VBAK-VKORG,  " SALES ORG&lt;/P&gt;&lt;P&gt;        AUART LIKE VBAK-AUART,  " SALES ORDER TYPE&lt;/P&gt;&lt;P&gt;        ERDAT LIKE VBAK-ERDAT,  " CREATION DATE ( RECORD WAS CREATED)&lt;/P&gt;&lt;P&gt;        KUNNR LIKE VBAK-KUNNR,  " SOLD TO PARTY&lt;/P&gt;&lt;P&gt;        VTWEG LIKE VBAK-VTWEG,  " DISTRIBUTION&lt;/P&gt;&lt;P&gt;        VBELN LIKE VBAK-VBELN,  " SALES DOCUMENT&lt;/P&gt;&lt;P&gt;        SPART LIKE VBAK-SPART.  " DIVISION&lt;/P&gt;&lt;P&gt;DATA: END OF I_REPORT_VBAK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF I_REPORT_VBAP OCCURS 0,&lt;/P&gt;&lt;P&gt;        MATNR LIKE VBAP-MATNR,&lt;/P&gt;&lt;P&gt;        WERKS LIKE VBAP-WERKS,&lt;/P&gt;&lt;P&gt;        ABGRU LIKE VBAP-ABGRU,&lt;/P&gt;&lt;P&gt;        LFREL LIKE VBAP-LFREL,&lt;/P&gt;&lt;P&gt;        ERDAT LIKE VBAP-ERDAT,&lt;/P&gt;&lt;P&gt;        PSTYV LIKE VBAP-PSTYV,   " ITEM CATEGORY&lt;/P&gt;&lt;P&gt;        VBELN LIKE VBAP-VBELN.&lt;/P&gt;&lt;P&gt;DATA: END OF I_REPORT_VBAP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF ITAB1 OCCURS 0,&lt;/P&gt;&lt;P&gt;      MATNR           LIKE VBAP-MATNR,   " MATERIAL&lt;/P&gt;&lt;P&gt;      WERKS           LIKE VBAP-WERKS,   " PLANT&lt;/P&gt;&lt;P&gt;      KWMENG          LIKE VBAP-KWMENG,  " CUM. ORDER QTY IN SALES UNITS&lt;/P&gt;&lt;P&gt;      VBELN           LIKE VBAK-VBELN,           "SALES ORDER NO&lt;/P&gt;&lt;P&gt;      VBTYP           LIKE VBAK-VBTYP,&lt;/P&gt;&lt;P&gt;      ERDAT           LIKE  VBAK-ERDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: END OF ITAB1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : IT_VBAK LIKE VBAK OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA : IT_VBAP LIKE VBAP OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : NUMBER1 TYPE NUM5,&lt;/P&gt;&lt;P&gt;       NUMBER2 TYPE NUM5,&lt;/P&gt;&lt;P&gt;       DATECHAR(3) TYPE C,&lt;/P&gt;&lt;P&gt;       CHAR8    TYPE CHAR8,&lt;/P&gt;&lt;P&gt;       CHAR2    TYPE CHAR2,&lt;/P&gt;&lt;P&gt;       YRS      TYPE NUM2 . " CHANGED FROM CHAR2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : ITAB2 LIKE ITAB1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : TESTVBAK LIKE VBAK OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA : TESTVBAP LIKE VBAP OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : CDATE(8) TYPE C,&lt;/P&gt;&lt;P&gt;       ERDAT1(8) TYPE C,&lt;/P&gt;&lt;P&gt;       MONTH2(2) TYPE C.&lt;/P&gt;&lt;P&gt;DATA : CDATE1(8) TYPE C.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : SALES_QUANTITY TYPE I,&lt;/P&gt;&lt;P&gt;       COUNT TYPE I.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF IT_TOL OCCURS 0 ,&lt;/P&gt;&lt;P&gt;        MATNR LIKE VBAP-MATNR,&lt;/P&gt;&lt;P&gt;        VBELN LIKE VBAK-VBELN,&lt;/P&gt;&lt;P&gt;        VBTYP LIKE VBAK-VBTYP,&lt;/P&gt;&lt;P&gt;        VKORG LIKE VBAK-VKORG,&lt;/P&gt;&lt;P&gt;        WERKS LIKE VBAP-WERKS,&lt;/P&gt;&lt;P&gt;        AUART LIKE VBAK-AUART,&lt;/P&gt;&lt;P&gt;        KUNNR LIKE VBAK-KUNNR,&lt;/P&gt;&lt;P&gt;        ERDAT LIKE VBAK-ERDAT,&lt;/P&gt;&lt;P&gt;        VTWEG LIKE VBAK-VTWEG,&lt;/P&gt;&lt;P&gt;        PSTYV LIKE VBAP-PSTYV,&lt;/P&gt;&lt;P&gt;        LFREL LIKE VBAP-LFREL,&lt;/P&gt;&lt;P&gt;        KWMENG LIKE VBAP-KWMENG,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        END OF IT_TOL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : WA_VBAK LIKE LINE OF IT_VBAK.&lt;/P&gt;&lt;P&gt;DATA : WA_VBAP LIKE LINE OF IT_VBAP.&lt;/P&gt;&lt;P&gt;DATA : WA_TOL LIKE LINE OF IT_TOL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF T_PSER,&lt;/P&gt;&lt;P&gt;  MAT   TYPE  VBAP-MATNR, " FOR MATERIAL&lt;/P&gt;&lt;P&gt;  PLNT TYPE VBAP-WERKS, " LOCATION&lt;/P&gt;&lt;P&gt;  IN_STOCKQTY  LIKE VBAP-KWMENG, " FOR DEMAND - VALUE&lt;/P&gt;&lt;P&gt;  IN_SUPP_CODE LIKE COUNT, " FOR COUNT OF VBAP RECORDS&lt;/P&gt;&lt;P&gt;  IN_CDATE     LIKE CDATE1, " MONTH&lt;/P&gt;&lt;P&gt;  IN_DIVIS     TYPE C, " FOR PLUS OR MINUS OF VBAP RECORDS&lt;/P&gt;&lt;P&gt;  YEAR         LIKE CHAR2,&lt;/P&gt;&lt;P&gt;END OF T_PSER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : GI_PSER  TYPE T_PSER  OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS: &amp;lt;GF_PSER&amp;gt; LIKE LINE OF GI_PSER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF FORFTP OCCURS 0,&lt;/P&gt;&lt;P&gt;  MAT   TYPE  VBAP-MATNR, " FOR MATERIAL&lt;/P&gt;&lt;P&gt;  PLNT TYPE VBAP-WERKS, " LOCATION&lt;/P&gt;&lt;P&gt;  IN_STOCKQTY  LIKE VBAP-KWMENG, " FOR DEMAND - VALUE&lt;/P&gt;&lt;P&gt;  IN_SUPP_CODE TYPE NUM2, " FOR COUNT OF VBAP RECORDS&lt;/P&gt;&lt;P&gt;  IN_CDATE     TYPE NUM2 ,  "CDATE1, " MONTH&lt;/P&gt;&lt;P&gt;  IN_DIVIS     TYPE C, " FOR PLUS OR MINUS OF VBAP RECORDS&lt;/P&gt;&lt;P&gt;  YEAR         TYPE NUM2,&lt;/P&gt;&lt;P&gt;END OF FORFTP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF FORMAT_DATA OCCURS 0,&lt;/P&gt;&lt;P&gt;        MAT        TYPE CHAR18,&lt;/P&gt;&lt;P&gt;        FILLER            TYPE CHAR1 VALUE ',',&lt;/P&gt;&lt;P&gt;        IN_STOCKIND       TYPE CHAR4,&lt;/P&gt;&lt;P&gt;        FILLER1           TYPE CHAR1 VALUE ',',&lt;/P&gt;&lt;P&gt;        DEMAND_SIGN       TYPE CHAR1 , " TO STORE + OR -&lt;/P&gt;&lt;P&gt;        IN_STOCKQTY       TYPE CHAR5,&lt;/P&gt;&lt;P&gt;        FILLER2           TYPE CHAR1 VALUE ',',&lt;/P&gt;&lt;P&gt;        IN_CDATE          TYPE CHAR3,&lt;/P&gt;&lt;P&gt;        FILLER3           TYPE CHAR1 VALUE ',',&lt;/P&gt;&lt;P&gt;        IN_SUPP_CODE      TYPE CHAR5,&lt;/P&gt;&lt;P&gt;       END OF FORMAT_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      DATA : MAT11 TYPE VBAP-MATNR,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      PLNT1 TYPE VBAP-WERKS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : MAT11(18) TYPE C, "VBAP-MATNR,&lt;/P&gt;&lt;P&gt;PLNT1(4) TYPE C. "VBAP-WERKS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : MON2 TYPE NUM2,&lt;/P&gt;&lt;P&gt;       CUR_YR TYPE NUM2,&lt;/P&gt;&lt;P&gt;       CUR_MON TYPE NUM2,&lt;/P&gt;&lt;P&gt;       CHARI8 TYPE CHAR8,&lt;/P&gt;&lt;P&gt;       CHARS8 TYPE CHAR8,&lt;/P&gt;&lt;P&gt;       BLANK1(5) TYPE C VALUE ' ',&lt;/P&gt;&lt;P&gt;       CHARS5 TYPE CHAR5,&lt;/P&gt;&lt;P&gt;       NUMS5  TYPE NUM5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF LP1,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       DS TYPE C,&lt;/P&gt;&lt;P&gt;       CT TYPE NUM2,&lt;/P&gt;&lt;P&gt;       END OF LP1,&lt;/P&gt;&lt;P&gt;       HOR_FILE TYPE CHAR128.                               "256.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF ITAB_LP OCCURS 0,&lt;/P&gt;&lt;P&gt;        LINS TYPE CHAR128,&lt;/P&gt;&lt;P&gt;        END OF ITAB_LP.&lt;/P&gt;&lt;P&gt;DATA : CAS(2) TYPE C  VALUE 'HI',&lt;/P&gt;&lt;P&gt;     FAS TYPE NUM2 VALUE 2.. "C VALUE 'BI'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF IT_VBAK_VBAP ,&lt;/P&gt;&lt;P&gt;        VBAK1 LIKE VBAK,&lt;/P&gt;&lt;P&gt;        VBAP1 LIKE VBAP,&lt;/P&gt;&lt;P&gt;        END OF IT_VBAK_VBAP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA :    C0(15) TYPE C,&lt;/P&gt;&lt;P&gt;           C6(15) TYPE C.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : TOTAL TYPE I.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*DATA : WA_VBAK LIKE LINE OF IT_VBAK.&lt;/P&gt;&lt;P&gt;*DATA : WA_VBAP LIKE LINE OF ITAB1.&lt;/P&gt;&lt;P&gt;*DATA : WA_TOL LIKE LINE OF IT_TOL.&lt;/P&gt;&lt;P&gt;DATA : LOWDATE LIKE VBAP-ERDAT.&lt;/P&gt;&lt;P&gt;DATA : DATECHAR8(8) TYPE C.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOWDATE = SY-DATUM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RE_ADD_MONTH_TO_DATE'&lt;/P&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;P&gt;          MONTHS  = '-24'&lt;/P&gt;&lt;P&gt;          OLDDATE = LOWDATE&lt;/P&gt;&lt;P&gt;     IMPORTING&lt;/P&gt;&lt;P&gt;          NEWDATE = LOWDATE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE : / LOWDATE , ' FUNCTION - LOWDATE'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE LOWDATE TO DATECHAR8.&lt;/P&gt;&lt;P&gt;MOVE 0 TO LOWDATE.&lt;/P&gt;&lt;P&gt;MOVE DATECHAR8 TO LOWDATE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*S_ERDAT-LOW = LOWDATE.&lt;/P&gt;&lt;P&gt;*S_ERDAT-HIGH = SY-DATUM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE&lt;/P&gt;&lt;P&gt;TEXT-002.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: S_VKORG FOR VBAK-VKORG.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: S_VTWEG FOR VBAK-VTWEG.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: S_SPART FOR VBAK-SPART. " AVAILABLE IN VBAP ALSO&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: S_AUART FOR VBAK-AUART .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN SKIP.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: S_PSTYV FOR VBAP-PSTYV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: S_KUNNR FOR VBAK-KUNNR.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: S_ERDAT FOR VBAK-ERDAT DEFAULT LOWDATE TO SY-DATUM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN SKIP.&lt;/P&gt;&lt;P&gt;PARAMETERS: P_OUTPUT(15) TYPE C OBLIGATORY DEFAULT&lt;/P&gt;&lt;P&gt; 'VCR440R3D' LOWER CASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK B1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;**SELECT MATNR WERKS ABGRU LFREL PSTYV VBELN FROM VBAP INTO&lt;/P&gt;&lt;P&gt;*CORRESPONDING&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;            FIELDS OF TABLE I_REPORT_VBAP WHERE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;            PSTYV IN S_PSTYV&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;            AND ABGRU IN S_ABGRU&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;            AND SPART IN S_SPART.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;*INITIALISATION. AND ASSIGN DEFAULT VALUES&lt;/P&gt;&lt;P&gt;*TESTVBAK LIKE VBAK OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if s_erdat is INITIAL.&lt;/P&gt;&lt;P&gt;s_erdat-high = sy-datum.&lt;/P&gt;&lt;P&gt;move lowdate to s_erdat-low.&lt;/P&gt;&lt;P&gt;write : / s_erdat-low.&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;SELECT T01&lt;SUB&gt;MATNR T01&lt;/SUB&gt;WERKS T01&lt;SUB&gt;KWMENG T01&lt;/SUB&gt;VBELN T02&lt;SUB&gt;VBTYP T02&lt;/SUB&gt;ERDAT&lt;/P&gt;&lt;P&gt;    INTO CORRESPONDING FIELDS OF TABLE ITAB1 FROM VBAP AS T01&lt;/P&gt;&lt;P&gt;    JOIN VBAK AS T02&lt;/P&gt;&lt;P&gt;    ON T01&lt;SUB&gt;VBELN EQ T02&lt;/SUB&gt;VBELN&lt;/P&gt;&lt;P&gt;    WHERE VKORG IN S_VKORG&lt;/P&gt;&lt;P&gt;        AND T02~AUART IN S_AUART&lt;/P&gt;&lt;P&gt;        AND T02~ERDAT IN S_ERDAT&lt;/P&gt;&lt;P&gt;        AND T02~KUNNR IN S_KUNNR&lt;/P&gt;&lt;P&gt;        AND T02~VTWEG IN S_VTWEG&lt;/P&gt;&lt;P&gt;        AND T02~SPART IN S_SPART&lt;/P&gt;&lt;P&gt;        AND T01~PSTYV IN S_PSTYV&lt;/P&gt;&lt;P&gt;        AND T01~ABGRU = ''&lt;/P&gt;&lt;P&gt;        AND T01~LFREL = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*IF S_ERDAT IS INITIAL.&lt;/P&gt;&lt;P&gt;*S_ERDAT-HIGH = SY-DATUM.&lt;/P&gt;&lt;P&gt;*MOVE LOWDATE TO S_ERDAT-LOW.&lt;/P&gt;&lt;P&gt;*WRITE : / S_ERDAT-LOW.&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;SELECT * FROM VBAK INTO TABLE IT_VBAK WHERE&lt;/P&gt;&lt;P&gt;        VKORG IN S_VKORG&lt;/P&gt;&lt;P&gt;        AND AUART IN S_AUART&lt;/P&gt;&lt;P&gt;        AND KUNNR IN S_KUNNR&lt;/P&gt;&lt;P&gt;        AND ERDAT BETWEEN S_ERDAT-LOW AND S_ERDAT-HIGH&lt;/P&gt;&lt;P&gt;        AND VTWEG IN S_VTWEG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE : / 'IT_VBAK LOOP'.&lt;/P&gt;&lt;P&gt;WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'IT_VBAK-VKORG' , 'IT_VBAK-AUART' ,' IT_VBAK-VTWEG',&lt;/P&gt;&lt;P&gt;'IT_VBAK-SPART',&lt;/P&gt;&lt;P&gt;'IT_VBAK-VBTYP','IT_VBAK-ERDAT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT IT_VBAK.&lt;/P&gt;&lt;P&gt;  WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; IT_VBAK-VKORG ,  IT_VBAK-AUART ,  IT_VBAK-VTWEG,&lt;/P&gt;&lt;P&gt;IT_VBAK-SPART,  IT_VBAK-VBTYP,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IT_VBAK-ERDAT.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE : / ' END OF IT_VBAK LOOP'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM VBAP INTO TABLE IT_VBAP&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN IT_VBAK&lt;/P&gt;&lt;P&gt;        WHERE VBELN = IT_VBAK-VBELN&lt;/P&gt;&lt;P&gt;        AND PSTYV IN S_PSTYV&lt;/P&gt;&lt;P&gt;        AND ABGRU  = ''&lt;/P&gt;&lt;P&gt;        AND LFREL = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE : / 'VBAP LOOP'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT IT_VBAP.&lt;/P&gt;&lt;P&gt;  WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt;  IT_VBAP-WERKS , IT_VBAP-KWMENG , IT_VBAP-ERDAT.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT IT_VBAK INTO WA_VBAK.&lt;/P&gt;&lt;P&gt;  READ TABLE IT_VBAP INTO WA_VBAP WITH KEY VBELN = WA_VBAK-VBELN .&lt;/P&gt;&lt;P&gt;  WA_TOL-WERKS = WA_VBAP-WERKS.&lt;/P&gt;&lt;P&gt;  WA_TOL-MATNR = WA_VBAP-MATNR.&lt;/P&gt;&lt;P&gt;  WA_TOL-PSTYV = WA_VBAP-PSTYV.&lt;/P&gt;&lt;P&gt;  WA_TOL-LFREL = WA_VBAP-LFREL.&lt;/P&gt;&lt;P&gt;  WA_TOL-KWMENG = WA_vbap-KWMENG.&lt;/P&gt;&lt;P&gt;  WA_TOL-VBELN = WA_VBAK-VBELN.&lt;/P&gt;&lt;P&gt;  WA_TOL-VKORG = WA_VBAK-VKORG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WA_TOL-AUART = WA_VBAK-AUART.&lt;/P&gt;&lt;P&gt;  WA_TOL-KUNNR = WA_VBAK-KUNNR.&lt;/P&gt;&lt;P&gt;  WA_TOL-ERDAT = WA_VBAK-ERDAT.&lt;/P&gt;&lt;P&gt;  WA_TOL-VTWEG = WA_VBAK-VTWEG.&lt;/P&gt;&lt;P&gt;  WA_TOL-VBTYP = WA_VBAK-VBTYP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND WA_TOL TO IT_TOL.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SORT IT_TOL BY VKORG WERKS ASCENDING ERDAT DESCENDING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;write : / ' start of it_tol'.&lt;/P&gt;&lt;P&gt;LOOP AT IT_TOL.&lt;/P&gt;&lt;P&gt;  WRITE : / 'VBELN' , IT_TOL-VBELN , 'VKROG' ,IT_TOL-VKORG, 'WERKS' ,&lt;/P&gt;&lt;P&gt;  IT_TOL-WERKS, 'AUART' ,IT_TOL-AUART, 'KUNNR',&lt;/P&gt;&lt;P&gt;       IT_TOL-KUNNR , 'ERDAT' , IT_TOL-ERDAT, 'VTWEG' , IT_TOL-VTWEG ,&lt;/P&gt;&lt;P&gt;  'MATNR' , IT_TOL-MATNR , 'PSTYV' ,&lt;/P&gt;&lt;P&gt;       IT_TOL-PSTYV , 'LFREL' ,IT_TOL-LFREL , 'VBTYP' , IT_TOL-VBTYP,&lt;/P&gt;&lt;P&gt;'kwmeng' , it_tol-kwmeng.&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;write : / ' end of it_tol'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT  * FROM VBAK INTO CORRESPONDING FIELDS OF  ITAB1&lt;/P&gt;&lt;P&gt;          WHERE VKORG IN S_VKORG&lt;/P&gt;&lt;P&gt;           AND  AUART IN S_AUART&lt;/P&gt;&lt;P&gt;           AND  ERDAT IN S_ERDAT&lt;/P&gt;&lt;P&gt;           AND  KUNNR IN S_KUNNR&lt;/P&gt;&lt;P&gt;           AND  VTWEG IN S_VTWEG&lt;/P&gt;&lt;P&gt;           AND  SPART IN S_SPART .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SORT ITAB1  BY MATNR WERKS ASCENDING ERDAT DESCENDING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT IT_TOL from 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MOVE IT_TOL-ERDAT TO CHAR8.&lt;/P&gt;&lt;P&gt;      SHIFT CHAR8 RIGHT BY 4 PLACES.&lt;/P&gt;&lt;P&gt;      MOVE CHAR8 TO YRS. " YRS WILL CONTAIN YEAR&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MOVE IT_TOL-ERDAT TO ERDAT1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SHIFT ERDAT1   BY 4 PLACES.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      SHIFT ERDAT1   right BY 2 PLACES.&lt;/P&gt;&lt;P&gt;      shift erdat1 left by 2 places.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE ERDAT1 TO MONTH2.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE MONTH2 TO CDATE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      move erdat1 to cdate.&lt;/P&gt;&lt;P&gt;*write : / yrs, ' yrs' , cdate , 'cdate'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF CDATE &amp;lt;&amp;gt; CDATE1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    GI_PSER-MAT = ITAB2-MATNR.&lt;/P&gt;&lt;P&gt;    GI_PSER-PLNT =  ITAB2-WERKS.&lt;/P&gt;&lt;P&gt;    MOVE SALES_QUANTITY TO GI_PSER-IN_STOCKQTY .&lt;/P&gt;&lt;P&gt;    MOVE CDATE1 TO GI_PSER-IN_CDATE.&lt;/P&gt;&lt;P&gt;    GI_PSER-YEAR = CHAR2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          GI_PSER-IN_STOCKQTY = SALES_QUANTITY.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          GI_PSER-IN_CDATE =  CDATE1 .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    GI_PSER-IN_SUPP_CODE = COUNT.&lt;/P&gt;&lt;P&gt;    IF GI_PSER-IN_STOCKQTY &amp;lt; 0.&lt;/P&gt;&lt;P&gt;      GI_PSER-IN_DIVIS = '-'.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      GI_PSER-IN_DIVIS = '+'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    APPEND GI_PSER.&lt;/P&gt;&lt;P&gt;******&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WRITE : / GI_PSER-MAT, GI_PSER-PLNT, GI_PSER-IN_STOCKQTY,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    GI_PSER-IN_SUPP_CODE , ' CDATE' ,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GI_PSER-IN_CDATE , GI_PSER-IN_DIVIS, 'YEAR ' ,GI_PSER-YEAR.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;******&lt;/P&gt;&lt;P&gt;    CLEAR  GI_PSER.&lt;/P&gt;&lt;P&gt;******&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WRITE : / GI_PSER-MAT, GI_PSER-PLNT, GI_PSER-IN_STOCKQTY,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    GI_PSER-IN_SUPP_CODE , ' CDATE' ,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GI_PSER-IN_CDATE , GI_PSER-IN_DIVIS, 'YEAR ' ,GI_PSER-YEAR.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;******&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE SALES_QUANTITY TO TOTAL.&lt;/P&gt;&lt;P&gt;    MOVE 0 TO SALES_QUANTITY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF IT_TOL-VBTYP = 'C'.&lt;/P&gt;&lt;P&gt;      SALES_QUANTITY = SALES_QUANTITY + IT_TOL-KWMENG .&lt;/P&gt;&lt;P&gt;      MOVE 1 TO COUNT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSEIF IT_TOL-VBTYP = 'H'.&lt;/P&gt;&lt;P&gt;      SALES_QUANTITY = SALES_QUANTITY - IT_TOL-KWMENG .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               MOVE -1 TO COUNT.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      MOVE 1 TO COUNT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    MOVE IT_TOL-MATNR TO ITAB2-MATNR.&lt;/P&gt;&lt;P&gt;    MOVE IT_TOL-WERKS TO ITAB2-WERKS.&lt;/P&gt;&lt;P&gt;    MOVE IT_TOL-VBTYP TO ITAB2-VBTYP.&lt;/P&gt;&lt;P&gt;    MOVE SALES_QUANTITY TO ITAB2-KWMENG.&lt;/P&gt;&lt;P&gt;    MOVE SALES_QUANTITY TO TOTAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MOVE IT_TOL-MATNR TO ITAB2-MATNR.&lt;/P&gt;&lt;P&gt;    MOVE IT_TOL-WERKS TO ITAB2-WERKS.&lt;/P&gt;&lt;P&gt;    MOVE IT_TOL-VBTYP TO ITAB2-VBTYP.&lt;/P&gt;&lt;P&gt;    MOVE IT_TOL-KWMENG TO ITAB2-KWMENG.&lt;/P&gt;&lt;P&gt;    IF IT_TOL-VBTYP = 'C'.&lt;/P&gt;&lt;P&gt;      SALES_QUANTITY = SALES_QUANTITY + IT_TOL-KWMENG .&lt;/P&gt;&lt;P&gt;      COUNT = COUNT + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSEIF IT_TOL-VBTYP = 'H'.&lt;/P&gt;&lt;P&gt;      SALES_QUANTITY = SALES_QUANTITY - IT_TOL-KWMENG .&lt;/P&gt;&lt;P&gt;      COUNT = COUNT - 1.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ADDED WHEN THE LAST RECORD IS SAME.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    MOVE SALES_QUANTITY TO TOTAL.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; IT_TOL-MATNR  , IT_TOL-WERKS , IT_TOL-KWMENG , IT_TOL-VBTYP,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ERDAT1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  MOVE CDATE TO CDATE1.&lt;/P&gt;&lt;P&gt;  MOVE YRS TO CHAR2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP.    " *********END OF THE LOOP&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;GI_PSER-MAT = ITAB2-MATNR.&lt;/P&gt;&lt;P&gt;GI_PSER-PLNT =  ITAB2-WERKS.&lt;/P&gt;&lt;P&gt;MOVE TOTAL TO GI_PSER-IN_STOCKQTY .&lt;/P&gt;&lt;P&gt;MOVE CDATE TO GI_PSER-IN_CDATE.&lt;/P&gt;&lt;P&gt;GI_PSER-IN_SUPP_CODE = COUNT.&lt;/P&gt;&lt;P&gt;GI_PSER-YEAR = YRS.&lt;/P&gt;&lt;P&gt;IF GI_PSER-IN_STOCKQTY &amp;lt; 0.&lt;/P&gt;&lt;P&gt;  GI_PSER-IN_DIVIS = '-'.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;  GI_PSER-IN_DIVIS = '+'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;APPEND GI_PSER.&lt;/P&gt;&lt;P&gt;CLEAR  GI_PSER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WRITE : / 'START OF GI_PSER LOOP.'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : TEMPP1 TYPE I,&lt;/P&gt;&lt;P&gt;     TEMPP2 TYPE I,&lt;/P&gt;&lt;P&gt;     TEM1 TYPE I ,&lt;/P&gt;&lt;P&gt;     TEM2 TYPE I.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE : / 'GI_PSER LOOP'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT  GI_PSER FROM 2.&lt;/P&gt;&lt;P&gt;  WRITE : / GI_PSER-MAT, GI_PSER-PLNT, GI_PSER-IN_STOCKQTY,&lt;/P&gt;&lt;P&gt;     GI_PSER-IN_SUPP_CODE , ' CDATE' ,&lt;/P&gt;&lt;P&gt;   GI_PSER-IN_CDATE , GI_PSER-IN_DIVIS, 'YEAR ' ,GI_PSER-YEAR.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*WRITE : / 'FTP LOOP'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT GI_PSER FROM 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  MOVE GI_PSER-MAT TO FORFTP-MAT.&lt;/P&gt;&lt;P&gt;  MOVE GI_PSER-PLNT TO FORFTP-PLNT.&lt;/P&gt;&lt;P&gt;  MOVE GI_PSER-IN_STOCKQTY TO FORFTP-IN_STOCKQTY.&lt;/P&gt;&lt;P&gt;  MOVE GI_PSER-IN_SUPP_CODE TO FORFTP-IN_SUPP_CODE.&lt;/P&gt;&lt;P&gt;  MOVE GI_PSER-IN_CDATE     TO FORFTP-IN_CDATE.&lt;/P&gt;&lt;P&gt;  MOVE GI_PSER-IN_DIVIS    TO FORFTP-IN_DIVIS.&lt;/P&gt;&lt;P&gt;  MOVE GI_PSER-YEAR    TO FORFTP-YEAR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND FORFTP.&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;*WRITE : / 'FOR HOR_FILE'.&lt;/P&gt;&lt;P&gt;YRS = 0.&lt;/P&gt;&lt;P&gt;MON2 = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE IT_TOL-ERDAT TO CHARI8.&lt;/P&gt;&lt;P&gt;SHIFT CHARI8 BY 4 PLACES.&lt;/P&gt;&lt;P&gt;MOVE CHARI8 TO YRS. " YRS WILL CONTAIN YEAR&lt;/P&gt;&lt;P&gt;CUR_YR = YRS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   WRITE : / CUR_YR.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE SY-DATUM TO CHARS8.&lt;/P&gt;&lt;P&gt;SHIFT CHARS8 BY 4 PLACES.&lt;/P&gt;&lt;P&gt;MOVE CHARS8 TO MON2.&lt;/P&gt;&lt;P&gt;CUR_MON = MON2.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   WRITE : / CUR_MON.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   WRITE : / SY-DATUM.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : FNUMBER2 TYPE NUM2,&lt;/P&gt;&lt;P&gt;       FNUMBER3 TYPE NUM2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sort forftp by mat plnt ascending year in_cdate descending.&lt;/P&gt;&lt;P&gt; write : / ' for ftp loop'.&lt;/P&gt;&lt;P&gt;LOOP AT FORFTP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE : / FORFTP-MAT, FORFTP-PLNT, FORFTP-IN_STOCKQTY , FORFTP-IN_DIVIS&lt;/P&gt;&lt;P&gt;        , FORFTP-IN_SUPP_CODE , ' CDATE' , FORFTP-IN_CDATE ,&lt;/P&gt;&lt;P&gt;        'YEAR' , FORFTP-YEAR.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="8" type="ul"&gt;&lt;P&gt;FTP LOOOP.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*WRITE : / ' FTP LOOP'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***********INITIALIZE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;YRS = 0.&lt;/P&gt;&lt;P&gt;MON2 = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE SY-DATUM TO CHARI8.&lt;/P&gt;&lt;P&gt;SHIFT CHARI8 RIGHT BY 4 PLACES.&lt;/P&gt;&lt;P&gt;MOVE CHARI8 TO YRS. " YRS WILL CONTAIN YEAR&lt;/P&gt;&lt;P&gt;CUR_YR = YRS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE SY-DATUM TO CHARS8.&lt;/P&gt;&lt;P&gt;SHIFT CHARS8 RIGHT BY 2 PLACES.&lt;/P&gt;&lt;P&gt;MOVE CHARS8 TO MON2.&lt;/P&gt;&lt;P&gt;CUR_MON = MON2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : COMA TYPE C VALUE ',',&lt;/P&gt;&lt;P&gt;       TEMPMAT(18) TYPE C,&lt;/P&gt;&lt;P&gt;       TEMPMAT1(10) TYPE C,&lt;/P&gt;&lt;P&gt;       TEMPSTR TYPE STRING,&lt;/P&gt;&lt;P&gt;       L_LENGTH TYPE I,&lt;/P&gt;&lt;P&gt;       SIGNS TYPE C.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********&lt;STRONG&gt;MAIN PARA&lt;/STRONG&gt;********************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE : / ' MON2 ' , MON2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT FORFTP from 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF FORFTP-MAT = MAT11 AND FORFTP-PLNT = PLNT1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          WHILE FAS GT 1.           " setting a flag&lt;/P&gt;&lt;P&gt;            IF FORFTP-IN_CDATE = MON2 AND FORFTP-YEAR = YRS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;              MOVE FORFTP-IN_STOCKQTY TO NUMS5.&lt;/P&gt;&lt;P&gt;              MOVE NUMS5 TO CHARS5.&lt;/P&gt;&lt;P&gt;              MOVE FORFTP-IN_DIVIS TO SIGNS.&lt;/P&gt;&lt;P&gt;              CONCATENATE HOR_FILE  SIGNS CHARS5 COMA INTO HOR_FILE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           CONCATENATE HOR_FILE FORFTP-IN_DIVIS CHARS5 INTO HOR_FILE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;              FAS = FAS - 1. " MOVE CAS TO FAS.&lt;/P&gt;&lt;P&gt;            ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           CONCATENATE HOR_FILE COMA BLANK1 INTO HOR_FILE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            CONCATENATE HOR_FILE COMA INTO HOR_FILE.&lt;/P&gt;&lt;P&gt;            MON2 = MON2 - 1.&lt;/P&gt;&lt;P&gt;              IF MON2 = 0. YRS = YRS - 1.  MON2 = 12. ELSE. ENDIF.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDWHILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        FAS = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSE.   " FIRT IF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        MOVE HOR_FILE TO ITAB_LP-LINS.&lt;/P&gt;&lt;P&gt;        APPEND ITAB_LP.&lt;/P&gt;&lt;P&gt;        MAT11 =    FORFTP-MAT.&lt;/P&gt;&lt;P&gt;        PLNT1 =    FORFTP-PLNT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        MOVE CUR_YR TO YRS.&lt;/P&gt;&lt;P&gt;        MOVE CUR_MON TO MON2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        MOVE '' TO HOR_FILE.&lt;/P&gt;&lt;P&gt;        L_LENGTH = STRLEN( MAT11 ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF L_LENGTH &amp;gt; 10.&lt;/P&gt;&lt;P&gt;            MOVE MAT11 TO TEMPMAT.&lt;/P&gt;&lt;P&gt;            SHIFT  TEMPMAT BY 8 PLACES.&lt;/P&gt;&lt;P&gt;            MOVE TEMPMAT TO TEMPMAT1.&lt;/P&gt;&lt;P&gt;            MOVE TEMPMAT1 TO MAT11.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        WHILE L_LENGTH LT 10.&lt;/P&gt;&lt;P&gt;            L_LENGTH = L_LENGTH + 1.&lt;/P&gt;&lt;P&gt;            CONCATENATE MAT11 ' ' INTO MAT11.&lt;/P&gt;&lt;P&gt;        ENDWHILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           WHILE L-LENGTH&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         CONCATENATE MAT11 COMA PLNT1 INTO HOR_FILE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          MOVE MAT11 TO TEMPMAT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          SHIFT  TEMPMAT BY 8 PLACES.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          MOVE TEMPMAT TO TEMPMAT1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          MOVE TEMPMAT1 TO TEMPSTR.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         CONCATENATE TEMPSTR PLNT1 INTO HOR_FILE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     CONCATENATE MAT11 COMA PLNT1 coma INTO HOR_FILE.&lt;/P&gt;&lt;P&gt;        MAT11 =    FORFTP-MAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WHILE FAS GT 1 . "= CAS.&lt;/P&gt;&lt;P&gt;      IF FORFTP-IN_CDATE = MON2 AND FORFTP-YEAR = YRS.&lt;/P&gt;&lt;P&gt;        MOVE FORFTP-IN_STOCKQTY TO NUMS5.&lt;/P&gt;&lt;P&gt;        MOVE NUMS5 TO CHARS5.&lt;/P&gt;&lt;P&gt;        MOVE FORFTP-IN_DIVIS TO SIGNS.&lt;/P&gt;&lt;P&gt;        CONCATENATE HOR_FILE SIGNS CHARS5 COMA INTO HOR_FILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        FAS = FAS - 1. "MOVE CAS TO FAS.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        MON2 = MON2 - 1.&lt;/P&gt;&lt;P&gt;        IF MON2 = 0. YRS = YRS - 1.  MON2 = 12. ELSE. ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    CONCATENATE HOR_FILE COMA BLANK1 INTO HOR_FILE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CONCATENATE HOR_FILE COMA  INTO HOR_FILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDWHILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    FAS = 2.&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;**TO WRITE THE LAST REC.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;MOVE HOR_FILE TO ITAB_LP-LINS.&lt;/P&gt;&lt;P&gt;APPEND ITAB_LP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*WRITE : / ' START OF ITAB_LP-LINS'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT ITAB_LP.&lt;/P&gt;&lt;P&gt;  WRITE : / ITAB_LP-LINS.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*PERFORM SEND_TO_PSER .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*LOOP AT FORFTP.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF FORFTP-IN_CDATE = 06 AND FORFTP-YEAR = 06.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   WRITE : / FORFTP-MAT   , FORFTP-PLNT,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    FORFTP-IN_STOCKQTY , FORFTP-IN_SUPP_CODE, TEMPP1 , FORFTP-IN_DIVIS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    , TEMPP2.&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;   ELSE.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDLOOP.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT  GI_PSER FROM 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   WRITE : / GI_PSER-MAT, GI_PSER-PLNT,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            GI_PSER-IN_STOCKQTY, GI_PSER-IN_SUPP_CODE ,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           GI_PSER-IN_CDATE , GI_PSER-YEAR.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FORMAT_DATA-MAT     = GI_PSER-MAT.&lt;/P&gt;&lt;P&gt;  FORMAT_DATA-FILLER         = ','.&lt;/P&gt;&lt;P&gt;  FORMAT_DATA-IN_STOCKIND   = GI_PSER-PLNT.&lt;/P&gt;&lt;P&gt;  FORMAT_DATA-FILLER1         = ','.&lt;/P&gt;&lt;P&gt;  IF GI_PSER-IN_STOCKQTY GT 0.&lt;/P&gt;&lt;P&gt;    MOVE '+' TO FORMAT_DATA-DEMAND_SIGN.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MOVE '-' TO FORMAT_DATA-DEMAND_SIGN.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  MOVE GI_PSER-IN_STOCKQTY TO NUMBER1. "FORMAT_DATA-IN_STOCKQTY.&lt;/P&gt;&lt;P&gt;  MOVE NUMBER1 TO FORMAT_DATA-IN_STOCKQTY.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ASSIGN GI_PSER-IN_STOCKQTY TO FORMAT_DATA-IN_STOCKQTY.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  FORMAT_DATA-FILLER2         = ','.&lt;/P&gt;&lt;P&gt;  MOVE GI_PSER-IN_CDATE TO NUMBER2. "FORMAT_DATA-IN_CDATE.&lt;/P&gt;&lt;P&gt;  MOVE DATECHAR TO FORMAT_DATA-IN_CDATE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ASSIGN   GI_PSER-IN_CDATE TO FORMAT_DATA-IN_CDATE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  FORMAT_DATA-FILLER3         = ','.&lt;/P&gt;&lt;P&gt;  FORMAT_DATA-IN_SUPP_CODE  = GI_PSER-IN_SUPP_CODE.&lt;/P&gt;&lt;P&gt;  APPEND FORMAT_DATA.&lt;/P&gt;&lt;P&gt;  CLEAR FORMAT_DATA.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WRITE : / 'FORMAT DATA PARA'.&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; LOOP AT FORMAT_DATA.&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;   WRITE : /  FORMAT_DATA-MAT ,  FORMAT_DATA-FILLER ,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*FORMAT_DATA-IN_STOCKIND , FORMAT_DATA-FILLER1 ,FORMAT_DATA-DEMAND_SIGN&lt;/P&gt;&lt;P&gt;*,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; FORMAT_DATA-IN_STOCKQTY, FORMAT_DATA-FILLER2 , FORMAT_DATA-IN_CDATE ,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORMAT_DATA-FILLER3 ,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORMAT_DATA-IN_SUPP_CODE .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDLOOP.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Sep 2007 13:05:35 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/hi/m-p/2850303#M667903</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-24T13:05:35Z</dc:date>
    </item>
    <item>
      <title>Re: Hi</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/hi/m-p/2850304#M667904</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There is a error in the loop which was causing lot of issues and it is solved.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Sep 2007 09:36:16 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/hi/m-p/2850304#M667904</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-26T09:36:16Z</dc:date>
    </item>
  </channel>
</rss>

