PF contribution at time of Arrears

Hi Guru's
When we pay the arrears there is mismatch in Employee and Employer PF amounts in Wagetype Reporter.
in normal scenario 
/3f1 = 6000/-
/3f3 = 5459/-
/3f4 = 541(Pension)
at time time of arrears employer contribution is showing less amount comparing with EE contribution.
Please suggest the process.
Cheers
Venkat

Dear Balwant
Thanks for your response.
Below are the amounts from Wagetype Reporter. Problem is in IN VIEW.. there was a difference of 223/- in employee and employer contirbution(3F1 and 3F3) i.e. 1316-1093=223/- respectively.
Posting amount was correct, but WT reporter providing Rs. 223/- less.
This occured to one employee, when we paid Arrears to 200 employees.
/3F1   Ee PF contribu  201102            0.00               **1,316.00
/3F1   Ee PF contribu  201103            0.00               1,775.00
/3F1                                     0.00               3,091.00
/3F3   Er PF contribu  201102            0.00               **1,093.00
/3F3   Er PF contribu  201103            0.00               1,234.00
/3F3                                     0.00               2,327.00
/3F4   Er Pension con  201103            0.00                 541.00
/3F4                                     0.00                 541.00
Please help me and guide me to solve this.
Appreciate your quick response.
Thanks
Venkat

