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 accountingAccrual 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,
    Cheers

    Any 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!
    Nandita

    hi Nandita,
    <b>
    Accruals and Deferrals</b>
    -Post accruals/deferrals (SAP FI-TR + SAP FI)
    <b>Liabilities and Owner’s 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?
    Thanks

    Try 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 PM

    issue in tcode : OAC0.. Content server path was incorrect.

  • AP Accrual Report

    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 Tadas

    hello,   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 suggestions

    Hello 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

  • Accrual Balance Dialy Rate

    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.
    BR

    Thank 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

  • Accrual Rate

    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,
    Shobhit

    Dear 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
    Rafa

    See 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 / Srikar

    Hello,
    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