Accruals Calculation
Hi,
Does anyone know how the Calculate Accruals button in scenario planning(marketing planner) is works? I have already assigned 2 different scenarios to this particular scenario set, and i know that if i want to see the results of these 2 scenarios i can click on Show Analysis.
I'd appreciate if anyone can explain what this is for and steps to how i can use the Calculate Accruals button
Hi,
Does anyone know how the Calculate Accruals button in scenario planning(marketing planner) is works? I have already assigned 2 different scenarios to this particular scenario set, and i know that if i want to see the results of these 2 scenarios i can click on Show Analysis.
I'd appreciate if anyone can explain what this is for and steps to how i can use the Calculate Accruals button
Similar Messages
-
Maintain overhead structure/Actual Accrual calculation
Cost element accountingAccrual Calculation Percentage method Maintain Overhead Structure Maintain CO-OM Accrual Calculation: Overhead Structure Overview.
In our controlling area the actual accrual is going to expire by end of next month which is 12/2010. If I donu2019t validate it for next year what are the errors this will be causing.
Please let me know,
CheersAny suggestions please...
-
Period end closing - Accrual Calculation
Hello SAP Gurus,
Can someone please explain me what happens when we run Allocations using Accrual Calculation (T-Code KSA3)?
I tried to run this for a bunch of Cost Centers but summary screen always reads 'No Change - 1'. I am not sure what runs behind the scene and how to determine what is happening when the T-Code is carried out. I always run this T-Code by selecting Test run... is this the problem?
Thanks in Advance!
Nanditahi Nandita,
<b>
Accruals and Deferrals</b>
-Post accruals/deferrals (SAP FI-TR + SAP FI)
<b>Liabilities and Owners Equity</b>
Accruals
Payables
-Payroll accounting (SAP HR)
-Valuate the foreign currency open items (SAP FI), see also Receivables
-Valuate the foreign currency G/L balances (SAP FI)
<b>
Accruals and Deferrals</b>
-Post accruals/deferrals (SAP FI)
Miscellaneous:
Additional Tasks (SAP FI)
-Post accruals/deferrals (SAP FI)
-Check whether the accrual/deferral documents have to be reversed
-Carry out recurring entries and update the batch input session (SAP FI)
-Reconcile cost of sales accounting/period accounting/profit center ledger (SAP FI/SAP FI-CO)
-Close the posting period (SAP FI)
-Run the reconciliation program (SAPF190)
This program checks the documents and transaction figures in the R/3 System. You can only execute this run if you do not intend to carry out any postings for the period, otherwise reconciliation differences will occur. You can schedule the job to run in the background.
Hope this will solve ur problem
Ranjit -
IHC interest accrual calculation for subsidiares
When interest accrual calculation is done in IHC (F993), the transaction F9HI (FI transfer) posts these amounts in the FI of the company that holds IHC.
Our customer wants that the corresponding amount (with opposite sign) is transferred to the FI system of the subsidiary.
Did you have ever had any similar request?
(the situation is different from interest calculation (F996 or F991) in which a single item corresponding to the interest amount is posted on the IHC account and then is transferred to the subsidiary via the IHC bank statement)
Thanks!Hi guys, this is the SAP answer to the incident we have opened.
"I have understood the issue that you are facing. I am afraid, there is
no standard solution in IHC to update the subsidiary with the interest
accrual items. From the IHC design point of view, the business process
does not state to replicate the postings of the IHC system into the
subsidiary. The idea is to make payments on behalf of the subsidiary
and in the process also allow the reconciliation to happen at
subsidiary by clearing the customer/vendor line and updating the
payable/receivable accounts of the subsidiary.
As you mention, you are transferring the interest postings resulting
from F996 to the subsidiary system, however, this is not a step
defined in the IHC business process.
As far as F993 interest accrual is concerned, you have rightly
mentioned, the GL transfer is performed only to the IHC/HQ GL
accounts. There is no provision of transferring the accrual items to
the subsidiary GL accounts.
This is as per the standard IHC design.
I am sorry, but i have no better news for you on this front." -
Internal order and accrual calculation.
My Client right now uses excel sheets to keep track of marketing expenses. He uses this to find out how much accrual marketing expenses to post at the end of each month (This is reversed next month).
example:
Lets say the client is doing Television Campaign:
Begin Date: 10/29/2007
End Date: 11/18/2007
Month End Date: 11/3/2007
Effective days of campaign=11/18/2007-10/29/2007+1=21 days
Budget for 21 days is say 91 dollars.
Days to Accrue at month end (11/3/2007)=6 days.
Total accrual for the month end 11/3/2007=6/21*91 dollars
= 26 dollars
So for the above scenario If i want to use internal orders. Can I use "Work Start", "End of Work", "Estimated Costs" field under General Data.
And write an SQ01 query, report to calculate the accrual expenses for each marketing internal order?
Is this a good approach?
Thanks,
Hari Gadi.Hi venkata,
I'm afraid you are talking about field AUFK-AUTYP (order category) (instead of AUFK-AUART).
That's easy! Just access table DD07T for domname = 'AUFTYP' and ddlanguage = 'EN'. And domvalue_l = (order_category). Then you'll have the description into dd07t-ddtext.
I hope it helps. Best regards,
Alvaro -
GR/IR Month end Accrual calculation
Hi All,
I have an open PO for which i need to find accrual amount for the current period.In the current period i have the list of GR and IR for which i need to find/calculate what amount yet to be invoiced for items for which already GR done.How can i track GR and its Corresponding IR?
ThanksTry report MB5S , this will give list of GR/IR balances. Also ME80FN will give you details of PO history , GR, MIRO etc.
-
How is Month End Accrual calculated?
Hi Expert,
We set up the system to do Month End Accrual based on working days. But in payroll simulation we can see for period 04/26/2010 to 05/09/2010 the system accrued for 6 days. It should be 5 working days only. I tried to change the dates in T51A1 and T549S_B but it doesn't affect how many days the system accrues. Anywhere else I should change to make it calculates correctly?
Thanks a lot!!Hi, can anyone help with this problem? It's still a pending issue for us.
Edited by: Allan D on Apr 5, 2010 7:40 PM -
Accrual Formula Archive Table Issue?
Hello Experts,
I customized PTO_PAYROLL_BALANCE_CALCULATION as per our business requirment. High Level of the plan- It is based on the overtime an employee works per pay period and depending on overtime worked an employee gets time and half times. For example if the emp works 12 hours he accrues 18 hours of benefit time(formula calculating fine). To meet the business requirment we included employees who are hired in the mid of the pay period , here the issue is when the archive process is run
We are unable to populate the employee's period accural(acrrued in a particular pay period) and if we populate the period accrual we are unable to process period accrual for an employee terminated in middle of the pay period. The requirement is to populate both in the archive table. ie to include both period accrual and mid pay period terminated employees.
Below is the customized formula. Thanks much and appreciate your time and response in advance.
DEFAULT FOR ACP_START IS 'HD'
DEFAULT FOR ACP_INELIGIBILITY_PERIOD_TYPE IS 'CM'
DEFAULT FOR ACP_INELIGIBILITY_PERIOD_LENGTH IS 0
DEFAULT FOR ACP_CONTINUOUS_SERVICE_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR ACP_ENROLLMENT_END_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR ACP_TERMINATION_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR ACP_ENROLLMENT_START_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR ACP_SERVICE_START_DATE IS '4712/12/31 00:00:00' (date)
default for Accrual_Start_Date is '4712/12/31 00:00:00' (date)
default for Accrual_Latest_Balance is 0
INPUTS ARE
Calculation_Date (date),
Accrual_Start_Date (date),
Accrual_Latest_Balance
/* bug 4047666*/
prm_Accrual_Start_Date (date) = Accrual_Start_Date
prm_Calculation_Date (date) = Calculation_Date
/* bug 4047666*/
E = CALCULATE_PAYROLL_PERIODS()
For the payroll year that spans the Calculation Date
get the first days of the payroll year. If we have a latest balance,
we use the Accrual Start Date.
Calculation_Period_SD = get_date('PAYROLL_PERIOD_START_DATE')
Calculation_Period_ED = get_date('PAYROLL_PERIOD_END_DATE')
/**XXX CUSTOM **/
/*Calculation_Date = get_date('PAYROLL_PERIOD_END_DATE')*/
Payroll_Year_First_Valid_Date = GET_DATE('PAYROLL_YEAR_FIRST_VALID_DATE')
IF (Calculation_Date <> Calculation_Period_ED) AND
(Calculation_Period_SD > Payroll_Year_First_Valid_Date) THEN
E = GET_PAYROLL_PERIOD(ADD_DAYS(Calculation_Period_SD,-1))
Calculation_Period_SD = get_date('PAYROLL_PERIOD_START_DATE')
Calculation_Period_ED = get_date('PAYROLL_PERIOD_END_DATE')
ELSE IF (Calculation_Period_SD = Payroll_Year_First_Valid_Date) AND
(Calculation_Date <> Calculation_Period_ED) THEN
Calculation_Period_ED = ADD_DAYS(Calculation_Period_SD,-1)
Set the Calculation_Date to the Termination Date / Enrollment end date if not defaulted
IF NOT (ACP_TERMINATION_DATE WAS DEFAULTED) OR
NOT (ACP_ENROLLMENT_END_DATE WAS DEFAULTED) THEN
Early_End_Date = least(ACP_TERMINATION_DATE, ACP_ENROLLMENT_END_DATE)
IF (Early_End_Date < Calculation_Date) THEN
Calculation_Date = Early_End_Date
Get the last whole payroll period prior to the Calculation Date and ensure that it is within the
Payroll Year (if the Calculation Date is the End of a Period then use that period)
E = GET_PAYROLL_PERIOD(Calculation_Date)
Calculation_Period_SD = get_date('PAYROLL_PERIOD_START_DATE')
Calculation_Period_ED = get_date('PAYROLL_PERIOD_END_DATE')
/**XXX CUSTOM **/
/*Calculation_Date = get_date('PAYROLL_PERIOD_END_DATE')*/
IF (Calculation_Date <> Calculation_Period_ED) AND
(Calculation_Period_SD > Payroll_Year_First_Valid_Date) THEN
E = GET_PAYROLL_PERIOD(ADD_DAYS(Calculation_Period_SD,-1))
Calculation_Period_SD = get_date('PAYROLL_PERIOD_START_DATE')
Calculation_Period_ED = get_date('PAYROLL_PERIOD_END_DATE')
ELSE IF (Calculation_Period_SD = Payroll_Year_First_Valid_Date) AND
(Calculation_Date <> Calculation_Period_ED) THEN
Calculation_Period_ED = ADD_DAYS(Calculation_Period_SD,-1)
Set the Continuous Service Global Variable, whilst also
ensuring that the continuous service date is before the Calculation Period
IF (ACP_CONTINUOUS_SERVICE_DATE WAS DEFAULTED) THEN
E = set_date('CONTINUOUS_SERVICE_DATE', ACP_SERVICE_START_DATE)
ELSE IF(ACP_CONTINUOUS_SERVICE_DATE > Calculation_Period_SD) THEN
Total_Accrued_PTO = 0
E = PUT_MESSAGE('HR_52796_PTO_FML_CSD')
E = set_date('CONTINUOUS_SERVICE_DATE', ACP_CONTINUOUS_SERVICE_DATE)
ELSE
E = set_date('CONTINUOUS_SERVICE_DATE', ACP_CONTINUOUS_SERVICE_DATE)
Determine the Accrual Start Rule and modify the start date of the accrual calculation accordingly
N.B. In this calculation the Accrual Start Rule determines the date from which a person may first accrue
PTO. The Ineligibility Rule determines the period of time during which the PTO is not registered.
Once this date has passed the accrual is registered from the date determined by the Accrual Start Rule.
Continuous_Service_Date = get_date('CONTINUOUS_SERVICE_DATE')
IF (ACP_START = 'BOY') THEN
First_Eligible_To_Accrue_Date =
to_date('01/01/'||to_char(add_months(Continuous_Service_Date, 12), 'YYYY'),
'DD/MM/YYYY')
ELSE IF (ACP_START = 'PLUS_SIX_MONTHS') THEN
First_Eligible_To_Accrue_Date = add_months(Continuous_Service_Date,6)
ELSE IF (ACP_START = 'HD') THEN
First_Eligible_To_Accrue_Date = Continuous_Service_Date
Determine the date on which accrued PTo may first be registered, i.e the date on which the
Ineligibility Period expires
Accrual_Ineligibility_Expired_Date = First_Eligible_To_Accrue_Date
IF (ACP_START <> 'PLUS_SIX_MONTHS' AND
ACP_INELIGIBILITY_PERIOD_LENGTH > 0) THEN
IF ACP_INELIGIBILITY_PERIOD_TYPE = 'BM' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*2)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'F' THEN
Accrual_Ineligibility_Expired_Date = add_days(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*14)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'CM' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'LM' THEN
Accrual_Ineligibility_Expired_Date = add_days(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*28)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'Q' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*3)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'SM' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH/2)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'SY' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*6)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'W' THEN
Accrual_Ineligibility_Expired_Date = add_days(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*7)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'Y' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*12)
IF Accrual_Ineligibility_Expired_Date > First_Eligible_To_Accrue_Date
AND Calculation_Date < Accrual_Ineligibility_Expired_Date THEN
First_Eligible_To_Accrue_Date = Accrual_Ineligibility_Expired_Date
If the employee is eligible to accrue before the start of this year,
we must get the period dates for the first period of the year.
Otherwise, we do not need these dates, as we will never accrue that
far back.
IF (not Accrual_Start_Date was defaulted) AND
((Calculation_Date < Accrual_Ineligibility_Expired_Date) OR
(Accrual_Start_Date > Accrual_Ineligibility_Expired_Date)) THEN
* This function checks for unprocessed plan element entries, and
* returns the EE effective start date of the earliest it finds. This may
* be useful if we amend the design to process a partial year starting at
* this date.
* At the moment, however, we simply recalculate for the entire plan term
* in these circumstances, so Adjusted_Start_Date is never used
Adjusted_Start_Date = Get_Start_Date(Accrual_Start_Date,
Payroll_Year_First_Valid_Date)
/* Check whether RESET_PTO_ACCRUAL action parameter is defined and set to Y */
/* If yes, then we need to calculate from the beginning */
Reset_Accruals = Reset_PTO_Accruals()
/* Check for retrospective Assignment changes */
/* Return earliest effective date */
Earliest_AsgUpd_Date = Get_Earliest_AsgChange_Date
( 'PTO Event Group',
add_days(Calculation_Period_SD,-1),
Calculation_Period_ED,
Accrual_Start_Date)
New_Adj_Start_Date = LEAST(Adjusted_Start_Date,
Earliest_AsgUpd_Date)
IF ((New_Adj_Start_Date < Accrual_Start_Date) OR
(Reset_Accruals = 'TRUE')) THEN
Process_Full_Term = 'Y'
ELSE
Process_Full_Term = 'N'
ELSE
Process_Full_Term = 'Y'
Latest_Balance = 0
IF (Process_Full_Term = 'Y') THEN
/* Ensure the Payroll Year Start Date gets reset if caculating */
/* from the beginning of the year. */
E = SET_DATE('PAYROLL_YEAR_SD', Payroll_Year_First_Valid_Date)
IF (Process_Full_Term = 'N') AND
(Accrual_Start_Date >= First_Eligible_To_Accrue_Date) THEN
E = GET_PAYROLL_PERIOD(Adjusted_Start_Date)
Payroll_Year_1st_Period_SD = get_date('PAYROLL_PERIOD_START_DATE')
Payroll_Year_1st_Period_ED = get_date('PAYROLL_PERIOD_END_DATE')
Latest_Balance = Accrual_Latest_Balance
Effective_Start_Date = Adjusted_Start_Date
) /* XXX Custom to include mid pay period hires*/
ELSE IF First_Eligible_To_Accrue_Date <= Payroll_Year_First_Valid_Date THEN
IF (not Accrual_Start_Date was defaulted) THEN
Latest_Balance = Accrual_Latest_Balance
ELSE
Latest_Balance = 0
E = GET_PAYROLL_PERIOD(Payroll_Year_First_Valid_Date)
Payroll_Year_1st_Period_SD = get_date('PAYROLL_PERIOD_START_DATE')
Payroll_Year_1st_Period_ED = get_date('PAYROLL_PERIOD_END_DATE')
Effective_Start_Date = Payroll_Year_First_Valid_Date
ELSE
Get the first full payroll period following the First_Eligible_To_Accrue_Date
(if it falls on the beginning of the period then use that period)
IF (not Accrual_Start_Date was defaulted) THEN
Latest_Balance = Accrual_Latest_Balance
ELSE
Latest_Balance = 0
E = GET_PAYROLL_PERIOD(First_Eligible_To_Accrue_Date )
First_Eligible_To_Accrue_Period_SD = get_date('PAYROLL_PERIOD_START_DATE')
First_Eligible_To_Accrue_Period_ED = get_date('PAYROLL_PERIOD_END_DATE')
/* IF First_Eligible_To_Accrue_Date <> First_Eligible_To_Accrue_Period_SD THEN
E = GET_PAYROLL_PERIOD(add_days(First_Eligible_To_Accrue_Period_ED,1))
First_Eligible_To_Accrue_Period_SD = get_date('PAYROLL_PERIOD_START_DATE')
First_Eligible_To_Accrue_Period_ED = get_date('PAYROLL_PERIOD_END_DATE')
IF (First_Eligible_To_Accrue_Period_SD > Calculation_Period_ED) THEN
Total_Accrued_PTO = 0
E = PUT_MESSAGE('HR_52793_PTO_FML_ASG_INELIG')
) */ /* XXX Custom to include mid pay period hires*/
Payroll_Year_1st_Period_SD = First_Eligible_To_Accrue_Period_SD
Payroll_Year_1st_Period_ED = First_Eligible_To_Accrue_Period_ED
Effective_Start_Date = First_Eligible_To_Accrue_Date
Effective_Start_Date = GREATEST(Effective_Start_Date, ACP_ENROLLMENT_START_DATE)
Output messages based on calculated date
IF (Early_End_Date < Payroll_Year_1st_Period_ED) THEN
Total_Accrued_PTO = 0
E = PUT_MESSAGE('HR_52794_PTO_FML_ASG_TER')
If (Calculation_Period_ED < Payroll_Year_1st_Period_ED) THEN
Total_Accrued_PTO = 0
E = PUT_MESSAGE('HR_52795_PTO_FML_CALC_DATE')
Determine the date on which PTO actually starts accruing based on Hire Date,
Continuous Service Date and plan Enrollment Start Date. Remember, we have
already determined whether to user hire date or CSD earlier in the formula.
If this date is after the 1st period and the fisrt eligible date then
establish the first full payroll period after this date
(if the Actual Start Date falls on the beginning of a payroll period then
use this period)
Enrollment_Start_Date = ACP_ENROLLMENT_START_DATE
Actual_Accrual_Start_Date = GREATEST(Enrollment_Start_Date,
Continuous_Service_Date,
Payroll_Year_1st_Period_SD)
Determine the actual start of the accrual calculation
IF (Actual_Accrual_Start_Date > Payroll_Year_1st_Period_SD AND
Actual_Accrual_Start_Date > First_Eligible_To_Accrue_Date) THEN
E = GET_PAYROLL_PERIOD(Actual_Accrual_Start_Date)
Accrual_Start_Period_SD = get_date('PAYROLL_PERIOD_START_DATE')
Accrual_Start_Period_ED = get_date('PAYROLL_PERIOD_END_DATE')
IF Actual_Accrual_Start_Date > Accrual_Start_Period_SD THEN
( E = GET_PAYROLL_PERIOD(Actual_Accrual_Start_Date) /* XXX CUSTOM*/
Accrual_Start_Period_SD = get_date('PAYROLL_PERIOD_START_DATE')
Accrual_Start_Period_ED = get_date('PAYROLL_PERIOD_END_DATE')
E = GET_PAYROLL_PERIOD(add_days(Accrual_Start_Period_ED,1))
Accrual_Start_Period_SD = get_date('PAYROLL_PERIOD_START_DATE')
Accrual_Start_Period_ED = get_date('PAYROLL_PERIOD_END_DATE')
If the Actual Acrual Period is after the Calculation Period then end the processing.
IF (Accrual_Start_Period_SD > Calculation_Period_ED) THEN
Total_Accrued_PTO = 0
E = PUT_MESSAGE('HR_52797_PTO_FML_ACT_ACCRUAL')
ELSE IF (First_Eligible_To_Accrue_Date > Payroll_Year_1st_Period_SD) THEN
Accrual_Start_Period_SD = First_Eligible_To_Accrue_Period_SD
Accrual_Start_Period_ED = First_Eligible_To_Accrue_Period_ED
ELSE
Accrual_Start_Period_SD = Payroll_Year_1st_Period_SD
Accrual_Start_Period_ED = Payroll_Year_1st_Period_ED
Now set up the information that will be used in when looping
through the payroll periods
IF Calculation_Period_ED >= Accrual_Start_Period_ED THEN
E = set_date('PERIOD_SD',Accrual_Start_Period_SD)
E = set_date('PERIOD_ED',Accrual_Start_Period_ED)
E = set_date('LAST_PERIOD_SD',Calculation_Period_SD)
E = set_date('LAST_PERIOD_ED',Calculation_Period_ED)
IF (Process_Full_Term = 'N') THEN
E = set_number('TOTAL_ACCRUED_PTO', Latest_Balance)
ELSE
E = set_number('TOTAL_ACCRUED_PTO', 0)
Initialize Band Information
E = set_number('ANNUAL_RATE', 0)
E = set_number('UPPER_LIMIT', 0)
E = set_number('CEILING', 0)
E = LOOP_CONTROL('PTO_PAYROLL_PERIOD_ACCRUAL')
Total_Accrued_PTO = get_number('TOTAL_ACCRUED_PTO') - Latest_Balance
IF Accrual_Start_Period_SD <= Calculation_Period_SD THEN
Accrual_end_date = Calculation_Period_ED
IF Process_Full_Term = 'Y' AND
Effective_Start_Date > Actual_Accrual_Start_Date THEN
Effective_Start_Date = Actual_Accrual_Start_Date
Effective_End_Date = Calculation_Date
/* bug 4047666*/
IF Process_Full_Term = 'N' AND NOT (Accrual_Start_Date WAS DEFAULTED)
AND NOT (Accrual_Latest_Balance WAS DEFAULTED)
AND prm_Accrual_Start_Date > prm_Calculation_Date THEN
Effective_Start_Date = ADD_DAYS(Effective_End_Date,1)
ELSE
/* bug 4047666*/
IF Effective_Start_Date >= Effective_End_Date THEN
Effective_Start_Date = least(Effective_End_Date, Accrual_Start_Period_SD)
RETURN Total_Accrued_PTO, Effective_start_date, Effective_end_date, Accrual_end_date
Regards
Edited by: user13149420 on Sep 5, 2012 2:50 PMissue in tcode : OAC0.. Content server path was incorrect.
-
Hi Experts,
I am just wondering that is there any standard SAP report for the PO Accrual details. Appreciate your valued suggestions.
Thanks, RPC.Hi,
Report RKAZKSA3 is used for the accrual calculation.
Thanks,
Ranadev -
TPM Accruals (Periods)
Dear Experts,
We have a scenario where we have set-up our TPM system to calculate Accruals based on ERP Sales Volume.
Just for completeness, I will list down the steps:
a) Create Trade Promotion in CRM and put that in Releases. Conditions (via Rebate Agreements) get transferred to ECC
b) Invoicing takes place for the Product in ECC
c) Run VBOF in ECC to update the Sales Volume on the Rebate Agreements
d) Run Sales Volume Load in CRM
e) Run Accrual Calculation and further run the Accrual Posting
Reading through the documentation, I have realized that there is no material on the way the posting period is to be handled. So we are in a very peculiar problem(that's what I think and hoping that it is not the case)
We have a situation where the client's Invoicing is not done before the last day of a period. Hence we had to modify the Accrual Posting to handle this and post it in the previous period if the Accrual Calculation period was older than the period of the current date. We thought this could fix it and it did work very fine. So invoicing is done say in the March Period for some stuff in Feb. Then we run the accrual calculation for Feb and do the posting say on Mar 5th. Because of the enhancement this will get posted in Feb!
This month when we ran the accrual with the same steps, it picked up some trade promotions for calculation which were out of the period used for calculation.
As you can see, we have a situation now where the enhancement to post in the previous period is actually posting amount from the next period into the prev. period because the Accrual Calculation picked up wrong promotions.
Note: New invoices for March period were also being generated.
Any suggestions on this? Any inputs in the best practices in such a scenario?
Please let me know.
By the by, the Funds Plan has been setup to span a quarter.(Jan - Mar)
Thanks!
Amrut Tadashello, it looks the problem is your accrual amount is different from the accrual calculation result, and you wan to change the amount, but the accrual calculation return a wrong value, right?
Actually in our project, we don't use the standard accrual calculation, because we find the standard accrual rule can't match our requirement, and it is difficult to enhance it, so we decide to develop another tools to calculate the accural and post FI document to ERP.
For your problem, if you still want to use the standard calculation, I think there is two way you can try. One is to fix the standard calculation program, to check each invoice and TPM stituation, correct the accrual result.
The other is you just keep the accrual calcluation without any change. For the correction, you can let the FI staff to create some adjustment accrual document directly in FI. As the accrual account is a balance account, the amount in the previous period can be bring to next period, so you can help the FI staff to calculate the accrual variance between CRM calculate with fact, then create FI document to adjust. -
Posting Run Month end accruals error
Hi Guys,
after running the payroll driver on test mode for period 26 2009...when I look at the log file...I get an error that the employee has been rejected...and the maximum number of search runs exceeded under Month end accruals...
looking fwd to your comments and suggestionsHello Shiloh S,
The error message "Maximum number of search runs exceeded" occurs in
function UACGF, which is for the Month End Accruals calculations.
Below, I've updated information which explains the Month End Accruals
process, calculations and required table entries:
1. Tables T549S and T51A1:
The T549S table needs 3 dates specified for each pay id. Those 3
dates and their respective Date IDs are:
01 = pay date
04 = posting run
05 = ACC: Earliest Doc. creation date
To check if these entries have been made, please go to sm31 and view
if the entries have been made for the year for example: 2002
(you should also check consistency of future entries as well!)
You can create the entries via the IMG paths specified below for the
respective Date IDs (if you have not already done so).
NOTE: The tables are only changed if a flag has been set for the field
'Carry out table change'. If no flag is set, a test run is performed.
01 = pay date
IMG -> Payroll US -> Basic Settings -> Payroll Organization
-> Generate Payroll Period
You can view the documenation on this step by doubleclicking
the title of the step. (NOTE: first change your Text Display
by going to 'Utilities - Text Display - SAPscript)
For further explanation - click 'Report Documentation'
04 = posting run
IMG -> Payroll US -> Month end accruals -> Triggering Month End
Accrual computation -> Maintain Posting Date
-Create ('Info' icon provides explanation of how to run.)
05 = ACC: Earliest Doc. creation date
IMG -> Payroll US -> Month end accruals -> Triggering Month End
Accrual computation -> Set latest earliest document creation
date
For T51A1 - Final date for HR Postings (Accruals):
This date determines the final date on which postings may be effected
from HR for each posting period. I would advise you to set this up
for each company code and each accounting period of 2001. For more
info, please select F1 in the fields that you are unsure of.
You can maintain these dates via the path:
IMG -> Payroll US -> Month end accruals -> Triggering Month End
Accrual computation ->
2. Explanation of Month End Accruals:
First of all there is a switch to say in general if accruals are to be
computed for an employee or not. This switch is called ACCMO and
is set to 'ON' (1) in rule UAC0. Unfortuately this rule is deactivated
in your development system so that accruals are not calculated.
If this switch is set to 'ON', the system first tries to find out if it
has to calculate accruals and for which periods this is to be done.
If you have a payroll period which overlaps two posting periods, you
will have accruals for this period.
Generally the system can calculate accruals according to exact/current
values and or the system can estimate the accruals. The system always
tries to be as exact as possible which means it always tries to use
current values.
So: How does the system decide if for one period current values can be
taken or if an estimation has to be done?
If you need to post accruals for a payroll period because it overlaps
two posting periods, you have to post to both posting periods. So you
have to make sure, that you are still able to post to both posting
periods when the posting for the payroll period is done. This means the
system has to check that the LDCD (Latest earliest document creation
date) of the payroll period is earlier than the closing date of both
posting periods concerned. Often one posting period is already closed
which means that it is no longer possible to post accruals to this
posting period when the overlapping payroll period is calculated. This
means the system has to estimate values for this overlapping payroll
period before. In other words, the system calculates accruals for a
payroll period in the last payroll period with a LDCD which is is
earlier than the closing date of the overlapped posting periods.
Thus during payroll, the system checks for the current and for the
following payroll periods if things have already been done (because now
it is too late), if things have to be done now (because when the next
payroll period is calculated it will be too late) or if it will be
possible to post accruals after the next payroll period.
Hoping the above information are helpful.
Kind regards,
Graziela -
Dears,
I have a case related to Accrual Balance R12.1.3, as following:
1- We have a rule that says:
Years Of Service: 5 (+) Years
Accrual Balance: 21
Dialy Rate : 21/365
Years Of Service: Lesss than 5 years
Accrual Balance: 14
Dialy Rate : 14/365
2- suppose that Employee (X) hire date is : 05-MAR-2008,
the Accrual Rate for 2013 should be:
01-jan-2013 up to 04-mar-2013 = 14/365 --> Less than 5 years
05-mar-2013 up to 31-dec-2013 = 21/365 --> 5(+) Years
How to achieve this requirement.
BRThank you Sanjay,
Actually, i did the followng Custom Formula, but when i check the Accrual balance on (31-Dec-2013) from the (Accrual) Screen for an employee that have 5 years
experience active from 01-apr-2013 i got 21 Days!!!!!???
DEFAULT FOR ACP_INELIGIBILITY_PERIOD_TYPE IS 'CM'
DEFAULT FOR ACP_INELIGIBILITY_PERIOD_LENGTH IS 0
DEFAULT FOR ACP_CONTINUOUS_SERVICE_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR ACP_ENROLLMENT_END_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR ACP_TERMINATION_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR ACP_ENROLLMENT_START_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR ACP_SERVICE_START_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR EMP_HIRE_DATE IS '01-JAN-1900' (DATE)
DEFAULT FOR EMP_TERM_DATE IS '01-JAN-3001' (DATE)
DEFAULT FOR ASG_NUMBER IS ' '
DEFAULT FOR ASG_GRADE IS ' '
ALIAS ASG_NUMBER AS EMP_NUMBER
INPUTS ARE
Calculation_Date (date)
Accruing_Frequency = 'D' /* Month */
Accruing_Multiplier = 1
V_ACCRUAL_RATE = 0
E = SET_TEXT('ACCRUING_FREQUENCY', Accruing_Frequency)
E = SET_NUMBER('ACCRUING_MULTIPLIER', Accruing_Multiplier)
E = SET_NUMBER('ACCRUAL_RATE',0)
E = SET_NUMBER('CEILING', 42)
Beginning_Of_Calculation_Year = to_date('0101'||to_char(Calculation_Date,'YYYY'),'DDMMYYYY')
end_year=last_day(add_months(Beginning_Of_Calculation_Year,11))
Years_Service = Months_Between(CALCULATION_DATE,EMP_HIRE_DATE)/12
IF ASG_GRADE = '7' OR
ASG_GRADE = '8' OR
ASG_GRADE = '9' THEN
V_ACCRUAL_RATE = 21
else
if Years_Service >= 5 then
V_ACCRUAL_RATE = 21
ELSE
V_ACCRUAL_RATE = 14
V_ACCRUAL_RATE=V_ACCRUAL_RATE/(DAYS_BETWEEN(END_Year,Beginning_Of_Calculation_Year)+1)
E = SET_NUMBER('ACCRUAL_RATE',V_ACCRUAL_RATE)
E = SET_TEXT('ACCRUING_FREQUENCY', Accruing_Frequency)
E = SET_NUMBER('ACCRUING_MULTIPLIER', Accruing_Multiplier)
Beginning_Of_Calculation_Year = to_date('0101'||to_char(Calculation_Date,'YYYY'),'DDMMYYYY')
IF Beginning_Of_Calculation_Year > Calculation_Date THEN
Beginning_of_Calculation_Year = ADD_MONTHS(Beginning_Of_Calculation_Year, -12)
E = SET_DATE('BEGINNING_OF_CALCULATION_YEAR', Beginning_Of_Calculation_Year)
E = GET_PERIOD_DATES(Beginning_of_Calculation_Year,
Accruing_Frequency,
Beginning_Of_Calculation_Year,
Accruing_Multiplier)
First_Period_SD = get_date('PERIOD_START_DATE')
First_Period_ED = get_date('PERIOD_END_DATE')
Set the Calculation_Date to the Termination Date if not null
IF NOT (ACP_TERMINATION_DATE WAS DEFAULTED) OR
NOT (ACP_ENROLLMENT_END_DATE WAS DEFAULTED) THEN
Early_End_Date = least(ACP_TERMINATION_DATE, ACP_ENROLLMENT_END_DATE)
IF (Early_End_Date < First_Period_ED) THEN
Total_Accrued_PTO = 0
E = PUT_MESSAGE('HR_52794_PTO_FML_ASG_TER')
IF (Early_End_Date < Calculation_Date) THEN
Calculation_Date = Early_End_Date
Get the last whole period prior to the Calculation Date and ensure that it is within the
Year (if the Calculation Date is the End of a Period then use that period)
E = GET_PERIOD_DATES(Calculation_Date,
Accruing_Frequency,
Beginning_of_Calculation_Year,
Accruing_Multiplier)
Calculation_Period_SD = get_date('PERIOD_START_DATE')
Calculation_Period_ED = get_date('PERIOD_END_DATE')
IF (Calculation_Date <> Calculation_Period_ED) THEN
E = GET_PERIOD_DATES(ADD_DAYS(Calculation_Period_SD,-1),
Accruing_Frequency,
Beginning_of_Calculation_Year,
Accruing_Multiplier)
Calculation_Period_SD = get_date('PERIOD_START_DATE')
Calculation_Period_ED = get_date('PERIOD_END_DATE')
If (Calculation_Period_ED < First_Period_ED) THEN
Total_Accrued_PTO = 0
E = PUT_MESSAGE('HR_52795_PTO_FML_CALC_DATE')
Set the Continuous Service Global Variable, whilst also
ensuring that the continuous service date is before the Calculation Period
IF (ACP_CONTINUOUS_SERVICE_DATE WAS DEFAULTED) THEN
E = set_date('CONTINUOUS_SERVICE_DATE', ACP_SERVICE_START_DATE)
ELSE IF(ACP_CONTINUOUS_SERVICE_DATE > Calculation_Period_SD) THEN
Total_Accrued_PTO = 0
E = PUT_MESSAGE('HR_52796_PTO_FML_CSD')
E = set_date('CONTINUOUS_SERVICE_DATE', ACP_CONTINUOUS_SERVICE_DATE)
ELSE
E = set_date('CONTINUOUS_SERVICE_DATE', ACP_CONTINUOUS_SERVICE_DATE)
Continuous_Service_Date = get_date('CONTINUOUS_SERVICE_DATE')
First_Eligible_To_Accrue_Date = Continuous_Service_Date
Determine the date on which accrued PTo may first be registered, i.e the date on which the
Ineligibility Period expires
Accrual_Ineligibility_Expired_Date = First_Eligible_To_Accrue_Date
IF (ACP_INELIGIBILITY_PERIOD_LENGTH > 0) THEN
IF ACP_INELIGIBILITY_PERIOD_TYPE = 'BM' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*2)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'F' THEN
Accrual_Ineligibility_Expired_Date = add_days(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*14)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'CM' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'LM' THEN
Accrual_Ineligibility_Expired_Date = add_days(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*28)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'Q' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*3)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'SM' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH/2)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'SY' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*6)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'W' THEN
Accrual_Ineligibility_Expired_Date = add_days(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*7)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'Y' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*12)
IF Accrual_Ineligibility_Expired_Date > First_Eligible_To_Accrue_Date
AND Calculation_Date < Accrual_Ineligibility_Expired_Date THEN
First_Eligible_To_Accrue_Date = Accrual_Ineligibility_Expired_Date
Get the first full period following the First_Eligible_To_Accrue_Date
(if it falls on the beginning of the period then use that period)
IF First_Eligible_To_Accrue_Date > Beginning_Of_Calculation_Year THEN
E = GET_PERIOD_DATES(First_Eligible_To_Accrue_Date, Accruing_Frequency,Beginning_Of_Calculation_Year,Accruing_Multiplier)
First_Eligible_To_Accrue_Period_SD = get_date('PERIOD_START_DATE')
First_Eligible_To_Accrue_Period_ED = get_date('PERIOD_END_DATE')
IF First_Eligible_To_Accrue_Date <> First_Eligible_To_Accrue_Period_SD THEN
E = GET_PERIOD_DATES(add_days(First_Eligible_To_Accrue_Period_ED,1),
Accruing_Frequency,
Beginning_Of_Calculation_Year,
Accruing_Multiplier)
First_Eligible_To_Accrue_Period_SD = get_date('PERIOD_START_DATE')
First_Eligible_To_Accrue_Period_ED = get_date('PERIOD_END_DATE')
IF (First_Eligible_To_Accrue_Period_SD > Calculation_Period_ED) THEN
Total_Accrued_PTO = 0
E = PUT_MESSAGE('HR_52793_PTO_FML_ASG_INELIG')
ELSE
First_Eligible_To_Accrue_Period_SD = First_Period_SD
First_Eligible_To_Accrue_Period_ED = First_Period_ED
Determine the date on which PTO actually starts accruing based on Hire Date,
Continuous Service Date and plan Enrollment Start Date. Remember, we have already determined
whether to user hire date or CSD earlier in the formula.
If this date is after the 1st period and the fisrt eligible date then establish the first full period
after this date (if the Actual Start Date falls on the beginning of a period then use this period)
IF Continuous_Service_date = ACP_CONTINUOUS_SERVICE_DATE THEN
Actual_Accrual_Start_Date = Continuous_service_Date
ELSE
Actual_Accrual_Start_Date = greatest(Continuous_Service_Date,
ACP_ENROLLMENT_START_DATE,
First_Period_SD)
Determine the actual start of the accrual calculation
IF (Actual_Accrual_Start_Date > First_Period_SD AND
Actual_Accrual_Start_Date > First_Eligible_To_Accrue_Period_SD) THEN
E = GET_PERIOD_DATES(Actual_Accrual_Start_Date,
Accruing_Frequency,
Beginning_Of_Calculation_Year,
Accruing_Multiplier)
Accrual_Start_Period_SD = get_date('PERIOD_START_DATE')
Accrual_Start_Period_ED = get_date('PERIOD_END_DATE')
IF Actual_Accrual_Start_Date > Accrual_Start_Period_SD THEN
E = GET_PERIOD_DATES(add_days(Accrual_Start_Period_ED,1),
Accruing_Frequency,
Beginning_of_Calculation_Year,
Accruing_Multiplier)
Accrual_Start_Period_SD = get_date('PERIOD_START_DATE')
Accrual_Start_Period_ED = get_date('PERIOD_END_DATE')
If the Actual Acrual Period is after the Calculation Period then end the processing.
IF (Accrual_Start_Period_SD > Calculation_Period_ED) THEN
Total_Accrued_PTO = 0
E = PUT_MESSAGE('HR_52797_PTO_FML_ACT_ACCRUAL')
ELSE IF (First_Eligible_To_Accrue_Period_SD > First_Period_SD) THEN
Accrual_Start_Period_SD = First_Eligible_To_Accrue_Period_SD
Accrual_Start_Period_ED = First_Eligible_To_Accrue_Period_ED
ELSE
Accrual_Start_Period_SD = First_Period_SD
Accrual_Start_Period_ED = First_Period_ED
Now set up the information that will be used in when looping through the periods
IF Calculation_Period_ED >= Accrual_Start_Period_ED THEN
E = set_date('PERIOD_SD',Accrual_Start_Period_SD)
E = set_date('PERIOD_ED',Accrual_Start_Period_ED)
E = set_date('LAST_PERIOD_SD',Calculation_Period_SD)
E = set_date('LAST_PERIOD_ED',Calculation_Period_ED)
E = set_number('TOTAL_ACCRUED_PTO',0)
E = LOOP_CONTROL('RGH_QIS_PTO_SIMPLE_PERIOD_ACCRUAL')
Total_Accrued_PTO = get_number('TOTAL_ACCRUED_PTO')
IF Accrual_Start_Period_SD <= Calculation_Period_SD THEN
Accrual_end_date = Calculation_Period_ED
Effective_Start_Date = Accrual_Start_Period_SD
Effective_End_Date = Calculation_Date
IF Effective_Start_Date >= Effective_End_Date THEN
Effective_Start_Date = Effective_End_Date
RETURN Total_Accrued_PTO, Effective_start_date, Effective_end_date, Accrual_end_date
please advice -
Dear Gurus,
My client requirement is like they have Annual Rate is 30 Per year and Accrual Rate is different in different months like in Jan it will 2, in Feb it will 1, in Mar it will 3, in Apr it will 2 like this only every month it is different Accrual Rate but the total is (Annual Rate) is 30. Kindly suggest how i will capture it in system and in which Accrual Formula will use it. { Do I need to create a UDT like once it is JANUARY then Accrual_Rate is 2, by using function GET_TABLE_VALUE }
Thanks,
ShobhitDear Sanjay sir,
I have written the formula, for every BAND Ceiling (total entitlement) is working and in month JAN Accrual Rate is correct for every Bands but from FEB accrual rate is not working correct, it is accumulating some different amounts. Kindly find my Accrual Formula and please let me know where i am doing mistake , i will edit that code.
FORMULA ********
NAME : PTO_SIMPLE_BALANCE_MULTIPLIER
This formula calculates the start and end dates for out simple multiplier.
This formula calculates the dates between which an assignment is to accrue.
It is based on PTO_SIMPLE_MULTIPLIER, but has been amended to allow its
use in the new payroll balance functionality. It may not be used out of the box
but must be amended, according to the documentaion, by inserting the
name of the database item which was created with your defined balance.
This defined balance should have been created immediately after the
accrual plan.
DEFAULT FOR ACP_INELIGIBILITY_PERIOD_TYPE IS 'CM'
DEFAULT FOR ACP_INELIGIBILITY_PERIOD_LENGTH IS 0
DEFAULT FOR ACP_CONTINUOUS_SERVICE_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR ACP_ENROLLMENT_END_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR ACP_TERMINATION_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR ACP_ENROLLMENT_START_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR ACP_SERVICE_START_DATE IS '4712/12/31 00:00:00' (date)
Default for Accrual_Start_Date is '4712/12/31 00:00:00' (date)
Default for Accrual_Latest_Balance is 0
DEFAULT FOR ASG_GRADE IS '0'
INPUTS ARE
Calculation_Date (date),
Accrual_Start_Date (date),
Accrual_Latest_Balance
MONT=SUBSTR(TO_CHAR(Calculation_Date,'DD-MON-YYYY'),4,3)
IF ASG_GRADE WAS NOT DEFAULTED THEN
(x=TO_NUMBER(GET_TABLE_VALUE('BMC_NL_ACRL_CEILING2000','BAND',ASG_GRADE))) /* this table for entitlement for one year with their BAND */
E = SET_NUMBER('CEILING', X)
(A=TO_NUMBER(GET_TABLE_VALUE('BMC_NL_ACRL_RATING2000',MONT,ASG_GRADE))) /* this table for monthly accrual rate, like if BAND is 1 and month is JAN the Accrual Rate is 2 */
E = SET_NUMBER('ACCRUAL_RATE',A )
Accruing_Frequency = 'M' /* Month */
Accruing_Multiplier = 1
E = SET_TEXT('ACCRUING_FREQUENCY', Accruing_Frequency)
E = SET_NUMBER('ACCRUING_MULTIPLIER', Accruing_Multiplier)
Beginning_Of_Calculation_Year = to_date('0101'||to_char(Calculation_Date,'YYYY'),
'DDMMYYYY')
IF (Beginning_Of_Calculation_Year > Calculation_Date) THEN
Beginning_of_Calculation_Year = ADD_MONTHS(Beginning_Of_Calculation_Year, -12)
IF Accrual_Start_Date < Beginning_Of_Calculation_Year THEN
Accrual_Start_Date = Beginning_Of_Calculation_Year
E = SET_DATE('BEGINNING_OF_CALCULATION_YEAR', Beginning_Of_Calculation_Year)
E = GET_PERIOD_DATES(Beginning_of_Calculation_Year,
Accruing_Frequency,
Beginning_Of_Calculation_Year,
Accruing_Multiplier)
First_Period_SD = get_date('PERIOD_START_DATE')
First_Period_ED = get_date('PERIOD_END_DATE')
Set the Calculation_Date to the Termination Date if not null
IF NOT (ACP_TERMINATION_DATE WAS DEFAULTED) OR
NOT (ACP_ENROLLMENT_END_DATE WAS DEFAULTED) THEN
Early_End_Date = least(ACP_TERMINATION_DATE, ACP_ENROLLMENT_END_DATE)
IF (Early_End_Date < First_Period_ED) THEN
Total_Accrued_PTO = 0
E = PUT_MESSAGE('HR_52794_PTO_FML_ASG_TER')
IF (Early_End_Date < Calculation_Date) THEN
Calculation_Date = Early_End_Date
Get the last whole period prior to the Calculation Date and ensure that it is within the
Year (if the Calculation Date is the End of a Period then use that period)
E = GET_PERIOD_DATES(Calculation_Date,
Accruing_Frequency,
Beginning_of_Calculation_Year,
Accruing_Multiplier)
Calculation_Period_SD = get_date('PERIOD_START_DATE')
Calculation_Period_ED = get_date('PERIOD_END_DATE')
IF (Calculation_Date <> Calculation_Period_ED) THEN
E = GET_PERIOD_DATES(ADD_DAYS(Calculation_Period_SD,-1),
Accruing_Frequency,
Beginning_of_Calculation_Year,
Accruing_Multiplier)
Calculation_Period_SD = get_date('PERIOD_START_DATE')
Calculation_Period_ED = get_date('PERIOD_END_DATE')
If (Calculation_Period_ED < First_Period_ED) THEN
Total_Accrued_PTO = 0
E = PUT_MESSAGE('HR_52795_PTO_FML_CALC_DATE')
Set the Continuous Service Global Variable, whilst also
ensuring that the continuous service date is before the Calculation Period
IF (ACP_CONTINUOUS_SERVICE_DATE WAS DEFAULTED) THEN
E = set_date('CONTINUOUS_SERVICE_DATE', ACP_SERVICE_START_DATE)
ELSE IF(ACP_CONTINUOUS_SERVICE_DATE > Calculation_Period_SD) THEN
Total_Accrued_PTO = 0
E = PUT_MESSAGE('HR_52796_PTO_FML_CSD')
E = set_date('CONTINUOUS_SERVICE_DATE', ACP_CONTINUOUS_SERVICE_DATE)
ELSE
E = set_date('CONTINUOUS_SERVICE_DATE', ACP_CONTINUOUS_SERVICE_DATE)
Continuous_Service_Date = get_date('CONTINUOUS_SERVICE_DATE')
First_Eligible_To_Accrue_Date = Continuous_Service_Date
Determine the date on which accrued PTo may first be registered, i.e the date on which the
Ineligibility Period expires
Accrual_Ineligibility_Expired_Date = First_Eligible_To_Accrue_Date
IF (ACP_INELIGIBILITY_PERIOD_LENGTH > 0) THEN
IF ACP_INELIGIBILITY_PERIOD_TYPE = 'BM' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*2)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'F' THEN
Accrual_Ineligibility_Expired_Date = add_days(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*14)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'CM' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'LM' THEN
Accrual_Ineligibility_Expired_Date = add_days(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*28)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'Q' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*3)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'SM' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH/2)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'SY' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*6)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'W' THEN
Accrual_Ineligibility_Expired_Date = add_days(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*7)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'Y' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*12)
IF Accrual_Ineligibility_Expired_Date > First_Eligible_To_Accrue_Date
AND Calculation_Date < Accrual_Ineligibility_Expired_Date THEN
First_Eligible_To_Accrue_Date = Accrual_Ineligibility_Expired_Date
Get the first full period following the First_Eligible_To_Accrue_Date
(if it falls on the beginning of the period then use that period)
Latest_Balance = 0
IF (not Accrual_Start_Date was defaulted) AND
((Calculation_Date < Accrual_Ineligibility_Expired_Date) OR
(Accrual_Start_Date > Accrual_Ineligibility_Expired_Date)) THEN
Adjusted_Start_Date = Get_Start_Date(Accrual_Start_Date,
Beginning_Of_Calculation_Year)
/* Check whether RESET_PTO_ACCRUAL action parameter is defined */
/* If yes, then we need to calculate from the beginning */
Reset_Accruals = Reset_PTO_Accruals()
IF ((Adjusted_Start_Date < Accrual_Start_Date) OR
(Reset_Accruals = 'TRUE')) THEN
Process_Full_Term = 'Y'
ELSE
Process_Full_Term = 'N'
ELSE
Process_Full_Term = 'Y'
IF (Process_Full_Term = 'N') AND
(Accrual_Start_Date >= First_Eligible_To_Accrue_Date) THEN
E = GET_PERIOD_DATES(Adjusted_Start_Date,
Accruing_Frequency,
Beginning_Of_Calculation_Year,
Accruing_Multiplier)
First_Eligible_To_Accrue_Period_SD = get_date('PERIOD_START_DATE')
First_Eligible_To_Accrue_Period_ED = get_date('PERIOD_END_DATE')
Latest_Balance = Accrual_Latest_Balance
Effective_Start_Date = Accrual_Start_Date
ELSE IF First_Eligible_To_Accrue_Date > Beginning_Of_Calculation_Year THEN
IF (not Accrual_Start_Date was defaulted) THEN
Latest_Balance = Accrual_Latest_Balance
ELSE
Latest_Balance = 0
E = GET_PERIOD_DATES(First_Eligible_To_Accrue_Date,
Accruing_Frequency,
Beginning_Of_Calculation_Year,
Accruing_Multiplier)
First_Eligible_To_Accrue_Period_SD = get_date('PERIOD_START_DATE')
First_Eligible_To_Accrue_Period_ED = get_date('PERIOD_END_DATE')
IF First_Eligible_To_Accrue_Date <> First_Eligible_To_Accrue_Period_SD THEN
E = GET_PERIOD_DATES(add_days(First_Eligible_To_Accrue_Period_ED,1),
Accruing_Frequency,
Beginning_Of_Calculation_Year,
Accruing_Multiplier)
First_Eligible_To_Accrue_Period_SD = get_date('PERIOD_START_DATE')
First_Eligible_To_Accrue_Period_ED = get_date('PERIOD_END_DATE')
IF (First_Eligible_To_Accrue_Period_SD > Calculation_Period_ED) THEN
Total_Accrued_PTO = 0
E = PUT_MESSAGE('HR_52793_PTO_FML_ASG_INELIG')
Effective_Start_Date = First_Eligible_To_Accrue_Date
ELSE
IF (not Accrual_Start_Date was defaulted) THEN
Latest_Balance = Accrual_Latest_Balance
ELSE
Latest_Balance = 0
First_Eligible_To_Accrue_Period_SD = First_Period_SD
First_Eligible_To_Accrue_Period_ED = First_Period_ED
Effective_Start_Date = Beginning_Of_Calculation_Year
/*start of 4733782*/
Effective_Start_Date = GREATEST(Effective_Start_Date, ACP_ENROLLMENT_START_DATE)
/*end of 4733782*/
Determine the date on which PTO actually starts accruing based on Hire Date,
Continuous Service Date and plan Enrollment Start Date. Remember, we have already determined
whether to user hire date or CSD earlier in the formula.
If this date is after the 1st period and the fisrt eligible date then establish the first full period
after this date (if the Actual Start Date falls on the beginning of a period then use this period)
IF Continuous_Service_date = ACP_CONTINUOUS_SERVICE_DATE THEN
Actual_Accrual_Start_Date = Continuous_service_Date
ELSE
Actual_Accrual_Start_Date = greatest(Continuous_Service_Date,
ACP_ENROLLMENT_START_DATE,
First_Period_SD)
Determine the actual start of the accrual calculation
IF (Actual_Accrual_Start_Date > First_Period_SD AND
Actual_Accrual_Start_Date > First_Eligible_To_Accrue_Period_SD) THEN
E = GET_PERIOD_DATES(Actual_Accrual_Start_Date,
Accruing_Frequency,
Beginning_Of_Calculation_Year,
Accruing_Multiplier)
Accrual_Start_Period_SD = get_date('PERIOD_START_DATE')
Accrual_Start_Period_ED = get_date('PERIOD_END_DATE')
IF Actual_Accrual_Start_Date > Accrual_Start_Period_SD THEN
E = GET_PERIOD_DATES(add_days(Accrual_Start_Period_ED,1),
Accruing_Frequency,
Beginning_of_Calculation_Year,
Accruing_Multiplier)
Accrual_Start_Period_SD = get_date('PERIOD_START_DATE')
Accrual_Start_Period_ED = get_date('PERIOD_END_DATE')
If the Actual Acrual Period is after the Calculation Period then end the processing.
IF (Accrual_Start_Period_SD > Calculation_Period_ED) THEN
Total_Accrued_PTO = 0
E = PUT_MESSAGE('HR_52797_PTO_FML_ACT_ACCRUAL')
ELSE IF (First_Eligible_To_Accrue_Period_SD > First_Period_SD) THEN
Accrual_Start_Period_SD = First_Eligible_To_Accrue_Period_SD
Accrual_Start_Period_ED = First_Eligible_To_Accrue_Period_ED
ELSE
Accrual_Start_Period_SD = First_Period_SD
Accrual_Start_Period_ED = First_Period_ED
Now set up the information that will be used in when looping through the periods
IF Calculation_Period_ED >= Accrual_Start_Period_ED THEN
E = set_date('PERIOD_SD',Accrual_Start_Period_SD)
E = set_date('PERIOD_ED',Accrual_Start_Period_ED)
E = set_date('LAST_PERIOD_SD',Calculation_Period_SD)
E = set_date('LAST_PERIOD_ED',Calculation_Period_ED)
IF (Process_Full_Term = 'N') THEN
E = set_number('TOTAL_ACCRUED_PTO', Latest_Balance)
ELSE
E = set_number('TOTAL_ACCRUED_PTO', 0)
E = LOOP_CONTROL('PTO_SIMPLE_PERIOD_ACCRUAL')
Total_Accrued_PTO = get_number('TOTAL_ACCRUED_PTO') - Latest_Balance
ELSE
Total_Accrued_PTO = 0
IF Accrual_Start_Period_SD <= Calculation_Period_SD THEN
Accrual_end_date = Calculation_Period_ED
IF Process_Full_Term = 'Y' AND
Effective_Start_Date > Actual_Accrual_Start_Date THEN
Effective_Start_Date = Actual_Accrual_Start_Date
Effective_End_Date = Calculation_Date
IF Effective_Start_Date >= Effective_End_Date THEN
Effective_Start_Date = Effective_End_Date
RETURN Total_Accrued_PTO, Effective_start_date, Effective_end_date, Accrual_end_date
Thanks & Regards,
Shobhit -
Manual Accruals Functionality FI
Hi,
Does anybody know how to customize the Manual Accruals Functionality in FI? I only have the information that is provided in help.sap.com and it is not too much. I cannot activate this functionality in the menu either.
I will appreciate any help (user guides, customization guides...) of this functionality
Thanks very much in advance
RafaSee here for configuration guide:
http://help.sap.com/bp_bblibrary/600/documentation/N73_BB_ConfigGuide_EN_DE.doc
Page 25 onwards:
3.4 Manual Accruals 25
3.4.1 Assign Company Code 25
3.4.2 Define Accounting Principles 26
3.4.3 Assign Accounting Principle to Company Code 27
3.4.4 Define Accrual Types 28
3.4.5 Define Permitted Company Codes and Fiscal Years 28
3.4.6 Define Accrual Object Categories 29
3.4.7 Define Number Ranges for Accrual Objects 30
3.4.8 Define Customer Settings for Components 31
3.4.9 Specify Standard Settings for Accrual Calculation 31
3.4.10 Define Posting Control 32
3.4.11 Define Number Ranges for Periodic Posting Runs 33
3.4.12 Define Number for Application Log 34
3.4.13 Define Number Ranges for Accrual Engine Documents 34
3.4.14 Define Number Ranges for Assigning ACC Doc. to ACE Doc. 35
3.4.15 Define Combination of Characteristics 36
3.4.16 Define Set of Rules 36
3.4.17 Define Values for Set of Rules 38 -
Rebates: Scale Based Accruals
Hi Friends,
In the Rebate Processing the rebate amount is calculated on the sales volume as the scale percentage we maintain in the condition record, my clients requirement is that the accrual percent should be the same as the rebate percent.
The accrued amount should match the settlement amount.
Can anyone help me to set this, or any work around solution.
Thanks / SrikarHello,
According to SAP standard - if you are using scales in your rebate agreements you can only put one level as accrual value.
What you could do - you could periodicaly review your rebate agreements, check agreements that went above next level, change accrual value and run vbof to update accrual calculation.
Piotr.
Maybe you are looking for
-
Sorry not very computer savvy so technical information is minimal
-
How to get a minus sign with the cost field in ALV.
Hi , How to get a minus sign with the cost field in ALV. The Ouput will be displayed like Rs -1500 instead of 1500- I can't use concatenate also as i may have to use the sum functionality of ALV . Cheers Sunny
-
Can I use two "finite pulse train" to work in parallell with different freq.?
I want to generate two seperate pulsetrains in parallell with different freq. and number of pulses. I am using a "PCI 6036E" with two counters on the device. I think I need four counters to make this task? I would be very glad if anyone had any answe
-
Where are the files I printed with Adobe CreatPDF Desktop printer?
When printing any MS files with the Adobe CreatePDF Desktop Printer, I don't know in which folder I must go to get the files. Any idea? Tks. Nicolas. Error message : documents in waiting lines
-
Problem:Capturing MySQL5 - Oracle 10g
Hi I've got a problem: When I try to capture my MySQL5-DB the process always doesn't continue when the migrator try to migrate the indexes. It's always the same index number. Printscreen: http://img443.imageshack.us/my.php?image=snap1kf3.jpg Do you h