Similar Messages

  • Pension Contribution not deducting correctly and Arrears

    Dear Experts!
    I am facing with a big problem with calculation Pension Contribution in India Payroll.
    First, the issue with employee join into company in middle month, i have modified EXIT_HINCALC0_002 and it's right.
    However, the problem when a employee has an arrears of last month, so my customer requires that: base on /111 + arrears to decide the amount of Pension Contribution.
    If /111 + arrears >= 6500 so assigning /3FC = 6500
    Else /3FC = /111 + arrears.
    But I don't know, how to calculate arrears in FUINEPF to choose the suitable value for /3FC.
    Please help me. Thank a lot.

    Thank for your reply.
    I have read the note and see that: this is the problem when employee joined in the middle month <not from 1st of month>. However, I have fixed this problem. And the result is OK.
    The issue now is to decide value of /3FC not only base on /111 but also amount of Arrears. I don't know how to calculate Arrears, especially in FUINEPF.

  • VC Consultant Certfication in TechEd08!!!

    Hi All ,
    I want to make a Proposal for VC Certification in this year TechEd08 to SAP.
    I think this will be very useful for all VC Freshers and the Experts to prove them self.
    And this will give more product knowledge and awareness of VC around world(Ofcourse it is a well know SAP Toll:-)).
    I think The syllabus should be like :
    ->It should contain Basics of Portal Plateform and BI Stuff.
    ->All the technical and Development aspects of VC(Data services ,popups,nestediviews,URLs,..Etc
    ->Finally Intro of VC7.1 i.e CE Platform.
    I am requesting every body to convey this Info to SAP Department.
    @Marcel
    You know so many Developers9Luba,Natty,David..) from Isreal so why can't to Propose this and will make it successful .
    All the best.
    Thanks&Regards,
    Govindu

    Hi Govindu,
    thanks for your contribution last time here on this forum. It helped me the last time, because I had a lot to do last time.
    First of all I think it is a good idea with the certification. I don't know if the developers are the right contact person, but I will ask my contacts at SAP who is responsible for the education program of SAP and I will discuss this point next week with Dafna the product managerin of Visual Composer.
    I also think it's difficult to define the syllabus. You have suggested that it should contain:
    Govindu Nagotla wrote:
    ->It should contain Basics of Portal Plateform and BI Stuff.
    ->All the technical and Development aspects of VC(Data services ,popups,nestediviews,URLs,..Etc
    ->Finally Intro of VC7.1 i.e CE Platform.
    I think there should be separate certifications. Maybe you think why should there more than one certification Visual Composer is a easy to learn and to use tool. That's correct but Visual Composer is also a powerful tool, so you need knowledge in a lot of things, e.g. connectivity to SAP systems (R/3 and BI), JDBC connection and so on this is part of the Portal knowledge also the settings in the Visual Administrator for enabling logs and so on.
    You can also influence some settings of Visual Composer when you modify some files on the J2EE file system. You should also know how to install a JDBC driver for Visual Composer or how to debug in Visual Composer and so on... I think this should be one certification with all the technical stuff for the Visual Composer experts.
    For the beginners there should be a certification which contains all the knowledge about modeling and how Visual Composer works and the knowledge what is possible (connectivity without knowing how to create a portal system) with Visual Composer.
    And maybe a third certification Visual Composer Upgrade for Visual Composer 7.1, because I think that the most users are working with the 7.1 at the moment.
    But maybe the SAP experts have another suggestions, but I will set it on my list of how to do for next week.
    Best Regards,
    Marcel

  • Plant Maintenance idocs

    Hi
    I would like to know which idoc I can use to:
    Dowload from SAP and upload to SAP functional locations, equipment and material attached to an equipment?
    Regards, and thanks for your contribution and time
    Daniel

    Hi
    Try and search with :
    Idoc message type: /ISDFPS/*
    basic type: /ISDFPS*
    hope you will find some idocs related to equipment.
    Check this link:
    http://help.sap.com/saphelp_45b/helpdata/en/35/a47db0763e0392e10000009b38f9b7/content.htm
    Regards
    Neha
    Edited by: Neha Shukla on Nov 22, 2008 7:14 PM

  • EPN contribution on Arrears more than 541.00 rs

    Hi Payroll Experts:
    I have scenario as described below:
    An employee's BAISC= 10000.00 in the month of April 2008 and May 2008.
    And in the month of April and May his PF contributions are shown below:
    BASIC= 10,000.00
    Employee PF contr= 1200.00
    Employer PF cont= 659.00
    Employer Pension cont= 541.00
    And his salary was revised w.e.f April 2008 i.e BASIC= 15000.00 per month now.
    Now, the system is calculating the retro amounts on BASIC difference of 5,000.00
    here the retro amounts for each month of April and May 2008 are as follows :
    Employee PF contr(arrear)= 600.00
    Employer PF cont(arrear)= 243.00
    Employer Pension cont(arrear)= 416.00
    But, my query is that the system has already considered rs. 541.00 towards Eemployer contribution for Pension Fund in April 2008 regular payroll before the Salary revision.
    Now, again after the Increment it is considering the Employer Pension contribution of Rs. 416 and it resulting in an averall Pernsion contribution of Rs. 957.00
    Is this calculation correct?
    Pls suggest.
    Best regards,
    Srikanth Reddy

    Hi Sikinder:
    The calculation i mentioned here are the SAP system calculations, not from the legacy.
    I just wanted to know is the system behavior in my scenario is correct?
    And how the Employer EPF/EPN contributions are claculated in case of Arrears?
    As far as i know the ceiling for Employer EPN contribution is only Rs. 541.00 per month. And the rest all amount goes to Employer PF contribution WT.
    Pls let me know the best practice.
    Best regards,
    Srikanth Reddy

  • Payroll arrears critical situation for payment

    dear gurus,
    i am having a big problem in paying arrears automatically through the oracle payroll.
    Following is the issue:
    we are on GB legislation but the company is a public sector company with staff of 4500 employees with employees scattered around various regions/districts.
    some times it takes 2 months for the data entry clerk to finaly receive a hard copy of the memo stating that 10 employees must be set into the system as of 01-Jan-2011 and the same month when the memo is delivered from the management requesting to make arrears (Retro) payments to all the employees that have been created into the system in current pay period but with effective date set to 01-Jan-2011.
    My question is :
    Is it possible to set employees into the system with back dated date (lets say 01-Jan-2011 in our case) and run the Retropay by element process (to make arrears payment in current month) so that all those employees that have been set into the system in the current pay period but with effective date as 01-Jan-2011 are paid arrears using Retropay by element process?
    if above is not possible please help with the problem of

    Hello
    I assume you approach is correct to create employees with back dated hire date and make the payment with the Retropay by element process in the current pay period but willng to override by other members of the forum.
    Hope this helps !
    Gaurav

  • PF & Pension Deduction on Basic Arrears

    Dear Consultnats,
    May I know in which Wagetype, Employer's PF & Pension contribution on Basic Arrears is stored ? I have marked Basic Arrears Wagetype 1ARR for Cumulation Class 11 (EPF Basis). Still the Pay slip shows the Employer PF & Pension basis as only current Basic & NOT as Basic + Basic Arrears. In Form 12 A also only Basic is shown but we need Basic + Basic Arrears
    How can I include Basic Arrears in PF Basis?
    Regards
    Bindumadhav
    Edited by: BINDUMADHAV AMBIKE on Dec 9, 2009 3:41 PM

    Dear Vikram & Ramm,
    Many thanks for your help.
    Here my problem is When any employee is given Basic & DA Arrears, his (employee) PF contribution on Arrears is calculataed & deducted but Employer's contribution is not calculated. Even employer's PF Basis for that month does not show original values + Arrears. It only shows original Basic + DA & calculates Er PF Contribution on it.
    /ZF5 is Arrears of Ee PF Contribution. Similarly I created two wagetypes /XF5 = Er PF Contri Arrears & /YF5 = Er Pension Contri Arrears. I copied IN42, 43, 44 in ZN42, 43, 44. & like /3F5 (Ee Monthly PF Contri), I added following nodes by replacing /3F5 by /3F3 & /3F4. & /AF5 by /BF5 & /CF5.
    ZN42
    /3F5
    ELIMI *
    SUBWTD/AF5
    ZN43
    /3F5
    ELIMI *
    ADDWTD/AF5
    ZN44
    /AF5
    ELIMI *
    ADDWTE/ZF5
    In the payslip I added my wagetypes /XF5 & /YF5 but both these wagetypes show original values of Er Contribution & not the arrears. Is the logic correct or not ? How can I add Basic Arrears & DA Arrears in the Er PF & Pension Basis ?
    Regards
    Bindumadhav
    Regards
    Bindumadhav

  • Copy of WT MD60 'Arrears Recovery' not clearing Ded. WT amount from ARRS

    Since I can't search only the Threads in HCM I will have to make my own question.  Hope soemone has run into this before.
    Using US Payroll, copy of schema QP00, we have 2 situations with deductions in arrears that I have not found a working solution.
    1)  How do we clear (throw away) amounts in ARRRS table from deductions on an employee terminated years ago?  When they return to us as an Active employee the payroll run applies those deductions in arrears, as it should.  But if we want to forgive those, what can we do so those old arrears amounts are cleared on the employee's first payroll?
    2)  When an employee on LWOP returns, (and new deductions are being taken that already have amounts in ARRRS) we want to place them on a repayment plan to gradually repay the arrears.
    Even though I made customer copies of WTs MD60, MD70, MD80, MD90 at the same time (for each deduction WT we place in arrears), and verified all the links in T51P1, and Prc Class settings; the payroll run still takes as much net pay as needed to clear those arrears.  And will take the repayment deduction (copy of MD80) from IT 14 as well!!!  So the arrears are cleared, but sadly only from the employee's net pay.
    I also have a Balance WT and Recovery WT in IT 15, as directed in all the SAP documentation I can find.  And the link to the actual deduction (a copy of WT MD50), that was placed in ARRRS to begin with, is in place on T51P1 as well.  The repayment deduction WT does correctly reduce the Balance WT (copy of MD70) and creates the Total WT (copy of MD90) with the correct amount during the Payroll run.
    I am not fluent in PCRs, but have extensive ABAP skills, and if I had to guess what is wrong, it would appear that something is not right in one or more of the delivered PCRs in the UDP0 schema.  And most likely the URRS PCR, since it looks like that's what processes the MD60 WT copy.
    Any advice from someone who's had similar situations, and resolved that, would be greatly appreciated.
    Thanks,
    Mark

    Frederic's right... you're summing up too many statspacks ..
    Can't see anything specific apart from the fact that Statspack itself is showing up in the top statements.
    First : define 'Slow' . What is your goal for 'Ok' ?
    Start thinking about sql_trace, tkprof and 10046 traces

  • How to exclude salary arrears from pension deduction?

    I have setup a pension retro element and its calculating the retro amount correctly.
    However, its using sum of salary arrears (say,arrears for the month of March and April) and adding that to May salary and deducting pension on the total sum.
    (we do not want this, we want only May salary to be considered for pension retro element)
    Does anyone know how to exclude salary arrears from pension deduction element? Is there any obvious step, which I am missing in while defining the element?

    Hi,
    While doing retro for arrears, it will give at a time in one payroll only, no standard for installment payments.
    2nd option:
    Calculate the Total Arrears amount and divide it by four installments and through IT 0014 with New wage type and give for 4 months as start and end date.
    * you have to create a new wage type which is taxable and assigned to IT 0014.
    * add this new wt in Remuneration form in Earnings side.
    Regards,
    Praneeth kumar

  • Arrears calculation for Form 3A for EPF

    Dear gurus
    Arrears will not be shown in forms 3A and 6A, instead they will be shown in the month in which they have originated.
    Example. . if basic is increased effective from Jan in feb, and arrears are paid in Feb, the contribution for these arrears will not be shown in Feb, but will be shown for the month of Jan.
    Is there any user exit or badi to control this??
    I am using statdard report for that through transaction code PC00_m40_PFY.
    Please Help.
    Regards
    Waseem,

    Hi
    I am using version 4.7 C and the SAP note you  told me is for 4.6.
    Please revert back if have any idea.
    Regards
    Waseem

  • Arrears calculation for Form 3A for Provident Fund

    Hi,
    Arrears will not be shown in forms 3A and 6A, instead they will be shown in the month in which they have originated.
    Example. . if basic is increased effective from Jan in feb, and arrears are paid in Feb, the contribution for these arrears will not be shown in Feb, but will be shown for the month of Jan.
    Is there any user exit or badi to control this??
    I am using statdard report for that through transaction code PC00_m40_PFY.
    and we have latest version ecc 6.0
    Please Help..
    Regards
    pramod

    Hi
    The situtation which you had described can be changed by chaning the PF deduction methood to gross carry forward.
    IN Standard PF retro behaviour follows the deduction carry forward method in which the PF deduction of any previous period will appear in the monthly return of that respective month. This is as per our understanding from where any retro change should be applicable for that period.
        For any alternate behaviour you may choose the Gross Carry Forward forward method for the retro.
    SAP note  No: 431991:  "Changing Retroactive Behavior of PF Functionality". You need to follow the steps as mentioned in the SAP note.

  • DDNTK and ARREARS PROCESSING???

    In Indonesian payroll during processing of PRPRI function the net amount (/550)is taken and other deductions which are marked for arrears processing are compared for sufficient deductions and if enough net amount(/550) doesn't exist then based on arrears entry in t51p6,amount is deducted from /550 and the rest maintained in arrears table to be processed in next payroll.
    I am not clear while arriving at /550 ,/110 is already taken into consideration and amount is deducted. Why is the system again deducting in PRPRI function? Its showing wrong values on payslip.Where the issue could be? Any thoughts?
    Ex:  Deduction wt 7700.PC20:1 PC41:3 t51p6 entry priority:C arrears processing:3 no retro accounting. Now in gross to net calculation /550 is arrived after deducting /110,tax and pf contributions from /101.Now the payroll log is going to PRPRI function and again the entries marked for arrears processing are deducted from /550 resulting in reduced net pay?Where is the issue?how should I proceed?

    I'm not familiar with Indonesia's Payroll, but I believe that the basic principles should be similar for all Countries (but I may be wrong).
    In Canada, if the employee does not have enough net earnings to cover all his/her deductions, then it loops in sub-schema KDD0.  The deductions are then prioritized according to the WT's Priority in V_T51P6, and the amounts that can't be deducted are transfered into table DDNTK (Deductions not taken), and some are transfered int table ARRRS for processing in the next pay (depending on the WT's Arrears parameters in V_T51P6).
    /550 should represent Gross Earnings less the Statutory Deductions (such as Income Tax and other government mandated deductions).  It is the amount from which the other Deductions (sometimes referred to Contractual and Voluntary Deductions) and Garnishments are deducted from.
    If a deduction is not taken and transfered to arrears, it should not impact the net pay.

  • When clicking on Time Capsule in the Finder Sidebar, it doesn't connect.

    Disclaimer: Apple does not necessarily endorse any suggestions, solutions, or third-party software products that may be mentioned in the topic below. Apple encourages you to first seek a solution at Apple Support. The following links are provided as is, with no guarantee of the effectiveness or reliability of the information. Apple does not guarantee that these links will be maintained or functional at any given time. Use the information below at your own discretion.
    Once in a while when I click on Time Capsule's icon in the sidebar of the finder window, I am unable to connect to Time Capsule. Yet, if I use the "Connect to Server..." command, I'm able to do so.
    A possible problem is that there is something wrong with your IP address even though you are able to connect to the internet. Whatever the reason, this worked for me:
    1. go to Apple > System Preferences > Network
    2. Click on the Advanced button
    3. Find and click on "Renew DHCP Lease" usually under TCP/IP
    This has solved my problem. Now I can directly access Time Capsule from the sidebar.
    Another fix is to go to Time Machine under System Preferences, select "None" for hard drive, turn off Time Machine, then turn it back on and reselect Time Capsule as the hard drive to backup.
    All previous backups remain intact and nothing will be lost.
    What I suspect is that there is some kind of mismatch between Bonjour and the IP address. This may happen after I've restarted the Time Capsule or after I directly connect to the Time Capsule via ethernet cable and then later access it using Wifi.
    Do you want to provide feedback on this User Contributed Tip or contribute your own? If you have achieved Level 2 status, visit the User Tips Library Contributions forum for more information.

    Start Firefox in [[Safe Mode]] to check if one of the add-ons is causing the problem (switch to the DEFAULT theme: Tools > Add-ons > Themes).
    * Don't make any changes on the Safe mode start window.
    See:
    * [[Troubleshooting extensions and themes]]

  • Time out error 1.6 million internal table fields are computed using FMs

    Hi , All ...
    The Report running fine in server with less 300 record but ...production server which has 1.6 million record it  gives error as time-out error and takes hell amount of time.
    Please suggest ugently ..
    I have tried few things
    Internal table having 1.6 lacs ... fields to compute .. i have token in a batch
    loop at i_cinfo into s_cinfo from 1 to  100000.
    and so on ...also applied all the performace related .. like indexs, work areas , deleting adjacent duplicates , for all entries ..wherever applicable.
    Please Suggest .
    Report is as below
    REPORT  ZUSOTCBD_CREDIT_REPORT .
    TABLES : KNA1,    " General Data Customer Master
             KNB1,    " Customer Master (Company Code)
             KNC1,    " Customer master (transaction figures)
             KNKK,    " Customer master credit management: Control area data
             T009,    " Fiscal Year Variants P
             T009Y,   " Shortened fiscal years in Asset Accounting P
             T001,    " Co. Codes
             T001CM,  " Permitted Credit Control Areas per Company Code
             RF42B,   " Structure to hold credit data.
             RF035,   " Structure to hold credit managment fields
             RF02L,   " Structure to hold credit data.
             TRAS,    " Interval for Days in Arrears P
             T000CM.  " Data for DSO calculation.
    Types
    TYPES:
      BEGIN OF type_final,
        string(50) TYPE c,                            " String Value for Title
      END OF type_final.
    data:wa_final     TYPE type_final.                " Work Area to hold Title Data
    DATA:    RASID    TYPE RF035-RASID value 'R03N'. " For Days in interval
    DATA:    MONAT(2) TYPE N.
    DATA:    GJAHR    TYPE  KNC1-GJAHR.
    DATA:    LD_PERIODS(32) TYPE N
                           VALUE '01020304050607080910111213141516'.
    DATA     sytabix type sy-tabix.
    DATA     LAND      TYPE KNA1-LAND1 VALUE 'US'.   " Country Key
    DATA:   LD_PERIOD    TYPE BSID-MONAT,            " Fiscal Year Variant
            LD_GJAHR   TYPE KNC1-GJAHR,
            LD_COUNTER TYPE SY-TABIX.
    Internal Tables
    Internal table to hold Title Data                                   *
    DATA:
      i_final    TYPE STANDARD TABLE OF type_final.
    **Internal Table Permitted Credit Control Areas per Company Code
    DATA:    BEGIN OF TCMTAB OCCURS 10.
            INCLUDE STRUCTURE T001CM.
    DATA:    END   OF TCMTAB.
    *Internal table to store Customer no.
    DATA :  BEGIN OF ICUST OCCURS 0,
               KUNNR             TYPE KNA1-KUNNR,    " Customer No.
            END   OF ICUST.
    DATA:    BEGIN OF BUKTAB OCCURS 20,
               KKBER             LIKE T001-KKBER,    " Credit Control Area
               BUKRS             LIKE T001-BUKRS,    " Co. Code
               WAERS             LIKE T001-WAERS,    " Currency
               PERIV             LIKE T001-PERIV,    " Fiscal Year Variant
               BUTXT             LIKE T001-BUTXT,
             END   OF BUKTAB.
    Internal Table to store Fiscal year Data .
    DATA:    BEGIN OF GJATAB OCCURS 5,
               PERIV             LIKE T001-PERIV,    " Fiscal Year Variant
               GJAHR             LIKE KNC1-GJAHR,    " Fiscal Year
               MONAT             LIKE T009-ANZBP,    "
               ANZBP             LIKE T009-ANZBP,    " Number of posting periods
             END   OF GJATAB.
    *Main Output internal table to be used to store credit history Information
    DATA : BEGIN OF I_CINFO occurs 0,
                 KUNNR TYPE   KNB1-KUNNR,     " Customer
                 KNKLI TYPE   KNKK-KNKLI,     " Customer's account number with credit limit reference
                 KKBER TYPE   KNKK-KKBER,     " Credit Control Area
                 CTLPC TYPE   KNKK-CTLPC,     " Risk Category
                 KLIMK TYPE   KNKK-KLIMK,     " Credit Limit
                 SBGRP TYPE   KNKK-SBGRP,     " Credit representative group for credit management
                 ERDAT TYPE   KNKK-ERDAT,     " Created On
                 DTREV TYPE   KNKK-DTREV,     " Last Internal Review
                 REVDB TYPE   KNKK-REVDB,     " Last External Review
                 SALDO TYPE   RF42B-SALDO,    " Balance
                 DSOIN TYPE   RF02L-DSOIN,    " DSO
                 H06SA TYPE   RF035-H06SA,    " Highest Balance at the end of 6 Months
                 H06JA TYPE   RF035-H06JA,    " Year highest Balance 6 Months
                 H06MO TYPE   RF035-H06MO,    " Month OF hihest Balance 6 Months
                 H12SA TYPE   RF035-H12SA,    " Highest Balance at the end of 12 Months
                 H12JA TYPE   RF035-H12JA,    " Year highest Balance 12 Months
                 H12MO TYPE   RF035-H12MO,    " Month OF hihest Balance 12 Months
                 UMP2U TYPE   RF42B-UMP2U,    " Sales from the current Year
                 UMP1U TYPE   RF42B-UMP1U,    " Sales from the Previous Year
                 SFAEL TYPE   RF035-SFAEL,    " Total Past Due Open Item
                 SFAE1 TYPE   RF035-SFAE1,    " Aging buckets 0-15
                 SFAE2 TYPE   RF035-SFAE2,    " Aging buckets 16-30
                 SFAE3 TYPE   RF035-SFAE3,    " Aging buckets 31-60
                 SFAE4 TYPE   RF035-SFAE4,    " Aging buckets 60-90
                 SFAE5 TYPE   RF035-SFAE5,    " Aging buckets Over 90
          END Of I_CINFO.
    DATA : BEGIN OF S_CINFO ,
                 KUNNR TYPE   KNB1-KUNNR,     " Customer
                 KNKLI TYPE   KNKK-KNKLI,     " Customer's account number with credit limit reference
                 KKBER TYPE   KNKK-KKBER,     " Credit Control Area
                 CTLPC TYPE   KNKK-CTLPC,     " Risk Category
                 KLIMK TYPE   KNKK-KLIMK,     " Credit Limit
                 SBGRP TYPE   KNKK-SBGRP,     " Credit representative group for credit management
                 ERDAT TYPE   KNKK-ERDAT,     " Created On
                 DTREV TYPE   KNKK-DTREV,     " Last Internal Review
                 REVDB TYPE   KNKK-REVDB,     " Last External Review
                 SALDO TYPE   RF42B-SALDO,    " Balance
                 DSOIN TYPE   RF02L-DSOIN,    " DSO
                 H06SA TYPE   RF035-H06SA,    " Highest Balance at the end of 6 Months
                 H06JA TYPE   RF035-H06JA,    " Year highest Balance 6 Months
                 H06MO TYPE   RF035-H06MO,    " Month OF hihest Balance 6 Months
                 H12SA TYPE   RF035-H12SA,    " Highest Balance at the end of 12 Months
                 H12JA TYPE   RF035-H12JA,    " Year highest Balance 12 Months
                 H12MO TYPE   RF035-H12MO,    " Month OF hihest Balance 12 Months
                 UMP2U TYPE   RF42B-UMP2U,    " Sales from the current Year
                 UMP1U TYPE   RF42B-UMP1U,    " Sales from the Previous Year
                 SFAEL TYPE   RF035-SFAEL,    " Total Past Due Open Item
                 SFAE1 TYPE   RF035-SFAE1,    " Aging buckets 0-15
                 SFAE2 TYPE   RF035-SFAE2,    " Aging buckets 16-30
                 SFAE3 TYPE   RF035-SFAE3,    " Aging buckets 31-60
                 SFAE4 TYPE   RF035-SFAE4,    " Aging buckets 60-90
                 SFAE5 TYPE   RF035-SFAE5,    " Aging buckets Over 90
          END Of s_cinfo.
    *Internal table to hold month-wise balance.
    DATA:    BEGIN OF SALTAB OCCURS 12,
               LNUMM(2)     TYPE N,             " Month
               SALDO        LIKE RF42B-SALDO,   " Balance
             END   OF SALTAB.
    *Internal table used for computing the Balance fields
    DATA:    BEGIN OF SALDO,
               UML01             LIKE KNC1-UM01S,
               UML02             LIKE KNC1-UM01S,
               UML03             LIKE KNC1-UM01S,
               UML04             LIKE KNC1-UM01S,
               UML05             LIKE KNC1-UM01S,
               UML06             LIKE KNC1-UM01S,
               UML07             LIKE KNC1-UM01S,
               UML08             LIKE KNC1-UM01S,
               UML09             LIKE KNC1-UM01S,
               UML10             LIKE KNC1-UM01S,
               UML11             LIKE KNC1-UM01S,
               UML12             LIKE KNC1-UM01S,
             END   OF SALDO.
    Structure to hold Bal fields ------ -------
    DATA:    BEGIN OF SKNKK,
               KUNNR             LIKE KNA1-KUNNR,  " Customer Number 1: Debitor
               KONTO             LIKE KNKK-KUNNR,
               SFAE1             LIKE RF035-SFAE1, " Aging buckets 0-15
               SFAE2             LIKE RF035-SFAE2, " Aging buckets 16-30
               SFAE3             LIKE RF035-SFAE3, " Aging buckets 30-60
               SFAE4             LIKE RF035-SFAE4, " Aging buckets 60-90
               SFAE5             LIKE RF035-SFAE5, " Aging buckets Over 90
               SFAEL             LIKE RF035-SFAEL, " Total Due of Items
               UML01             LIKE KNC1-UM01S,
               UML02             LIKE KNC1-UM01S,
               UML03             LIKE KNC1-UM01S,
               UML04             LIKE KNC1-UM01S,
               UML05             LIKE KNC1-UM01S,
               UML06             LIKE KNC1-UM01S,
               UML07             LIKE KNC1-UM01S,
               UML08             LIKE KNC1-UM01S,
               UML09             LIKE KNC1-UM01S,
               UML10             LIKE KNC1-UM01S,
               UML11             LIKE KNC1-UM01S,
               UML12             LIKE KNC1-UM01S,
               UMP1U             LIKE RF42B-UMP1U, " Sales from the Previous Year
               UMP2U             LIKE RF42B-UMP2U, " Sales from the current Year
               SALDO             LIKE RF42B-SALDO, " Balance
             END   OF SKNKK.
    DATA :  BEGIN OF ICUST1 OCCURS 0,
               KUNNR             TYPE KNA1-KUNNR,    "For Customer Filter.
            END   OF ICUST1.
    **Internal table to hold fiscal varriants
    DATA: BEGIN OF LT_PERIODS OCCURS 12,
             PERIOD LIKE BSID-MONAT,
             GJAHR  LIKE KNC1-GJAHR,
           END OF LT_PERIODS.
    **Constants
    constants :  BUKRS1 TYPE KNB1-BUKRS VALUE '1000',
                 BUKRS2 TYPE KNB1-BUKRS VALUE '1031',
                 Recs   Type i value '200',
                 B_count type i value '2'.
          INITIALIZATION
    INITIALIZATION.
      IF RASID IS INITIAL.
        SELECT * FROM TRAS.
          EXIT.
        ENDSELECT.
        IF SY-SUBRC = 0.
          RASID = TRAS-RASID.
        ENDIF.
      ENDIF.
    SELECTION-SCREEN
      parameters : p_path type rlgrap-filename default 'C:\Documents and Settings\C890971\Desktop\Credit_history.XLS'.
    Start of selection processing
    START-OF-SELECTION.
    **Get Customers for Co. Code 1000 & 1031.
      PERFORM GET_CUST.
    Get  / Compute Credit Information data for Company Codes 1000 & 1031.
      PERFORM GET_CREDIT_DATA.
    End of selection processing
    *END-OF-SELECTION.
    Listing Credit History Data
      PERFORM DOWNLOAD_CREDIT_DATA.
    S U B R O U T I N E S
    *&      Form  GET_CUST
          text
    -->  p1        text
    <--  p2        text
    FORM GET_CUST .
    Get US only Customers.
      Refresh icust.
      Select kunnr from kna1 appending table icust
                                   where Land1 = land.
    **Delete duplicate records
      Delete Adjacent duplicates from icust comparing kunnr.
      if icust[] is not initial.
       Limit the selection some more to Co. Code 1000 & 1031
      As join will cost overhead as compared.
      Select kunnr from knb1 into table icust1
                                  for all entries in icust
                                  where kunnr = icust-kunnr
                                  and   bukrs = bukrs1
                                  OR    bukrs = bukrs2.
    **Delete duplicate records
      Delete Adjacent duplicates from icust1 comparing kunnr.
       endif.
    **Free memory.
      Free icust.
    Credit Control Area
      select * from T001CM into table TCMTAB
                           where bukrs = bukrs1 OR
                                 bukrs = bukrs2.
    ENDFORM.                    " GET_CUST
    *&      Form  GET_CREDIT_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM GET_CREDIT_DATA .
      DATA : L_TEXT(60) TYPE C ,
             Ltext1(50) type C value 'Computing Credit-History Data For',
             Ltext2(10) type C value 'Customers',
             L_PCT type i value '10',
             L_recs type i,
             l_batch_recs type i,
             l_s_rec type i value 1,
             l_recs1(7) type N.
    ***Fetch data from KNKK table
      PERFORM GET_KNKK_DATA  .
    ***Computing Crredit Fields
    **Number of Customers For whom Deatils needed.
      Describe table I_CINFO lines l_recs.
      l_recs1 = l_recs.
      Concatenate Ltext1 l_recs1 Ltext2 into l_text separated by ' '.
      PERFORM GET_PGRESS_INDICATOR USING l_text l_pct.
    ***If records are more than 200000, should be processed  batch-wise
      If l_recs > recs.
        l_batch_recs = abs( l_recs / b_count ).
        Do b_count times.
          loop at i_cinfo INTO S_CINFO from l_S_REC to l_batch_recs.
    **Remember the row
            sytabix = sy-tabix.
    **Compute DSO
            PERFORM GET_DSO_FIELD .
    Compute rest credit history data.
            PERFORM COMPUTE_SFIELDS.
          endloop.
          l_S_REC = l_S_REC + l_batch_recs.
          l_batch_recs = l_batch_recs + l_batch_recs.
          IF l_batch_recs ge l_recs.
            l_batch_recs = l_recs.
          eNDIF.
    Commit up to here to release the DB locks.
          Commit work.
        enddo.
      else.
        loop at i_cinfo INTO S_CINFO.
    **Remember the row
          sytabix = sy-tabix.
    **Compute DSO
          PERFORM GET_DSO_FIELD .
    Compute rest credit history data.
          PERFORM COMPUTE_SFIELDS.
        endloop.
      Endif.
    ENDFORM.                    " GET_CREDIT_DATA
    *&      Form  GET_KNKK_DATA
          text
         -->P_ICUST_KUNNR  text
    FORM GET_KNKK_DATA .
      if icust1[] is not initial.
      SELECT   KUNNR KNKLI KKBER  CTLPC KLIMK
               SBGRP ERDAT DTREV REVDB
               from KNKK into corresponding fields of table I_Cinfo
               for all entries in icust1
               where kunnr = icust1-kunnr.
      Delete Adjacent duplicates from i_cinfo comparing kunnr.
      endif.
    **Free Memory for internal table icust1.
      Free icust1.
    ENDFORM.                    " GET_KNKK_DATA
    **&      Form  GET_DSO_FIELD
          text
    -->  p1        text
    <--  p2        text
    FORM GET_DSO_FIELD .
    ***Determine DSO Parameter
      PERFORM DSO_PARAMETER.
    ***Compute DSO
      CALL FUNCTION 'CUSTOMER_DSO_CALCULATION'
        EXPORTING
          I_KKBER       = s_cinfo-kkber
          I_KUNNR       = s_cinfo-kunnr
          I_ANZBUPER    = T000CM-DSOPP
          I_XCHILDS     = T000CM-DSOCH
          I_ACTBALANCE  = T000CM-DSOAB
        IMPORTING
          E_DSOIN       = RF02L-DSOIN
        EXCEPTIONS
          ERROR_MESSAGE = 1.
    ENDFORM.                    " GET_DSO_FIELD
    *&      Form  DSO_PARAMETER
          text
    -->  p1        text
    <--  p2        text
    FORM DSO_PARAMETER.
      IF T000CM-DSOPP IS INITIAL.
        SELECT SINGLE * FROM T000CM.
        IF SY-SUBRC     EQ 0.
          IF T000CM-DSOPP IS INITIAL.
            T000CM-DSOPP = '003'.
          ENDIF.
        ELSE.
          T000CM-DSOPP = '003'.
          T000CM-DSOCH = ' '.
          T000CM-DSOAB = 'X'.
        ENDIF.
      ENDIF.
    ENDFORM.                    " DSO_PARAMETER
    -->  p1        text
    <--  p2        text
    FORM PERIODE_ERMITTELN_EXC USING
                P03_BUDAT    LIKE SYST-DATUM
                P03_GJAHR    LIKE KNC1-GJAHR
                P03_MONAT    LIKE MONAT.
      CALL FUNCTION 'FI_PERIOD_DETERMINE'
           EXPORTING
                I_BUDAT = P03_BUDAT
                I_PERIV = T001-PERIV
              I_BUKRS = T001-BUKRS
                I_GJAHR = P03_GJAHR
                I_MONAT = P03_MONAT
           IMPORTING
                E_GJAHR = P03_GJAHR
                E_MONAT = P03_MONAT
           EXCEPTIONS
                ERROR_MESSAGE = 1.
    ENDFORM.                    "PERIODE_ERMITTELN_EXC
    *&      Form  COMPUTE_SFIELDS
          text
    -->  p1        text
    <--  p2        text
    FORM COMPUTE_SFIELDS .
    **Compute Balance
      PERFORM GET_SFIELDS .
      S_CINFO-DSOIN = RF02L-DSOIN.
      S_CINFO-SALDO = RF035-SALDO.
      S_CINFO-H06SA = RF035-H06SA.
      S_CINFO-H06JA = RF035-H06JA.
      S_CINFO-H06MO = RF035-H06MO.
      S_CINFO-H12SA = RF035-H12SA.
      S_CINFO-H12JA = RF035-H12JA.
      S_CINFO-H12MO = RF035-H12MO.
      S_CINFO-UMP2U = RF42B-UMP2U.
      S_CINFO-UMP1U = RF42B-UMP1U.
      S_CINFO-SFAEL = RF035-SFAEL.
      S_CINFO-SFAE1 = RF035-SFAE1.
      S_CINFO-SFAE2 = RF035-SFAE2.
      S_CINFO-SFAE3 = RF035-SFAE3.
      S_CINFO-SFAE4 = RF035-SFAE4.
      S_CINFO-SFAE5 = RF035-SFAE5.
    modify..
      MODIFY I_CINFO FROM S_CINFO INDEX sytabix.
      CLEAR: S_CINFO,RF035,RF02L, RF42B.
    ENDFORM.                    " COMPUTE_SFIELDS
          text
         -->P_C_INFO_KUNNR  text
    FORM GET_CUST_BAL_INFO.
      LOOP AT TCMTAB.
        CALL FUNCTION 'FI_COMPANY_CODE_DATA'
          EXPORTING
            I_BUKRS       = TCMTAB-BUKRS
          IMPORTING
            E_T001        = T001
          EXCEPTIONS
            ERROR_MESSAGE = 1.
        IF SY-SUBRC = 0.
          MOVE-CORRESPONDING T001 TO BUKTAB.
          BUKTAB-KKBER = TCMTAB-KKBER.
          COLLECT BUKTAB.
        ENDIF.
      ENDLOOP.
      LOOP AT BUKTAB WHERE PERIV NE SPACE.
        GJATAB-PERIV = BUKTAB-PERIV.
        COLLECT GJATAB.
      ENDLOOP.
      CLEAR: MONAT.
      LOOP AT GJATAB.
        T001-PERIV = GJATAB-PERIV.
        CLEAR: GJAHR, MONAT.
        PERFORM PERIODE_ERMITTELN_EXC USING SY-DATLO GJAHR MONAT.
        CHECK SY-SUBRC = 0.
        GJATAB-GJAHR = GJAHR.
        GJATAB-MONAT = MONAT.
        SELECT SINGLE * FROM T009 WHERE PERIV = GJATAB-PERIV.
        IF SY-SUBRC = 0.
          GJATAB-ANZBP = T009-ANZBP.
        ENDIF.
        MODIFY GJATAB.
      ENDLOOP.
      LOOP AT BUKTAB.
        CHECK NOT ( BUKTAB-PERIV IS INITIAL ).
        READ TABLE GJATAB WITH KEY BUKTAB-PERIV.
        CHECK SY-SUBRC = 0
          AND NOT ( GJATAB-GJAHR IS INITIAL ).
        CALL FUNCTION 'CUSTOMER_BALANCE'
          EXPORTING
            KUNNR      = S_cinfo-kunnr
            BUKRS      = BUKTAB-BUKRS
            GJAHR      = GJATAB-GJAHR
            MONAT      = GJATAB-MONAT
            PERIV      = GJATAB-PERIV
            ANZBP      = GJATAB-ANZBP
            XH6MON     = 'X'
            XH12MON    = 'X'
          IMPORTING
            UMP2U      = RF42B-UMP2U
            VMP2U      = RF42B-UMP1U
            SALDO      = RF035-SALDO
            UML01      = SALDO-UML01
            UML02      = SALDO-UML02
            UML03      = SALDO-UML03
            UML04      = SALDO-UML04
            UML05      = SALDO-UML05
            UML06      = SALDO-UML06
            UML07      = SALDO-UML07
            UML08      = SALDO-UML08
            UML09      = SALDO-UML09
            UML10      = SALDO-UML10
            UML11      = SALDO-UML11
            UML12      = SALDO-UML12
          EXCEPTIONS
            NO_BALANCE = 4.
        IF SY-SUBRC = 0.
          SKNKK-UMP1U = SKNKK-UMP1U + RF42B-UMP1U.
          SKNKK-UMP2U = SKNKK-UMP2U + RF42B-UMP2U.
          SKNKK-SALDO = SKNKK-SALDO + RF035-SALDO.
          SKNKK-UML01 = SKNKK-UML01 + SALDO-UML01.
          SKNKK-UML02 = SKNKK-UML02 + SALDO-UML02.
          SKNKK-UML03 = SKNKK-UML03 + SALDO-UML03.
          SKNKK-UML04 = SKNKK-UML04 + SALDO-UML04.
          SKNKK-UML05 = SKNKK-UML05 + SALDO-UML05.
          SKNKK-UML06 = SKNKK-UML06 + SALDO-UML06.
          SKNKK-UML07 = SKNKK-UML07 + SALDO-UML07.
          SKNKK-UML08 = SKNKK-UML08 + SALDO-UML08.
          SKNKK-UML09 = SKNKK-UML09 + SALDO-UML09.
          SKNKK-UML10 = SKNKK-UML10 + SALDO-UML10.
          SKNKK-UML11 = SKNKK-UML11 + SALDO-UML11.
          SKNKK-UML12 = SKNKK-UML12 + SALDO-UML12.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    "
    *&      Form  GET_SFIELDS
          text
    -->  p1        text
    <--  p2        text
    FORM GET_SFIELDS .
      sknkk-kunnr = S_CINFO-KUNNR.
    **Clear target to store computed values
      CLEAR: RF035.
    **Compute Balance fields
      PERFORM GET_CUST_BAL_INFO.
      REFRESH: SALTAB.
      SALTAB-LNUMM = '01'. SALTAB-SALDO = SKNKK-UML01. APPEND SALTAB.
      SALTAB-LNUMM = '02'. SALTAB-SALDO = SKNKK-UML02. APPEND SALTAB.
      SALTAB-LNUMM = '03'. SALTAB-SALDO = SKNKK-UML03. APPEND SALTAB.
      SALTAB-LNUMM = '04'. SALTAB-SALDO = SKNKK-UML04. APPEND SALTAB.
      SALTAB-LNUMM = '05'. SALTAB-SALDO = SKNKK-UML05. APPEND SALTAB.
      SALTAB-LNUMM = '06'. SALTAB-SALDO = SKNKK-UML06. APPEND SALTAB.
      SALTAB-LNUMM = '07'. SALTAB-SALDO = SKNKK-UML07. APPEND SALTAB.
      SALTAB-LNUMM = '08'. SALTAB-SALDO = SKNKK-UML08. APPEND SALTAB.
      SALTAB-LNUMM = '09'. SALTAB-SALDO = SKNKK-UML09. APPEND SALTAB.
      SALTAB-LNUMM = '10'. SALTAB-SALDO = SKNKK-UML10. APPEND SALTAB.
      SALTAB-LNUMM = '11'. SALTAB-SALDO = SKNKK-UML11. APPEND SALTAB.
      SALTAB-LNUMM = '12'. SALTAB-SALDO = SKNKK-UML12. APPEND SALTAB.
      READ TABLE SALTAB INDEX 1.
      RF035-H06SA = SALTAB-SALDO.
      RF035-H06MO = SALTAB-LNUMM.
      RF035-H12SA = SALTAB-SALDO.
      RF035-H12MO = SALTAB-LNUMM.
    ------ SALTAB ---------------------------------------------
      LOOP AT SALTAB.
        IF  SALTAB-SALDO > RF035-H06SA
        AND SY-TABIX     < 7.
          RF035-H06SA = SALTAB-SALDO.
          RF035-H06MO = SALTAB-LNUMM.
        ENDIF.
        IF  SALTAB-SALDO > RF035-H12SA
        AND SY-TABIX     < 13.
          RF035-H12SA = SALTAB-SALDO.
          RF035-H12MO = SALTAB-LNUMM.
        ENDIF.
      ENDLOOP.
    ------ Period--------------------
      REFRESH LT_PERIODS.
      CLEAR LD_COUNTER.
      READ TABLE BUKTAB INDEX 1.
      IF SY-SUBRC = 0.
        READ TABLE GJATAB WITH KEY BUKTAB-PERIV.
        DO GJATAB-MONAT TIMES
           VARYING LD_PERIOD FROM LD_PERIODS(2) NEXT LD_PERIODS+2(2)
                                                     RANGE LD_PERIODS.
          LT_PERIODS-GJAHR  = GJATAB-GJAHR.
          LT_PERIODS-PERIOD = LD_PERIOD.
          LD_COUNTER = LD_COUNTER + 1.
          APPEND LT_PERIODS.
        ENDDO.
        IF LD_COUNTER LT 12.
          LD_GJAHR = GJATAB-GJAHR - 1.
          CLEAR T009Y.
          SELECT SINGLE * FROM T009Y WHERE PERIV = GJATAB-PERIV
                                       AND GJAHR = LD_GJAHR.
          DO GJATAB-ANZBP TIMES
             VARYING LD_PERIOD FROM LD_PERIODS(2) NEXT LD_PERIODS+2(2)
                                                       RANGE LD_PERIODS.
            IF T009Y-ANZBP > 0.
              CHECK SY-INDEX <= T009Y-ANZBP.
            ENDIF.
            LD_COUNTER = LD_COUNTER + 1.
            LT_PERIODS-GJAHR  = LD_GJAHR.
            LT_PERIODS-PERIOD = LD_PERIOD.
            APPEND LT_PERIODS.
          ENDDO.
        ENDIF.
        IF LD_COUNTER LT 12.
          LD_GJAHR = LD_GJAHR - 1.
          DO GJATAB-ANZBP TIMES
             VARYING LD_PERIOD FROM LD_PERIODS(2) NEXT LD_PERIODS+2(2)
                                                       RANGE LD_PERIODS.
            LD_COUNTER = LD_COUNTER + 1.
            LT_PERIODS-GJAHR  = LD_GJAHR.
            LT_PERIODS-PERIOD = LD_PERIOD.
            APPEND LT_PERIODS.
          ENDDO.
        ENDIF.
        SORT LT_PERIODS BY GJAHR ASCENDING PERIOD ASCENDING.
        LD_COUNTER = LD_COUNTER - 12.
        DO LD_COUNTER TIMES.
          DELETE LT_PERIODS INDEX 1.
        ENDDO.
        SORT LT_PERIODS BY GJAHR DESCENDING PERIOD DESCENDING.
        READ TABLE LT_PERIODS INDEX RF035-H06MO.
        RF035-H06MO = LT_PERIODS-PERIOD.
        RF035-H06JA = LT_PERIODS-GJAHR.
        READ TABLE LT_PERIODS INDEX RF035-H12MO.
        RF035-H12MO = LT_PERIODS-PERIOD.
        RF035-H12JA = LT_PERIODS-GJAHR.
      ENDIF.
    **Compute Due Dates fields
      PERFORM GET_AGING_BUCKETS .
      RF035-SFAE1 = SKNKK-SFAE1.
      RF035-SFAE2 = SKNKK-SFAE2.
      RF035-SFAE3 = SKNKK-SFAE3.
      RF035-SFAE4 = SKNKK-SFAE4 .
      RF035-SFAE5 = SKNKK-SFAE5.
    ENDLOOP.
    ENDFORM.                    " GET_BALANCE_SFIELDS
    *&      Form  GET_AGING_BUCKETS
          text
    -->  p1        text
    <--  p2        text
    FORM GET_AGING_BUCKETS .
      DATA: BEGIN OF LT_BUKRS OCCURS 0,
              BUKRS LIKE T001-BUKRS,
            END OF LT_BUKRS.
      DATA: BEGIN OF LT_BUKTAB OCCURS 0,
              BUKRS LIKE T001-BUKRS,
              WAERS LIKE T001-WAERS,
              KKBER LIKE T014-KKBER,
            END OF LT_BUKTAB.
      DATA: LD_LINES LIKE SY-TABIX.
    *...performance optimization: for more than one company codes check....*
    *...if balances exist and avoid selection of open items, if they don't.*
    *...exist..............................................................*
      REFRESH LT_BUKRS.
      REFRESH LT_BUKTAB.
      DESCRIBE TABLE BUKTAB LINES LD_LINES.
      IF LD_LINES GT 1.
        SELECT DISTINCT BUKRS APPENDING CORRESPONDING FIELDS
                                        OF TABLE LT_BUKRS
                              FROM KNC1 FOR ALL ENTRIES IN BUKTAB
                        WHERE BUKRS = BUKTAB-BUKRS AND
                              KUNNR = Sknkk-KUNNR.
        SELECT DISTINCT BUKRS APPENDING CORRESPONDING FIELDS
                                        OF TABLE LT_BUKRS
                              FROM KNC3 FOR ALL ENTRIES IN BUKTAB
                        WHERE BUKRS = BUKTAB-BUKRS AND
                              KUNNR = Sknkk-KUNNR.
        SORT LT_BUKRS.
        DELETE ADJACENT DUPLICATES FROM LT_BUKRS.
        LOOP AT LT_BUKRS.
          LOOP AT BUKTAB WHERE BUKRS = LT_BUKRS-BUKRS.
            MOVE-CORRESPONDING BUKTAB TO LT_BUKTAB.
            APPEND LT_BUKTAB.
          ENDLOOP.
        ENDLOOP.
      ELSE.
        READ TABLE BUKTAB INDEX 1.
        MOVE-CORRESPONDING BUKTAB TO LT_BUKTAB.
        APPEND LT_BUKTAB.
      ENDIF.
    *...process company codes for customer given by interface..........*
      LOOP AT LT_BUKTAB WHERE KKBER = s_cinfo-KKBER.
        CALL FUNCTION  'CUSTOMER_DUE_DATE_ANALYSIS'
             EXPORTING  BUKRS   = LT_BUKTAB-BUKRS
                       KKBER   = ' '
                        KKBER   = s_cinfo-KKBER
                        KUNNR   = Sknkk-KUNNR
                        RASID   = RASID
             IMPORTING  SFAE1   = RF035-SFAE1
                        SFAE2   = RF035-SFAE2
                        SFAE3   = RF035-SFAE3
                        SFAE4   = RF035-SFAE4
                        SFAE5   = RF035-SFAE5
                        SFAEL   = RF035-SFAEL
             EXCEPTIONS NO_OPEN_ITEMS = 4.
        IF SY-SUBRC = 0.
    *--  RF035 -
          SKNKK-SFAE1 = SKNKK-SFAE1 + RF035-SFAE1.
          SKNKK-SFAE2 = SKNKK-SFAE2 + RF035-SFAE2.
          SKNKK-SFAE3 = SKNKK-SFAE3 + RF035-SFAE3.
          SKNKK-SFAE4 = SKNKK-SFAE4 + RF035-SFAE4.
          SKNKK-SFAE5 = SKNKK-SFAE5 + RF035-SFAE5.
          SKNKK-SFAE5 = SKNKK-SFAE5 + RF035-SFAE5.
          SKNKK-SFAEL = SKNKK-SFAEL + RF035-SFAEL.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " GET_AGING_BUCKETS
    *&      Form  header
    This Subroutine gets data for displaying title                     *
    There are no interface parameters to be passed to this subroutine. *
    FORM header .
      wa_final-string = text-000.  APPEND wa_final TO i_final.
      wa_final-string = text-001.  APPEND wa_final TO i_final.
      wa_final-string = text-002.  APPEND wa_final TO i_final.
      wa_final-string = text-003.  APPEND wa_final TO i_final.
      wa_final-string = text-004.  APPEND wa_final TO i_final.
      wa_final-string = text-005.  APPEND wa_final TO i_final.
      wa_final-string = text-006.  APPEND wa_final TO i_final.
      wa_final-string = text-007.  APPEND wa_final TO i_final.
      wa_final-string = text-008.  APPEND wa_final TO i_final.
      wa_final-string = text-009.  APPEND wa_final TO i_final.
      wa_final-string = text-010.  APPEND wa_final TO i_final.
      wa_final-string = text-011.  APPEND wa_final TO i_final.
      wa_final-string = text-012.  APPEND wa_final TO i_final.
      wa_final-string = text-013.  APPEND wa_final TO i_final.
      wa_final-string = text-014.  APPEND wa_final TO i_final.
      wa_final-string = text-015.  APPEND wa_final TO i_final.
      wa_final-string = text-016.  APPEND wa_final TO i_final.
      wa_final-string = text-017.  APPEND wa_final TO i_final.
      wa_final-string = text-018.  APPEND wa_final TO i_final.
      wa_final-string = text-019.  APPEND wa_final TO i_final.
      wa_final-string = text-020.  APPEND wa_final TO i_final.
      wa_final-string = text-021.  APPEND wa_final TO i_final.
      wa_final-string = text-022.  APPEND wa_final TO i_final.
      wa_final-string = text-023.  APPEND wa_final TO i_final.
      wa_final-string = text-024.  APPEND wa_final TO i_final.
    ENDFORM.                               " header
    *&      Form  DOWNLOADCREDITDATA
          text
         -->P_P_PATH  text
    FORM DOWNLOADCREDITDATA  USING P_PATH.
      DATA:
          lw_file2 TYPE string .           " File Path
      lw_file2 = p_PATH.
      CALL FUNCTION 'GUI_DOWNLOAD'
         EXPORTING
      BIN_FILESIZE                    = BIN_FILESIZE
           filename                        = lw_file2
           filetype                        = 'DBF'
      APPEND                          = ' '
       write_field_separator           = ' '
      HEADER                          = '00'
      TRUNC_TRAILING_BLANKS           = 'X'
      WRITE_LF                        = 'X'
       COL_SELECT                      = 'X'
      COL_SELECT_MASK                 = ' '
      DAT_MODE                        = 'X'
      CONFIRM_OVERWRITE               = ' '
      NO_AUTH_CHECK                   = ' '
      CODEPAGE                        = ' '
      IGNORE_CERR                     = ABAP_TRUE
      REPLACEMENT                     = '#'
      WRITE_BOM                       = ' '
      TRUNC_TRAILING_BLANKS_EOL       = 'X'
      WK1_N_FORMAT                    = '0'
      WK1_N_SIZE                      = ' '
      WK1_T_FORMAT                    = ' '
      WK1_T_SIZE                      = ' '
    IMPORTING
      FILELENGTH                      = FILELENGTH
         TABLES
           data_tab                        = I_CINFO
           fieldnames                      = i_final
         EXCEPTIONS
           file_write_error                = 1
           no_batch                        = 2
           gui_refuse_filetransfer         = 3
           invalid_type                    = 4
           no_authority                    = 5
           unknown_error                   = 6
           header_not_allowed              = 7
           separator_not_allowed           = 8
           filesize_not_allowed            = 9
           header_too_long                 = 10
           dp_error_create                 = 11
           dp_error_send                   = 12
           dp_error_write                  = 13
           unknown_dp_error                = 14
           access_denied                   = 15
           dp_out_of_memory                = 16
           disk_full                       = 17
           dp_timeout                      = 18
           file_not_found                  = 19
           dataprovider_exception          = 20
           control_flush_error             = 21
      IF sy-subrc <> 0.
    Messege
      ENDIF.                               " IF sy-subrc EQ 0
    ENDFORM.                    " DOWNLOADCREDITDATA
    *&      Form  DOWNLOAD_CREDIT_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM DOWNLOAD_CREDIT_DATA .
      PERFORM HEADER.
      PERFORM DOWNLOADCREDITDATA USING P_PATH.
    ENDFORM.                    " DOWNLOAD_CREDIT_DATA
    *&      Form  GET_PGRESS_INDICATOR
          text
         -->P_L_TEXT  text
         -->P_L_PCT  text
    FORM GET_PGRESS_INDICATOR  USING    L_TEXT
                                        L_PCT.
      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
        EXPORTING
          PERCENTAGE = l_pct
          TEXT       = l_TEXT.
    ENDFORM.                    " GET_PGRESS_INDICATOR

    If you are just Downloading to a Flat file then why dont you have logic in place for the program to dump the data read into  the file to that point depending on any criteria like accounts or customer then clear the internal table and run it in the back ground.
    try to use cursor to read the records from the table which will make it a bit more efficient than plain select stement.

  • Interest on arrears configuration

    Hi all,
    I am trying to use the interest on arrears calculation function to charge interest for customer overdue item.
    However, I am a bit confused on how the interest rate is linked to the interest indicator as there are so many reference interest rate and i could not find the linkage of which reference interest rate is used to calculate the interest charged.
    Can anyone help?
    Thanks!
    Regards,
    Hoay Ling

    Hi all,
    I am trying to use the interest on arrears
    calculation function to charge interest for customer
    overdue item.
    However, I am a bit confused on how the interest rate
    is linked to the interest indicator as there are so
    many reference interest rate and i could not find the
    linkage of which reference interest rate is used to
    calculate the interest charged.
    Can anyone help?
    Thanks!
    Regards,
    Hoay Ling
    hi,
    First create an Interest Indicator. ·     OB46 - Interest Settlement Calculation Type Int Calc. Type
    P - calculate interest based on line items.
    S - calculate interest based on account balances.
    Second, make it available to the interest run program.
    ·     OB82 - Interest Terms
    Third, determine the interest rate that will be used by the calculation.
    ·     OBAC - Define Reference Interest Rates
    ·     OB83 - Enter the Reference Interest Rates Value
    Fourth, assign the interest indicator to the reference interest rate.
    ·     OB81 - Define Time Dependent Terms
    Finally, determine the how and to which accounts the interest program will post.
    ·     OBV1 - Prepare Interest on Arrears Calculation
    ·     OB84 - Assign forms for interest indicators.
    ·     F.2B  - Arrears interest calculation
    Arrears Interest Caliculations of customers:
    Define Interest Calculation Type  : OB46
    Define No Ranges for Interest Form  : FBN1
    Define Reference Interest Rate  : OBAC
    Define time based terms  : OB81
    Enter Interest values :  OB83
    Prepare Interest on Arrears calculation :  OB82
    A/R Calculation of interest on arrears :  OBV1
    Assign forms for interest indicator : OB84(standard form is
    Arrears Interest :  F.2B

Maybe you are looking for

  • NullPointerException while running the page from jdeveloper

    Hi , I am getting following Exception while Running the OAF page in Jdeveloper after downloading from the server which is working correctly (in the instance). Can you please help to resolve this exception. Error Page Exception Details. oracle.apps.fn

  • DVD Burner Problems

    Hello everyone, as you can see from the title I have been having problems with a dvd burn. The model is TS-H552, Toshiba-Samsung Model. OS X can read any disc and can burn dvds. Though it wont burn cds. I just cant figure it out and after much search

  • Kernal panic at C drive boot with OsX dvd

    Aloha I have a problem with starting up with Install disk. I get kernal panic when I try and have to turn off the computer with on off button Any suggestions ???? reid

  • BW APO BPS

    Hello, Could someone please help me with the following questions, 1. Why don't we use TransactionCube instead of RemoteCube in BW for APO plan data, as we do it for BPS plans in BW. 2. Is it possible to do reporting on planned data directly in Bex fo

  • Use several DOS command from java program

    Using "Runtime.getRuntime().exec(toto.bat)" I have no problem to run a Command in my DOS window... But the problem appear when I want to call another command in this same window from myApp.java... In fact after executing the first command I find no w