Second Saturday as Half Day Working in Time Evaluation
Introduction
The idea of this knowledge artifact came from a question posted by another consultant in SAP Community Network (SCN). She wanted the system to dynamically determine 2nd Saturday of every month and make it half day working. Rest of the Saturdays will remain full day working.
Solution Design
Let me first show you the DWS, PWS and WSR of the normal WSR to which the employee will be assigned to.
V_T550A
DWS
As you can see from the above DWS, the working hours for the day are 8.75 hours.
Below is the DWS created for half day shift.
We also need a DWS called OFF for the off day.
V_T551A
Let me show you the PWS created for the given WSR.
You can see from above screenshot that Saturday is full day working.
V_T508A
The above WSR is getting generated from 02-Aug-2010 which is a Monday.
Let us define a PCR to achieve this solution. 2nd Saturday is always going to occur between 08th and 14th of the month. Below is the PCR configured for this solution.
TCODE PE02
PCR ZT01 checks using VARSTREDAY if the date is 08, 09, 10, 11, 12, 13, 14 or any other date. If it is any other date, it gets processed under **. If the date is 08, 09, 10, 11, 12, 13 or 14, PCR checks for 2nd Saturday using VARSTWEDAY. If the weekday is anything other Saturday, it gets processed under *. If the weekday is Saturday, it replaces the existing DWS D001 with DWS D002 using DAYPGD002.
Let us place this PCR in custom positive time schema ZT01 before function P2011. The custom time schema is a copy of standard positive time schema TM00.
TCode PE01
I would recommend to replace the full day DWS with half day DWS before function P2011 so that function P2011 processes as per the half day DWS.
Let us now proceed to solution testing.
Solution Design
Let us first go through IT0007 and the generated DWS. The employee has been assigned to WSR D0001-01 from 01-Aug-2013.
IT0007
Work Schedule
The work schedule shows that on 2nd Saturday, 10-Aug-13, the DWS is D001. This should get replaced by DWS D002 dynamically in time evaluation on 10-Aug-13.
Let us run time evaluation using PT60 till 10-Aug-13.
PT60
The time evaluation gets successfully processed for 10 days.
Let us go through the processing of PCR ZT01 for 10-Aug-13 which is 2nd Saturday of the month.
As per the above PCR processing, the DWS D001 is getting replaced by DWS D002 on 2nd Saturday, 10-Aug-13.
Let us now see the processing of function P2011.
P2011
As you can see in the screenshot above, DWS D002 has replaced DWS D001 and the employee has to work only 4 hours on 10-Aug-2013, 2nd Saturday of the month. Also, the Table TZP has got created as per DWS D002.
So here is the solution of Second Saturday as Half Day Working configured dynamically and I come to the end of this knowledge artifact. Thank you for your patience to go through this document. I hope this has been useful for you.
Thanks and regards,
Vivek Barnwal.
If you are interested in other knowledge artifacts by me, please refer the below link:
One Stop Shop of my Knowledge Artifacts in SAP HCM
Hi Vivek,
Very Nice document on the Second Saturday as the Half day.
Could you please let me know how it works if the employee joins in the middle of the month.
Ex: Suppose the employee joins on July 8th 2014. As per the PCR ZT01 the Time type ZT01 value will become 2 on 18th july. so the PCR ZT02 will default half day DWS for July 19th which is incorrect as it is 3rd saturday of the month.
Please advice if my understanding is correct.
Regards
Rakesh KM
Thanks Rakesh for pointing this out.
I never thought of this scenario. This is a defect in my logic. I will rework on this to include the hiring logic too.
Regards,
Vivek
Hi Rakesh,
I have completely modified the solution design for this requirement and has made the logic simpler. Now, this solution will work for all scenarios even for your hiring scenario.
Thanks once again for your valuable feedback which helped me to plug this defect.
Regards,
Vivek Barnwal
Hi,
Good document 🙂 .
Time Evaluation can run upto current day -1 as per SAP standard. Work schedule will update only after running the time evaluation.
What if employee wants apply leave for second Saturday of Sepetember month 13-09-2014 on Aug 4th that is today.
Unless we run the time evaluation for the future period i,e 13-09-2014.half day work schedule will not be generated for that day.
How the SAP standard will work in this scenario?
Regards,
Raja Sekhar
Hi Rajasekhar,
Operation DAYPG doesn't replace the DWS in Table T552A where the generated DWS are stored.
It only invokes the replacement DWS in run time for the given date.
Regarding application of leave on 2nd saturday in advance or at any time, employee should be asked to apply for half day leave on 2nd saturday.
Thanks and regards,
Vivek
Hi,
Suppose employee wants to take leave from 10-09-2014 to 15-09-2014. Now he should apply leave from 10-09-2014 to 12-09-2014 and again separate leave 13-09-2014(Which is second Saturday) and again from 14 to 15-09-2014. Total three times employee have to create a leave record. Wouldnt it be a time consuming process ???
Regards,
Raja Sekhar
Yes, it will be a time consuming process. A better option is to do a customization to enable system to determine 2nd Saturday while applying leave and for that day, the counting rule should count 50% for leave.
Such things happen when client wants automation in standard for every possible scenario but there will be some or other limitations.
Regards,
Vivek Barnwal
We can do one more thing.
For every 2nd Saturday, if leave is applied for full day, we give 0.5 days quota back to employee for the extra quota that gets deducted. This can be achieved in PCRs.
Thanks and regards,
Vivek Barnwal
Dear Vivek,
Really you made this stuff into very understandable.
Ur's Mohan
Thanks Mohan.
Hi Vivek,
Nice work again.. i guess it works in all scenarios? isn;t it ?
Yes, it works in all scenarios.
Regards,
Vivek
Excelente Vivek.
Thanks
Sriram
Hi Vivek,
Once again very helpful document from you. Thanks a lot.
Regards,
Santosh
Thanks Santosh,
Regards,
Vivek
A user exit EXIT_SAPLPTWS_001 can also be used to perform the necessary calculations and generate the Work Schedule accordingly. This will ensure that it will work not only for Time Evaluation but also for Leave Processing.
It is Programming vs Configuration, but I would say the programming effort is not huge to achieve the desired outcome.
Vivek,
This solution would work for time eval. However you may need to verify the output from payroll functions GENPS & PARTT for TSOLL, etc. which depend on IT 7 & 2003.
Yes...it will work from time evaluation perspective. And I agree with you about checking the output with regards to payroll functions.
Regards,
Vivek Barnwal
Hi Vivek,
For no time evaluation scenario, is it possible to map the scenario...
Thanks,
Santosh
You can do the following:
Create public holidays with public holiday class 3 for such dates. Write a variant for the DWS that whenever public holiday class 3 occurs, it should called the variant DWS. And you can define this variant DWS as you wish it to be.
Regards,
Vivek
T-code PT_SHF00 is used for Work schedule generation . There is SAP Standard user exit available to override the workschedule
"User Exit :- PTIM2007 (Generate Monthly Work Schedule)"
FM:- EXIT_SAPLPTWS_001
Include:- ZXP01U03
This helps you to generate the work schedule for whole year .
Regards,
Raja Sekhar
Good Information Rajasekhar thank you very much
Once again a nice Document by you Vivek Sir....I really admire your simplicity in writing...the explanation is very easy to understand in all your documents.
Regards,
Bhagyashree
Hi Mr. Vivek,
Great work sir and very helpful logic.
Regards;
Bashir
Hi Vivek,
Very Useful Document.
Thanks!
Hi vivek ,
how we arriving that from 8 to 14 falls second saturday , what is the logic behind it.
regards,
SHIVA
Hi Shiva,
1st Saturday can fall only between 1st of the month and 7th of the month because there are 7 days in a week. Hence, 2nd Saturday can fall only between 8th of the month and 14th of the month.
Regards,
Vivek