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,
GovinduHi 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 -
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
DanielHi
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 ReddyHi 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 ofHello
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 PMDear 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,
MarkFrederic'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
pramodHi
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_INDICATORIf 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 LingHi 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
-
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
-
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