Customer open items knock off on FIFO basis

Friends,
Is it possible to knock off the customer payments on first in first out basis, without manual clearing through F-32.
Payments user will post the incoming payments on account, which should be adjusted for 1st bill on FIFO basis. 
Just user has raised this  - without clearing by user is it possible.

Hi,
I think this calls for an ABAP program.
Aravind

Similar Messages

  • Charge off difference whening clearing customer open item with bank receipt

    Hi,
    Our company users will use F-32 to clear customer open item with bank receipt, sometimes, our invoice is 100 RMB issue to customer, the customer finally pay 99.98, then in F-32, we use charge off difference to post 0.02 difference to a account.
    The user then want to control this, saying for example, if the customer pay only 90, whening using charge off differnce, the system will pop up a error message.
    Can this be done in SAP, or we need to use user exit, then which user exit?
    Thanks.

    Dear,
    This is done through customer tolerance group using transaction OBA3. Here enter the maximum amount in Loss under the Permitted Payment Differences. you are able to hold tolerance for customer clearing.
    Is this what you wanted?
    Regards,
    Chintan Joshi.

  • EBS Customer open items automatic clearing within tolerances

    Hi Experts,
    We have already implemented Elecronic Bank Statements automatic uploading functionality.  As part of this process, customer open items need to be cleared automatically. 
    As per the standard process, SAP will be able to clear off the open items ONLY if the collection amount (reflected in MT940) is exactly equal to the invoice amount (reflected in the open item).  But general practical situation is that customers may under / over pay.  For example, if the customer invoice is for USD 100,005 the actual payment from the customer could be for USD 100,000.  In this case, it is normal business practice that open item will be cleared off rather than keeping balance USD 5 in ledger and chasing the customer.
    So tolerances are already set up both at GL account level (Trans OBA4) and customer level (Trans OBA3) with blank tolerance group with permitted payment difference of USD 15.  And no tolerance group is assigned to the customer master.  Also account determination is maintained for the differences with nil reason code.
    Inspite of all these settings, I am getting an error message indicating that the difference is too large for clearing while trying to upload this bank statement.  Here the difference is only USD 5.
    My doubts are:
    1. Does the standard EBS program RFEBKA00 considers the permitted payment difference tolerances set in transaction OBA4 and OBA3 ?  I don't need to post the differences with reason code.  That's why account determination is maintained with blank reason code as well. 
    2. SAP Note 124655 (Point No 3) says that entering reasons for differences is not possible in the standard system through EBS.  Does that mean clearing of open items WITHOUT reason code is possible ?
    3. SAP Note 549277 (Point No 5) says that even though Note 124655 specifies certain functionalities as not supported in standard system, they can be achieved by customer through user exits.  Does that mean it is possible to code in the user exit saying that system should consider the payment difference tolerances for clearing off of the open items ?
    Could you kindly let me know your experience with these questions.  I will be very glad to hear from you.  Thanks for your time.
    Warm regards,
    Sridhar

    Hi Experts,
    I got this resolved by using the enhancement FEB00001.  If the field "Distribute by age" is activated through this enhancement, then system will be able to match the paid amount and the combination of open items for automatic clearing.  If there is no exact match, then automatic clearing through FF.5 is not possible as indicated in SAP Note 124655.
    There is no more necessity to use BAdI FIEB_CHANGE_BS_DATA.  Complete relevant logic can be maintained directly in the enhancement itself.
    Have a nice day.
    Regards,
    Sridhar

  • AR open items closed off

    Dear Expert,
    Please be clarified what AR open items closed off is. It seems there is a process to do AR open items close off at month end or year end.
    Thanks

    HI Sree..
    That document was open on 4/1/2011......and was cleared on 4/8/2011................
    If you execute the R/3 report FBL5N (Customer Line Item Display) with the "Open at key date" 4/1/2011.........the report will show the document as open item.....
    What your Aging Report in the BI side will show it depeds on the design of the report.....but as per my understanding if the Query get executed with key date value 4/1/2011 ....then the report should show the document as Open Item..
    In that case the restricted keyfigure should design in such a way that it will compare the Clearing Date with the Key date......if the Key Date < Clearing date then the document will be trreated as an Open Item........if Key Date >= Clearing date then the Document will be displayed as an Open Item.........
    We are also using such a report.......Infact we have also designed in such a way so that the report can display how old the document is 90 days, 30 days....etc. by giving the Offset value......
    But frankly speaking it depends on your requirement and the design of the Query....
    Regards,
    Debjani......

  • Customer Open Items in FI

    Hi All,
       I have to make a report in FI, which should show the below given Customer open Invoice details for a given customer in selection screen.
    Invoice No | Invoice date |  Invoice Amount  |   Payment    |    Balance | Currency |
    1.  I have selected all open item details (BELNR, BUDAT, WRBTR, WAERS ) from BSID for the given customer.
    2. Selected the cleared items from BSAD for the above accounting documents..and updated the BSAD-WRBTR in payment column.
      When there is no payment made against a Invoice its coming up, but when there is partial/ full payment made as this is no more open item this invoice number not coming up in the report.. Hope I have explianed my problem clearly..
       Please suggest me how should I finish this report. Thanks in advances..its very urgent..
    Regards
    Jaker.

    Hi,
    See the attached report for the Customer AR's (Open Items) and write accrodingly.
    report zf_rept_debtor_ageing
           no standard page heading
           message-id fb
           line-count 65
           line-size 230.
    Purpose : This ABAP program will fetch the Account Receivables for
               a Customer for the given period and display the due days.
    tables: t001,       " Company Codes
            t005,       " Countries
            skb1,       " GL Master
            kna1.       " Customer Master
    Internal Tables
    Internal table for BSID (Open Items) data
    data: begin of it_bsid occurs 0,
            kunnr like bsid-kunnr,         " Customer Number
            gjahr like bsid-gjahr,         " Fiscal Year
            belnr like bsid-belnr,         " Acc.Document
            buzei like bsid-buzei,         " Item
            budat like bsid-budat,         " Posting Date
            shkzg like bsid-shkzg,         " Dr/Cr Indicator
            dmbtr like bsid-dmbtr,         " Amount(Local Curr)
            wrbtr like bsid-wrbtr,         " Amount(Doc Curr)
            dmbe2 like bsid-dmbe2,         " Amount(USD)
            waers like bsid-waers,         " Currency
            zterm like bsid-zterm,         " Payment Terms
            vbeln like bsid-vbeln,         " Billing Doc
            zfbdt like bsid-zfbdt,         " Baseline Date
            zbd1t like bsid-zbd1t,         " No of days
            hkont like bsid-hkont,         " GL Account
            name1 like kna1-name1,         " Customer Name
            land1 like kna1-land1,         " Country
          end of it_bsid.
    Internal table for BSAD (Closed Items) data
    data: begin of it_bsad occurs 0,
            kunnr like bsad-kunnr,         " Customer Number
            gjahr like bsad-gjahr,         " Fiscal Year
            belnr like bsad-belnr,         " Acc.Document
            buzei like bsad-buzei,         " Item
            budat like bsad-budat,         " Posting Date
            shkzg like bsad-shkzg,         " Dr/Cr Indicator
            dmbtr like bsad-dmbtr,         " Amount(Local Curr)
            wrbtr like bsid-wrbtr,         " Amount(Doc Curr)
            dmbe2 like bsad-dmbe2,         " Amount(USD)
            waers like bsad-waers,         " Currency
            zterm like bsid-zterm,         " Payment Terms
            vbeln like bsid-vbeln,         " Billing Doc
            zfbdt like bsid-zfbdt,         " Baseline Date
            zbd1t like bsid-zbd1t,         " No of days
            hkont like bsid-hkont,         " GL Account
            name1 like kna1-name1,         " Customer Name
            land1 like kna1-land1,         " Country
          end of it_bsad.
    Internal table for Report Output
    data: begin of it_report occurs 0,
            kunnr like bsid-kunnr,         " Customer Number
            belnr like bsid-belnr,         " Acc.Document
            name1 like kna1-name1,         " Customer Name
            land1 like kna1-land1,         " Country
            shkzg like bsid-shkzg,         " Dr/Cr Indicator
            budat like bsid-budat,         " Posting Date
            dmbtr like bsid-dmbtr,         " Amount(Local Curr)
            wrbtr like bsid-wrbtr,         " Amount(Doc Curr)
            dmbe2 like bsid-dmbe2,         " Amount(USD)
            waers like bsid-waers,         " Currency
            due_amnt like bsid-dmbtr,      " Amount(Over Due)
            d_amnt1  like bsid-dmbtr,      " Amount(0-30 Future Due)
            d_amnt2  like bsid-dmbtr,      " Amount(31-60 Future Due)
            d_amnt3  like bsid-dmbtr,      " Amount(61-90 Future Due)
            d_amnt4  like bsid-dmbtr,      " Amount(91-120 Future Due)
            d_amnt5  like bsid-dmbtr,      " Amount(more than 120)
            due_date like bsid-budat,      " Due date
            zterm    like bsid-zterm,      " Payment Terms
            vbeln    like bsid-vbeln,      " Billing Doc
          end of it_report.
           Declaration of Data and Variables
    data: v_days  type i,            " Difference days
          v_waers like t001-waers,   " Co.Code Currency
          v_sum1  like bsid-dmbtr,                              " Totals 1
          v_sum2  like bsid-dmbtr,                              " Totals 2
          v_sum3  like bsid-dmbtr,                              " Totals 3
          v_sum4  like bsid-dmbtr,                              " Totals 4
          v_sum5  like bsid-dmbtr,                              " Totals 5
          v_sum6  like bsid-dmbtr,                              " Totals 6
          v_sum7  like bsid-dmbtr,                              " Totals 7
          v_sum8  like bsid-dmbe2.                              " Totals 8
    Constants
    constants: c_doc_waers(3) value 'USD',
               c_mitkz type c value 'D'.
                       Selection Screen
    selection-screen : begin of block b1 with frame title text-001.
    parameters: p_bukrs like t001-bukrs obligatory.      " Company Code
    select-options:s_kunnr for kna1-kunnr,               " Customer Number
                   s_land1 for t005-land1,               " Country
                   s_hkont for skb1-saknr.               " G/L Account
    parameters: p_date  like sy-datum obligatory.        " Report Date
    selection-screen: end of block b1.
    selection-screen : begin of block b2 with frame title text-002.
    selection-screen begin of line.
    selection-screen comment 2(30) text-003 for field p_rb1.
    parameters: p_rb1 radiobutton group rb.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen comment 2(30) text-004 for field p_rb2.
    parameters: p_rb2 radiobutton group rb.
    selection-screen end of line.
    selection-screen: end of block b2.
    selection-screen : begin of block b4 with frame.
    selection-screen begin of line.
    selection-screen comment 2(29) text-038 for field p_chk1.
    parameters: p_chk1 as checkbox.
    selection-screen end of line.
    selection-screen: end of block b4.
    selection-screen : begin of block b3 with frame title text-030.
    selection-screen begin of line.
    selection-screen comment 2(30) text-031 for field p_rb3.
    parameters: p_rb3 radiobutton group rb1.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen comment 2(30) text-032 for field p_rb4.
    parameters: p_rb4 radiobutton group rb1.
    selection-screen end of line.
    selection-screen: end of block b3.
    *********Initialization**********************************************
    initialization.
    At Selection Screen
    at selection-screen.
    Checking for the input values of selection screen.
      perform screen_check.
    Top-Of-Page
    top-of-page.
      if p_rb3 = 'X'.
        if p_chk1 = 'X'.
    Write the Column Headings for detailed report(in Doc Currency)
          perform col_heading2.
        else.
    Write the Column Headings for detailed report
          perform col_heading.
        endif.
      else.
    Write the Column Headings for summary report
        perform col_heading1.
      endif.
    Start-Of-Selection
    start-of-selection.
    Get the Customer Open Items from BSID
      perform get_open_data.
    Get the Customer Closed Items from BSAD
      perform get_close_data.
    Get the data from BSID,BSAD and KNA1 into one int.table
      perform process_data.
    End-Of-Selection
    end-of-selection.
      if it_report[] is initial.
        write : 'No Documents found'(005).
      else.
        if p_rb3 = 'X'.
    Write the Detailed Report
          perform write_report.
        else.
    Write the Summary Report
          perform write_report1.
        endif.
      endif.
    At Line-Selection
    at line-selection.
    When double clicked on BELNR leave to transaction FB03
      perform line_sel.
    *&      Form  SCREEN_CHECK
    Checking for the input values of selection screen
    form screen_check.
    Validation of Company Code
      clear t001.
      if not p_bukrs is initial.
        select bukrs from t001 up to 1 rows
               into t001-bukrs
               where bukrs = p_bukrs.
        endselect.
        if sy-subrc ne 0.
          message e000 with 'Invalid Company Code'(006).
        endif.
      endif.
    Validation of Customer Number
      clear kna1.
      if not s_kunnr is initial.
        select kunnr from kna1 up to 1 rows
               into kna1-kunnr
               where kunnr in s_kunnr.
        endselect.
        if sy-subrc ne 0.
          message e000 with 'Invalid Customer Number'(007).
        endif.
      endif.
    Validation of Country
      clear t005.
      if not s_land1 is initial.
        select land1 from t005 up to 1 rows
               into t005-land1
               where land1 in s_land1.
        endselect.
        if sy-subrc ne 0.
          message e000 with 'Invalid Country'(036).
        endif.
      endif.
    Validation of GL Account
      clear skb1.
      if not s_hkont is initial.
        select saknr from skb1 up to 1 rows
               into skb1-saknr
               where saknr in s_hkont and
                     mitkz = c_mitkz.
        endselect.
        if sy-subrc ne 0.
          message e000 with 'Invalid GL Reconciliation Account'(037).
        endif.
      endif.
    endform.                    " SCREEN_CHECK
    *&      Form  COL_HEADING
    Write the Column Headings for detailed report
    form col_heading.
      skip .
      write: /88 'DEBTOR AGEING REPORT AS AT:'(019) centered,
             116  p_date  centered, 198 sy-pagno.
      skip .
      write: /2 'CoCode:'(016),13(4) p_bukrs color 3.
      if not s_kunnr is initial.
        if not s_kunnr-high is initial.
          write: 20 'Customer:'(041),33 s_kunnr-low color 3,
                    '-', s_kunnr-high color 3.
        else.
          write: 20 'Customer:'(041),33 s_kunnr-low color 3.
        endif.
      endif.
      if not s_land1 is initial.
        if not s_land1-high is initial.
          write: /2 'Country:'(042),13(4) s_land1-low color 3,
                  '-', s_land1-high color 3.
        else.
          write: /2 'Country:'(042),13(4) s_land1-low color 3.
        endif.
        if not s_hkont is initial.
          if not s_hkont-high is initial.
            write: 20 'GL Account:'(043),33 s_hkont-low color 3,
                      '-', s_hkont-high color 3.
          else.
            write: 20 'GL Account:'(043),33 s_hkont-low color 3.
          endif.
        endif.
      else.
        if not s_hkont is initial.
          if not s_hkont-high is initial.
            write: /2 'GL Account:'(043),14 s_hkont-low color 3,
                      '-', s_hkont-high color 3.
          else.
            write: /2 'GL Account:'(043),14 s_hkont-low color 3.
          endif.
        endif.
      endif.
      write: 183 'Run Date:'(029), sy-datum.
      format color col_heading.
      write at /1(203) sy-uline .
      write: / sy-vline,  2(10) 'Customer'(008) centered,
            12 sy-vline, 13(30) 'Customer Name'(009),
            43 sy-vline, 44(3)  'Cty'(014) centered,
            47 sy-vline, 48(15) 'Amount'(013) right-justified,
            63 sy-vline, 64(4)  'Curr'(011) centered,
            68 sy-vline, 69(15) 'Overdue'(012) centered,
            84 sy-vline, 85(15) '0 - 30 Days'(010) centered,
           100 sy-vline,101(15) '31 - 60 Days'(028) centered,
           116 sy-vline,117(15) '61 - 90 Days'(021) centered,
           132 sy-vline,133(15) '91 - 120 Days'(022) centered,
           148 sy-vline,149(15) 'Above 120 Days'(023) centered,
           164 sy-vline,165(10) 'Due Date'(024) centered,
           175 sy-vline,176(5)  'PayT'(025) centered,
           181 sy-vline,182(10) 'Bill.Doc.'(026) centered,
           192 sy-vline,193(10) 'Doc.No.'(027) centered,
           203 sy-vline.
      write at /1(203) sy-uline.
      format color off.
    endform.                    " COL_HEADING
    *&      Form  COL_HEADING1
    Write the Column Headings for summary report
    form col_heading1.
      skip .
      write: /54 'DEBTOR AGEING REPORT (SUMMARY) AS AT:'(033) centered,
              92  p_date  centered, 158 sy-pagno.
      skip .
      write: /2 'CoCode:'(016), 13(4) p_bukrs color 3.
      if not s_kunnr is initial.
        if not s_kunnr-high is initial.
          write: 20 'Customer:'(041),33 s_kunnr-low color 3,
                    '-', s_kunnr-high color 3.
        else.
          write: 20 'Customer:'(041),33 s_kunnr-low color 3.
        endif.
      endif.
      if not s_land1 is initial.
        if not s_land1-high is initial.
          write: /2 'Country:'(042),13(4) s_land1-low color 3,
                  '-', s_land1-high color 3.
        else.
          write: /2 'Country:'(042),13(4) s_land1-low color 3.
        endif.
        if not s_hkont is initial.
          if not s_hkont-high is initial.
            write: 20 'GL Account:'(043),33 s_hkont-low color 3,
                      '-', s_hkont-high color 3.
          else.
            write: 20 'GL Account:'(043),33 s_hkont-low color 3.
          endif.
        endif.
      else.
        if not s_hkont is initial.
          if not s_hkont-high is initial.
            write: /2 'GL Account:'(043),14 s_hkont-low color 3,
                      '-', s_hkont-high color 3.
          else.
            write: /2 'GL Account:'(043),14 s_hkont-low color 3.
          endif.
        endif.
      endif.
      write: 144 'Run Date:'(029), sy-datum.
      format color col_heading.
      write at /1(164) sy-uline .
      write: / sy-vline,  2(10) 'Customer'(008) centered,
            12 sy-vline, 13(30) 'Customer Name'(009),
            43 sy-vline, 44(3)  'Cty'(014) centered,
            47 sy-vline, 48(15) 'Amount'(013) right-justified,
            63 sy-vline, 64(4)  'Curr'(011) centered,
            68 sy-vline, 69(15) 'Overdue'(012) centered,
            84 sy-vline, 85(15) '0 - 30 Days'(010) centered,
           100 sy-vline,101(15) '31 - 60 Days'(028) centered,
           116 sy-vline,117(15) '61 - 90 Days'(021) centered,
           132 sy-vline,133(15) '91 - 120 Days'(022) centered,
           148 sy-vline,149(15) 'Above 120 Days'(023) centered,
           164 sy-vline.
      write at /1(164) sy-uline.
      format color off.
    endform.                    " COL_HEADING1
    *&      Form  COL_HEADING2
    Write the Column Headings for summary report(in Doc Curr)
    form col_heading2.
      skip .
      write: /99 'DEBTOR AGEING REPORT AS AT:'(019) centered,
             127  p_date  centered, 220 sy-pagno.
      skip .
      write: /2 'CoCode:'(016),13(4) p_bukrs color 3.
      if not s_kunnr is initial.
        if not s_kunnr-high is initial.
          write: 20 'Customer:'(041),33 s_kunnr-low color 3,
                    '-', s_kunnr-high color 3.
        else.
          write: 20 'Customer:'(041),33 s_kunnr-low color 3.
        endif.
      endif.
      if not s_land1 is initial.
        if not s_land1-high is initial.
          write: /2 'Country:'(042),13(4) s_land1-low color 3,
                  '-', s_land1-high color 3.
        else.
          write: /2 'Country:'(042),13(4) s_land1-low color 3.
        endif.
        if not s_hkont is initial.
          if not s_hkont-high is initial.
            write: 20 'GL Account:'(043),33 s_hkont-low color 3,
                      '-', s_hkont-high color 3.
          else.
            write: 20 'GL Account:'(043),33 s_hkont-low color 3.
          endif.
        endif.
      else.
        if not s_hkont is initial.
          if not s_hkont-high is initial.
            write: /2 'GL Account:'(043),14 s_hkont-low color 3,
                      '-', s_hkont-high color 3.
          else.
            write: /2 'GL Account:'(043),14 s_hkont-low color 3.
          endif.
        endif.
      endif.
      write: 204 'Run Date:'(029), sy-datum.
      format color col_heading.
      write at /1(225) sy-uline .
      write: / sy-vline,  2(10) 'Customer'(008) centered,
            12 sy-vline, 13(30) 'Customer Name'(009),
            43 sy-vline, 44(3)  'Cty'(014) centered,
            47 sy-vline, 48(15) 'Amount'(013) right-justified,
            63 sy-vline, 64(4)  'Curr'(011) centered,
            68 sy-vline, 69(15) 'Overdue'(012) centered,
            84 sy-vline, 85(15) '0 - 30 Days'(010) centered,
           100 sy-vline,101(15) '31 - 60 Days'(028) centered,
           116 sy-vline,117(15) '61 - 90 Days'(021) centered,
           132 sy-vline,133(15) '91 - 120 Days'(022) centered,
           148 sy-vline,149(15) 'Above 120 Days'(023) centered,
           164 sy-vline,165(10) 'Due Date'(024) centered,
           175 sy-vline,176(5)  'PayT'(025) centered,
           181 sy-vline,182(10) 'Bill.Doc.'(026) centered,
           192 sy-vline,193(10) 'Doc.No.'(027) centered,
           203 sy-vline,204(16) 'Amount(Doc.Curr)'(039),
           220 sy-vline,221(4)  'Curr'(040),
           225 sy-vline.
      write at /1(225) sy-uline.
      format color off.
    endform.                    " COL_HEADING2
    *&      Form  GET_OPEN_DATA
    Get the Customer Open Items from BSID
    form get_open_data.
      select a~kunnr          " Customer Number
             a~gjahr          " Fiscal Year
             a~belnr          " Acc.Document
             a~buzei          " Item
             a~budat          " Posting Date
             a~shkzg          " Dr/Cr Indicator
             a~dmbtr          " Amount(Local Curr)
             a~wrbtr          " Amount(Doc Curr)
             a~dmbe2          " Amount(USD)
             a~waers          " Currency
             a~zterm          " Payment Terms
             a~vbeln          " Billing Doc
             a~zfbdt          " Baseline Date
             a~zbd1t          " No of days
             a~hkont          " GL account
             b~name1          " Customer Name
             b~land1          " Country
         into table it_bsid
         from bsid as a join kna1 as b
         on akunnr = bkunnr
         where a~bukrs = p_bukrs  and
               a~kunnr in s_kunnr and
               a~hkont in s_hkont and
               b~land1 in s_land1 and
               a~budat le p_date.
      sort it_bsid by kunnr gjahr belnr buzei budat.
    endform.                    " GET_OPEN_DATA
    *&      Form  GET_CLOSE_DATA
    Get the Customer closed Items from BSID
    form get_close_data.
      select a~kunnr          " Customer Number
             a~gjahr          " Fiscal Year
             a~belnr          " Acc.Document
             a~buzei          " Item
             a~budat          " Posting Date
             a~shkzg          " Dr/Cr Indicator
             a~dmbtr          " Amount(Local Curr)
             a~wrbtr          " Amount(Doc Curr)
             a~dmbe2          " Amount(USD)
             a~waers          " Currency
             a~zterm          " Payment Terms
             a~vbeln          " Billing Doc
             a~zfbdt          " Baseline Date
             a~zbd1t          " No of days
             a~hkont          " GL account
             b~name1          " Customer Name
             b~land1          " Country
        into table it_bsad
        from bsad as a join kna1 as b
        on akunnr = bkunnr
        where a~bukrs = p_bukrs  and
              a~kunnr in s_kunnr and
              a~hkont in s_hkont and
              b~land1 in s_land1 and
              a~augdt > p_date   and
              a~budat le p_date.
      sort it_bsad by kunnr gjahr belnr buzei budat.
    endform.                    " GET_CLOSE_DATA
    *&      Form  PROCESS_DATA
    Get the data from BSID,BSAD and KNA1 into one int.table
    form process_data.
    *Move the data from BSID to final output int table
      loop at it_bsid.
        move-corresponding it_bsid to it_report.
        it_report-due_date = it_bsid-zfbdt + it_bsid-zbd1t.
        append it_report.
        clear it_report.
      endloop.
    *Move the data from BSAD to final output int table
      loop at it_bsad.
        move-corresponding it_bsad to it_report.
        it_report-due_date = it_bsad-zfbdt + it_bsad-zbd1t.
        append it_report.
        clear it_report.
      endloop.
      sort it_report by kunnr belnr.
      loop at it_report.
        if it_report-shkzg = 'H'.    " Credit
          it_report-dmbtr = it_report-dmbtr * -1.
          it_report-dmbe2 = it_report-dmbe2 * -1.
        endif.
        v_days = it_report-due_date - p_date.
    For Company Code Currency
        if p_rb1 = 'X'.
          if v_days le 0.
            it_report-due_amnt = it_report-dmbtr.
          elseif v_days between 1 and 30.
            it_report-d_amnt1 = it_report-dmbtr.
          elseif v_days between 31 and 60.
            it_report-d_amnt2 = it_report-dmbtr.
          elseif v_days between 61 and 90.
            it_report-d_amnt3 = it_report-dmbtr.
          elseif v_days between 91 and 120.
            it_report-d_amnt4 = it_report-dmbtr.
          elseif v_days > 120.
            it_report-d_amnt5 = it_report-dmbtr.
          endif.
    For Group Currency
        else.
          if v_days le 0.
            it_report-due_amnt = it_report-dmbe2.
          elseif v_days between 1 and 30.
            it_report-d_amnt1 = it_report-dmbe2.
          elseif v_days between 31 and 60.
            it_report-d_amnt2 = it_report-dmbe2.
          elseif v_days between 61 and 90.
            it_report-d_amnt3 = it_report-dmbe2.
          elseif v_days between 91 and 120.
            it_report-d_amnt4 = it_report-dmbe2.
          elseif v_days > 120.
            it_report-d_amnt5 = it_report-dmbe2.
          endif.
        endif.
        modify it_report index sy-tabix.
      endloop.
    endform.                    " PROCESS_DATA
    *&      Form  WRITE_REPORT
    Write the Detailed Report Output
    form write_report.
      clear: v_sum1,v_sum2,v_sum3,v_sum4,v_waers,
             v_sum5,v_sum6,v_sum7,v_sum8.
      loop at it_report.
       at new kunnr.
          read table it_report index sy-tabix.
          write: / sy-vline,  2(10) it_report-kunnr,
                12 sy-vline, 13(30) it_report-name1,
                43 sy-vline, 44(3)  it_report-land1,
                47 sy-vline.
       endat.
        if p_rb1 = 'X'.
          select single waers from t001
               into v_waers where bukrs = p_bukrs.
          write:   1 sy-vline, 12 sy-vline,
                  43 sy-vline,
                  47 sy-vline,
                  48(15) it_report-dmbtr currency it_report-waers,
                  63 sy-vline, 64(4) v_waers,
                  68 sy-vline.
        else.
          write:   1 sy-vline, 12 sy-vline,
                  43 sy-vline,
                  47 sy-vline,
                  48(15) it_report-dmbe2 currency it_report-waers,
                  63 sy-vline,64(4) c_doc_waers,
                  68 sy-vline.
        endif.
        write:  69(15) it_report-due_amnt currency it_report-waers,
                84 sy-vline,
                85(15) it_report-d_amnt1 currency it_report-waers,
               100 sy-vline,
               101(15) it_report-d_amnt2 currency it_report-waers,
               116 sy-vline,
               117(15) it_report-d_amnt3 currency it_report-waers,
               132 sy-vline,
               133(15) it_report-d_amnt4 currency it_report-waers,
               148 sy-vline,
               149(15) it_report-d_amnt5 currency it_report-waers,
               164 sy-vline,165(10) it_report-due_date,
               175 sy-vline,176(5)  it_report-zterm,
               181 sy-vline,182(10) it_report-vbeln,
               192 sy-vline,193(10) it_report-belnr,
               203 sy-vline.
        if p_chk1 = 'X'.
          write: 204(16) it_report-wrbtr currency it_report-waers,
               220 sy-vline, 221(4) it_report-waers,
               225 sy-vline.
        endif.
       new-line.
    Totals for end of each Customer
        at end of kunnr.
          if p_chk1 = 'X'.
            write at /1(225) sy-uline.
          else.
            write at /1(203) sy-uline.
          endif.
          sum.
          format color 4.
          if p_rb1 = 'X'.
            write: /1 sy-vline, 2 'Total:'(015),
                 12 sy-vline,
                 13(10) it_report-kunnr,
                 43 sy-vline,47 sy-vline,
                 48(15) it_report-dmbtr currency it_report-waers,
                 63 sy-vline, 64(3) v_waers,
                 68 sy-vline,
                 69(15) it_report-due_amnt currency it_report-waers,
                 84 sy-vline,
                 85(15) it_report-d_amnt1 currency it_report-waers,
                100 sy-vline,
                101(15) it_report-d_amnt2 currency it_report-waers,
                116 sy-vline,
                117(15) it_report-d_amnt3 currency it_report-waers,
                132 sy-vline,
                133(15) it_report-d_amnt4 currency it_report-waers,
                148 sy-vline,
                149(15) it_report-d_amnt5 currency it_report-waers,
                164 sy-vline, 175 sy-vline,
                181 sy-vline, 192 sy-vline,
                203 sy-vline.
            if p_chk1 = 'X'.
              write: 220 sy-vline, 225 sy-vline.
            endif.
          else.
            write: /1 sy-vline, 2 'Total:'(015),
                   12 sy-vline,
                 13(10) it_report-kunnr,
                 43 sy-vline,
                 47 sy-vline,
                 48(15) it_report-dmbe2 currency it_report-waers,
                 63 sy-vline, 64(3) c_doc_waers,
                 68 sy-vline,
                 69(15) it_report-due_amnt currency it_report-waers,
                 84 sy-vline,
                 85(15) it_report-d_amnt1 currency it_report-waers,
                100 sy-vline,
                101(15) it_report-d_amnt2 currency it_report-waers,
                116 sy-vline,
                117(15) it_report-d_amnt3 currency it_report-waers,
                132 sy-vline,
                133(15) it_report-d_amnt4 currency it_report-waers,
                148 sy-vline,
                149(15) it_report-d_amnt5 currency it_report-waers,
                164 sy-vline, 175 sy-vline,
                181 sy-vline, 192 sy-vline,
                203 sy-vline.
            if p_chk1 = 'X'.
              write: 220 sy-vline, 225 sy-vline.
            endif.
          endif.
          format color off.
          if p_chk1 = 'X'.
            write at /1(225) sy-uline.
          else.
            write at /1(203) sy-uline.
          endif.
        endat.
        v_sum1 = v_sum1 + it_report-dmbtr.
        v_sum2 = v_sum2 + it_report-due_amnt.
        v_sum3 = v_sum3 + it_report-d_amnt1.
        v_sum4 = v_sum4 + it_report-d_amnt2.
        v_sum5 = v_sum5 + it_report-d_amnt3.
        v_sum6 = v_sum6 + it_report-d_amnt4.
        v_sum7 = v_sum7 + it_report-d_amnt5.
        v_sum8 = v_sum8 + it_report-dmbe2.
    Hiding the Acc doc no for interactic screen.
        hide it_report-belnr.
        hide it_report-budat.
        clear:it_report-belnr, it_report-budat.
      endloop.
    Grand Totals for all customers
      format color 3.
      write: /1 sy-vline, 2 'Gr.Total'(034),
                 12 sy-vline,13 'As At:'(035),p_date,
                 43 sy-vline,
                 47 sy-vline.
    For Company Code Currency
      if p_rb1 = 'X'.
        write:  48(15) v_sum1 currency it_report-waers,
                63 sy-vline, 64(4) v_waers,
                68 sy-vline.
    For Group Currency (USD)
      else.
        write:   48(15) v_sum8 currency it_report-waers,
                 63 sy-vline, 64(3) c_doc_waers,
                 68 sy-vline.
      endif.
      write:     69(15) v_sum2 currency it_report-waers,
                 84 sy-vline,
                 85(15) v_sum3 currency it_report-waers,
                100 sy-vline,
                101(15) v_sum4 currency it_report-waers,
                116 sy-vline,
                117(15) v_sum5 currency it_report-waers,
                132 sy-vline,
                133(15) v_sum6 currency it_report-waers,
                148 sy-vline,
                149(15) v_sum7 currency it_report-waers,
                164 sy-vline, 175 sy-vline,
                181 sy-vline, 192 sy-vline,
                203 sy-vline.
      if p_chk1 = 'X'.
        write: 220 sy-vline, 225 sy-vline.
      endif.
      format color off.
      if p_chk1 = 'X'.
        write at /1(225) sy-uline.
      else.
        write at /1(203) sy-uline.
      endif.
    endform.                    " WRITE_REPORT
    *&      Form  WRITE_REPORT1
    Write the Summary Report Output
    form write_report1.
      clear: v_sum1,v_sum2,v_sum3,v_sum4,v_waers,
             v_sum5,v_sum6,v_sum7,v_sum8.
      loop at it_report.
        at new kunnr.
          read table it_report index sy-tabix.
          write: / sy-vline,  2(10) it_report-kunnr,
                12 sy-vline, 13(30) it_report-name1,
                43 sy-vline, 44(3)  it_report-land1,
                47 sy-vline.
        endat.
        at end of kunnr.
          sum.
          if p_rb1 = 'X'.
            select single waers from t001
              into v_waers where bukrs = p_bukrs.
            write: 1 sy-vline, 12 sy-vline,
                 43 sy-vline,  47 sy-vline,
                 48(15) it_report-dmbtr currency it_report-waers,
                 63 sy-vline, 64(4) v_waers,
                 68 sy-vline,
                 69(15) it_report-due_amnt currency it_report-waers,
                 84 sy-vline,
                 85(15) it_report-d_amnt1 currency it_report-waers,
                100 sy-vline,
                101(15) it_report-d_amnt2 currency it_report-waers,
                116 sy-vline,
                117(15) it_report-d_amnt3 currency it_report-waers,
                132 sy-vline,
                133(15) it_report-d_amnt4 currency it_report-waers,
                148 sy-vline,
                149(15) it_report-d_amnt5 currency it_report-waers,
                164 sy-vline.
          else.
            write: 1 sy-vline, 12 sy-vline,
                 43 sy-vline,  47 sy-vline,
                 48(15) it_report-dmbe2 currency it_report-waers,
                 63 sy-vline, 64(4) c_doc_waers,
                 68 sy-vline,
                 69(15) it_report-due_amnt currency it_report-waers,
                 84 sy-vline,
                 85(15) it_report-d_amnt1 currency it_report-waers,
                100 sy-vline,
                101(15) it_report-d_amnt2 currency it_report-waers,
                116 sy-vline,
                117(15) it_report-d_amnt3 currency it_report-waers,
                132 sy-vline,
                133(15) it_report-d_amnt4 currency it_report-waers,
                148 sy-vline,
                149(15) it_report-d_amnt5 currency it_report-waers,
                164 sy-vline.
          endif.
          write at /1(164) sy-uline.
        endat.
    Totals
        v_sum1 = v_sum1 + it_report-dmbtr.
        v_sum2 = v_sum2 + it_report-due_amnt.
        v_sum3 = v_sum3 + it_report-d_amnt1.
        v_sum4 = v_sum4 + it_report-d_amnt2.
        v_sum5 = v_sum5 + it_report-d_amnt3.
        v_sum6 = v_sum6 + it_report-d_amnt4.
        v_sum7 = v_sum7 + it_report-d_amnt5.
        v_sum8 = v_sum8 + it_report-dmbe2.
    Hiding the Acc doc no for interactic screen.
        hide it_report-belnr.
        hide it_report-budat.
        clear: it_report-belnr,
               it_report-budat.
      endloop.
    Calculation of Grand Totals
      format color 3.
      write: /1 sy-vline, 2 'Gr.Total'(034),
                 12 sy-vline,13 'As At:'(035),p_date,
                 43 sy-vline,
                 47 sy-vline.
    For Company Code Currency
      if p_rb1 = 'X'.
        write:  48(15) v_sum1 currency it_report-waers,
                63 sy-vline, 64(4) v_waers,
                68 sy-vline.
    For Group Currency (USD)
      else.
        write:   48(15) v_sum8 currency it_report-waers,
                 63 sy-vline, 64(3) c_doc_waers,
                 68 sy-vline.
      endif.
      write:     69(15) v_sum2 currency it_report-waers,
                 84 sy-vline,
                 85(15) v_sum3 currency it_report-waers,
                100 sy-vline,
                101(15) v_sum4 currency it_report-waers,
                116 sy-vline,
                117(15) v_sum5 currency it_report-waers,
                132 sy-vline,
                133(15) v_sum6 currency it_report-waers,
                148 sy-vline,
                149(15) v_sum7 currency it_report-waers,
                164 sy-vline.
      format color off.
      write at /1(164) sy-uline.
    endform.                    " WRITE_REPORT1
    *&      Form  LINE_SEL
    When double clicked on BELNR leave to transaction FB03
    form line_sel.
      data: lv_field(20),
            lv_value(10),
            lv_date(10),
            lv_gjahr like bsad-gjahr.
      get cursor field lv_field value lv_value.
      if lv_field = 'IT_REPORT-BELNR'.
        if not lv_value is initial.
          read current line field value it_report-budat into lv_date.
          lv_gjahr = lv_date+6(4).
          set parameter id 'BUK' field p_bukrs.
          set parameter id 'GJR' field lv_gjahr.
          set parameter id 'BLN' field lv_value.
          call transaction 'FB03' and skip first screen.
        endif.
      endif.
    endform.                    " LINE_SEL
    Regards,
    Anji

  • Customer Open Item Clearing F-28 / FBZ1

    Dear Friends,
    My query is regarding Customer Open Items Clearing using Transaction Codes F-28 / FBZ1.
    We are implementing SAP for Healthcare Industry with IS-H.. We are using ECC6 EHP5.
    Client submits insurance claims relating to patient revenue to the insurance companies and in turn receives remittance from insurance companies.
    The remittance file received from insurance company contains all the data that can be reconciled with the open items.
    Now, I want to know whether we can upload the details directly into the transaction f-28 / fbz1.
    Please suggest if i can do it in any other way.
    Thank you
    Sivaram

    Hi Atif,
    My requirement is :
    1) My client is into Healthcare.. For each patient with insurance cover we are debiting insurance company for the amount due towards his services provided by the client.
    2) on periodic basis client submits claim file to insurance company.
    3) insurance company does the remittance to the client and sends an xml file.
    4) This xml file contains individual patients records which are remitted by insurance company.
    5) I want to clear these open items.. Please let me know the best method of doing it..
    6) Is there any method of automating this process.
    Thanks
    Sivaram

  • Dissending customer open item clearance

    Dear All ,
    While doing customer open item clearance through F-32 ,   1st I will select total collection line item, then subsequent customer debit line item. System should accept open item clearance dissenting posting date wise other  error message will popup. So please give me advice for same
    regards
    purushottam

    hi
    thanx for reply   ..  we configured cash discount for customer base on Payment term . my question is while doing open item clearance payment againest customer debit clearing  in order by posting date. in case end user wrongly select in between date   system should stop running process .
    regards
    purushottam

  • How to clear vendor open items with customer open items in APP?

    Hi Experts,
    Our vendor is our customer - in this scenario how to clear vedor open items against customer open items. I have defined vedor is customer means I have given customer number in vendor master record, selected chek box 'clear with customer'.  Still problem is not solved, hence I am requesting you to help me in this regard.
    Thank you very much,
    Regards,
    Ganesh.

    Hi
    In FBCJ after payment you have clear manually vendor balance in F-44.
    If you want SPL GL in FBCJ then write a Substitution .
    1. step 001 - Special G/L Substitution
    2. Prerequisite - Transaction code = 'FBCJ'
    3. Substitution posting key -- Exit (need help from abap) exit name
                                              G/L Exit (need help from abap) exit name
                                              Special G/L Ind Exit (need help from abap) exit name
    you can't do this without ABAP help
    Best Of Luck
    Tanmoy

  • Customer open item line wise details

    Hi ,
    I have customer open item for 240 days. Now he has made payment today for part amount only. I have cleared this amount against the outstanding amount. Now in FBL5N open item is only for balance amount. BUt when I  CHECK REPORT- S_ALR_87012178 days for the open item is between 31 to 60.
    How this dates are calculated.I have posted document today so it should either come from 1 to 30 day range or in 240 to 300 day range as balance is outstanding from that date.
    Help me to resolve the issue.

    Hai
    The duedate is calculated according to the baselinedate which u will maintain in terms of payment(OBB8).In terms of payment u will maintain baseline date as document date or posting date or none.mostly u would be selcted the duedate as document date thats why i  believe ur line item is showing in between 31-60 days.
    Regards
    Raghavendra.M
    SAP-Practice

  • EBS posting to clear customer open items - Function not working?

    Hello SAPers
    I have an issue I just canu2019t seem to resolve! We are receiving MT940 statements and receive customer invoice reference details with field: 86 as follows:
    :61:090910C1500,00FOSB1000270 //100909050      0        035315
    :86:DEPOSIT
    Remitter:1000270 MISSION AUSTRALIA   Ref:1200000017
    Immediately following the BTC FOSB the bank quotes the customer number however I am not using this as standard SAP should identify the customer by document number within the note to payee field?
    I am using a 2 step process in posting to the clearing account and customer. Config as follows:
    Pst Type 1
    40     Bank
    50     Clearing
    Pst type 2
    40     Clearing
    15     BLANK          DZ     3      15
    I have also set up a string to look for the documents ^(12########)$. When we load the statement the first posting is successful however the second does not post to the customer or clear based on the invoice reference. I am using algorithm 020. The error that occurs is F5 102 Customer does not exist in company code xxxx. It actually does exist in the company code.
    I have loaded the EBS to the buffer and simulated the search on BELNR and it picks up the document?
    I am sure this is standard and a CMOD is not required on this type of functionality? What have I not done to allow posting to the customer based on document number or to post on account where it is not cleared?
    Any assistance on this issue is appreciated? Thanks in advance.

    Function Module for GL open Items
    how to clear customer open items by another  customer open item
    Function Module for GL Open Items
    Reward points..

  • Function module to clear customer open items

    Hi ,
    I have a requirement in FI module to clear the customer open items through Function Modules.  The standard functionality is done through the tcode f-28 / f-32.
    Please let me know if there is any program or Function Module to clear the customer open items.(without using BDC).
    Thanks in advance.

    Function Module for GL open Items
    how to clear customer open items by another  customer open item
    Function Module for GL Open Items
    Reward points..

  • Customer open item not cleared

    Hi experts
    For a customer open item,when deposited cheque in bank trough t code ff68
    the line item remains as open but not cleared.
    thanks in advance

    Hello,
    After the end of the process you should check the results in order to identify if the account informations were found in order to clear the item.
    Regards,
    REnan

  • Customer Open Items Document Details

    I am building an application for a client for Purchase Card Processing using Visual Studio 2005. I am able to use VS 2003 to create the necessary object to get the Customer List, Customer Details, and the list of Customer Open Items.
    I am totally new to SAP, and need some help to figure out my next steps.
    1. What call(s) will return an Open Item (Document) given the Document Number, along with the individual line items. With that info I can post a Level 3 transaction and get an authorization code.
    2. What is the process to post the purchase card authorization, essentially a payment, back to SAP for the open item.
    3. What is the best source for reference details on BAPI?
    Thanks in advance for any assistance.

    Thanks for the response,  but I have already madie it that far...   " I am able to use VS 2003 to create the necessary object to get the Customer List, Customer Details, and the list of Customer Open Items.
    with the list of open items,  I get a  Bill_Doc.   What calls will return the details of the Billing Document?

  • Report s_alr_87012178 :customer open items  - Customer classification

    Hi all. The problem concerns the report  s_alr_87012178 which is used to display customer open items.I am selecting  'Customer classification' from the dynamic selections and filling it with a value e.g C.
    I have assigned risk class A for my customer in XD02 : Marketing tab. When i am running the report, it is displaying the customer even though i have filled in a different customer classification value.
    Thanks for input.

    Hi Antish,
    Were you able to resolve this?  If so, could you let me know what was done. I have a similar issue with Customer Classification on FBL5N.
    Thanks,
    Sam

  • Report for customer open item exclude vat

    Dear Experts,
    Is there a report in SAP which can extract the customer open items with VAT amount excluded?
    Thank you

    You have to customize a report. There is no standard report for this.

Maybe you are looking for

  • Degraded print in pdf files

    When I save an article from the internet as a pdf file, the print on my saved file is degraded. The letters do not look solid. This makes the text difficult to read. This does not happen with files that I scan into a pdf file. The print looks the sam

  • Rounding Time to nearest 30 minutes

    Good day, I'm looking for a way to round the time portion of a date value. My query needs to return the time of day, rounded to the nearest 30 minutes - top of the hour or bottom of the hour. If sysdate is: 12/28/2009 11:08:19 AM I need to see: 12/28

  • SP02 is showing that update was terminated

    Hi Friends, Can anyone guide me in the below problem After going to change mode of transaction when i go to message and i have done repeat output and further data and communication methods. After that i have saved document. After that when i enter in

  • Flip objext or text in JS

    I can't find a way to flip an object or text horizontally or vertically using javascript. I looked at the transfomation matrix but that looks like it only scales, offsets and rotates an object or text. Can I flip an object or text (horizontally or ve

  • Is there a way to increase the size of the thumbnails in an iDVD project?

    Is there a way to increase the size of the thumbnails in an iDVD project? Thanks, Paul