Skip to Content

     There are many times that SAP payroll functionals have to deal with changes in the schema logic which are valid only for a specific time, these kind of changes are tricky because neither schemes nor rules have the classic “begda-endda” that helps functionals to play with retroactivity. However, you still can emulate this “begda-endda” by using constants and rules.

 

     Let’s suppose that you have two sub-schemes: Z001 which contains the old logic, and Z002 which contains the new logic that should be effective from 09/22/2011 onwards. To be able to have these two sub-schemes in the main scheme and call the corresponding one depending the date you should proceed this way:

 

1) Create a new constant in view V_T511K, it has to have the value 1 in the period where the old logic is valid, and space in the period where the new logic is valid:

 

 

2) Create a new rule, it has to query the constant, and return true if the value is 1, otherwise the return is false:

 

 

 

3) Modify your scheme; add an IF – ELSE condition with the rule of step (2). Place the old logic under the “IF” and the new logic under the “ELSE”

 

 

4) Test your changes:

For any period before 09/21/2011 the old logic is executed (i.e. the IF branch):

 

For any period after 09/21/2011 the new logic is executed (i.e. the ELSE branch):

 

 

     This solution using a rule with a constant is flexible in the way that you can add more conditions into it, if you, for example, have to apply this control for some personnel areas you could add this condition in the rule. On the other hand, if you have to apply the change for all the employees, then you could take advantage of subapplications, which provide an even easier solution since you should not have to create a new rule, here are the steps:

1) Create a new subapplication, go to view V_T596A and create it, you can add information if needed. The last 4 columns are not relevant for this.

 

2) Give the time period to the subapplication, the interval should be the same as the period when the old subscheme should be used. Go to view V_T596D and create it:

 

3) Place this subapplication in the IF that selects which subscheme to use, you have to use “APPL” as second parameter, ahd the third must be the subapplication

4) Test the changes:

 

To report this post you need to login first.

9 Comments

You must be Logged on to comment or reply to a post.

  1. Lisa Zhang
    Recommend you define subapplication in view V_T596A and V_T596D instead of T511K. The subapplication can be used directly in ‘IF’ statement in schema like the below:

    IF APPL HKAV  “If sub-app HKAV is effective

    (0) 
    1. Carlos Martinez Escribano
      Hi Lisa,
      That’s a right!. IF will read those tables althoug not many people know this fact:

            WHEN ‘APPL’.       “subapplication                  “VNIP40K044621
      * new function FUNCTION ‘HR_GET_VALIDITY_OF_APPLICATION’
                EXPORTING
                  I_MOLGA       = calcmolga
                  I_APPL        = as-parm3
                  I_DATE        = aper-endda
                IMPORTING
                  E_VALID       = condition_as

      Then FM ‘HR_GET_VALIDITY_OF_APPLICATION’
      reads T596D etc.
      Regards,
      Carlos.

      (0) 
      1. Federico Montanana Post author
        Thank you very much guys! I really didnt know about this functionality, I will test it and add to the blog, so othes can take advantage of this,

        Best regards!

        (0) 
      2. Community User
        Hello,

        Are there any possibily in SAP Payroll to re-calculate previous calculation result (for example, for the past 3 years) when algoritm was changed?

        Thanks.

        (0) 

Leave a Reply