SAP HR Time Management (SAP PT module) starts with work schedule rule configuration. You know there are positive and negative accounting rules in SAP, but both rely on work schedules – time intervals when an employee has to work. In other HR software, it named shifts, in SAP it is daily work schedules. Work Schedule rules are another story. These terms mess people, who have just started working with SAP time management. I decided to spend some time and explain you in details what is this. We will go through main steps in time management configuration one by one. And today we start with work schedules, sap time management infotypes, which use work schedules, and how to generate work schedule.
Where to start
You have three options where to learn time management functionality:
- Go to SAP courses
- Read this topic
- Take my personal classes
- Watch my youtube channel https://www.youtube.com/user/VirVit
Made up your mind and come back. Today we talk about work schedules in SAP HCM. This is the most descriptive explanation how it should work, real-world examples. best practices. Just read it, understand it, re-read again. Let’s begin.
Set up work schedules in SAP
The foundation of Time Management – SAP Calendars
Yes, calendars are system wide setting, which is used in a lot of modules, not only in SAP HR module. When you set it initially or change in future always keep in mind integration aspect – don’t hurt any other module data.
Holiday class is a special delimiter which tells SAP if any special day is a holiday. Under holiday we understand not only public holidays but company days, special days for our employees when we track work time or pay differently. If your company celebrate company holiday or industry holiday which is usually not a public day off, but you want to motivate people on this specific day, you name it with different Holiday class. Further, we’ll see how holiday class affect work schedule generation, absence counting through absence counting rules, payments through wage type generation in Time Evaluation component of Time Management module.
To setup Holiday class we need to create Holiday Calendar. Open transaction SCAL “Factory calendar”. There are three options: Public holidays, Holiday calendar, Factory calendar.
The sequence is simple. At first, we create holiday list, where each item is a holiday or special day. These holidays could be fixed or flexible what you see in a picture below. And on the last screen you define date parameters, name and holiday class. We could have values 0 to 9. In a standard SAP system it’s a good practice to use 0 for regular days (or non-holiday day, doesn’t matter workday or weekend, just not a holiday), 1 for public or government holidays and 2-9 for customer holidays. You’d better stay with these guidelines as many settings in the time management are based on this approach.
Once we’ve done with holiday classes and holidays let’s switch to Holiday Calendar. Go back to SCAL transaction main screen and choose ‘Holiday Calendar’. Holiday Calendar is like a wallpaper calendar, where you place holidays on specific days. All you need here is to choose calendar ID (or use standard one for a country), enter its name and add holidays to the list with “Assign Holiday” button. It’s a good practice to assign holidays far further 10-30 years forward.
Now we have one or more holiday calendars (depends on your business requirements). Next thing is a Factory calendar.
Factory calendar refers to the holiday calendar. You can have as many factory calendars as you want. What important is this calendar is assigned to personnel areas in SAP IMG and widely used across the ERP system: for job schedules, BW schedules, some planning in Plant Maintenance and other modules. You never assign factory calendar directly to an employee, only through administration structures.
SAP Time Management Work Schedules
Work schedules are made of Factory Calendar, Daily Work schedule, Break Schedule, Period Work Schedule, Work Schedule Rule, and Variants. All settings performed under Time Management -> Work Schedules menu in SPRO transaction.
Break schedule is the smallest gear in work schedule engine. It has variations of start and end times of time which we normally call breaks, lunch but it could be even paid break time. Breaks could be static or dynamic, occurring after a number of hours met.
You can see here unpaid and paid columns where we put hours. If there is something in after column it means to be dynamic schedule and system will automatically add a break after these hours met starting from daily work schedule start time. I’ll show this latter.
Daily work schedule
There are two main parts: variant and work schedule. Variants allow SAP to choose the right work schedule modification. Assume we have two variants: normal and reduced shift. Both would have the same work schedule code, but different shift length inside. How can we say the system to choose the right one? With variant which in turn is based on holiday class, we’ve already taken care of.
SAP Daily Work Schedule VariantNext words would be tough to understand. We have 4 columns: Holiday class, Holiday Class next day, Day, Variant. Looks strange, doesn’t it? Two fields Holiday class and Holiday Class Next Day have 10 symbols each. Each symbol corresponds to holiday class starting 0 to 9. If there is X in the first position, it’s a holiday class 0. If there is X in the third position, it’s a holiday class 2. The same for a day but there are 7 symbols – one for each calendar weekday.
Let me read Rule 10, Number 01. If today is a holiday class 0 and tomorrow is any holiday class and today is Friday, return an empty variant. If we recall, holiday class 0 is a normal workday, so this row in human language sounds like: if today is a normal day, tomorrow I don’t care and it’s Friday, then return an empty variant.
Let’s read the second row of Rule 10. If today is a normal day and tomorrow is a holiday (holiday class 1) and it’s Friday, return an empty variant.
Third option: today and tomorrow is any holiday class and it’s Friday, then return variant A.
In some countries, we use variants to reduce normal hours by one hour. We create one daily work schedule with two variants. If it’s empty variant than nothing is reduced as it’s a normal day. If variant A, than dayshift, ends earlier by one hour. And if today is a holiday, return variant F which is set for 0 hours workday – day off in other words. Here is an example for Russia.
It’s daily work schedule turn. Have a look at this image. There are a lot of fields to discuss, but today we’ll pick the most useful leaving other cases for an advanced level of this topic.
If we enter planned working times and break schedule and hit enter, the system will calculate planned working hours herself. DWS selection rule is that work schedule setting we’ve seen above when talked about variants. It allows to chose variants of the same daily work schedule code.
If this work schedule reflects day off like weekend day we tick ‘No planned working hrs.’ checkbox and the system inserts zero hours into planned working hours. Pretty easy.
If you don’t work with positive time accounting in SAP there is only one field left – Daily WS (work schedule) class. This is another grouping feature to allow tracking, account, pay this specific day differently. It’s independent of holiday class but can tell the system to pay a premium for planned hours as an example. There is no standard value, so you’re free to choose yours.
Period work schedule
A template of a sequence of daily work schedules named period work schedule. The period could be any length and should end with an asterisk. We could have a lot of templates for work schedules like 5 workdays * 2 days off, 4*4, 2*1,10*4 – absolutely no limits. Once system finds the asterisk or the end of the sequence it rolls it out and starts over with a new copy of the sequence. The idea is simple, take a look at standard schedules to see a logic and templates.
Work schedule Rule
Work schedule rule is the second part after the variants by its complexity. Working time frame in different countries used creatively. In some, it takes time for seniority or eligibility calculations, in other for overtime hours, in some for reporting and FTE calculations.
Work schedule generation is the key. Period work schedule is taken from the previous step. Ref date is the first date when our template starts. If we have here 01.01.2018 and P121 period work schedule from the image above, the first workday with PD12 daily work schedule would start on 01.01.2018. On Jan 8th it would be PN12 (first day in second week/row in the table).
If we change star point to 8 everything will work the same way except the first day on 01.01.2018 would be PN12 as system offsets start day for period work schedule by 8. If we set here 5 it would be first FREE schedule in the first row on the picture above.
Here is the trick. If you have teams who work in a 1-2-3 shift rotating the shift every week, it’s a good practice to create one-period work schedule with 3 weeks: the first week with a shift 1, second – shift 2, third – shift 3. You’ll have one-period work schedule (one template) and three different work schedule rules with the same start point but different offsets (field start point). It’s a time saver.
How to generate Work Schedules
We’re almost set with the work schedules. We have defined work schedules through templates, the system knows how to extract and roll out data at some point in time. But we have factory calendar, holiday calendar. When we define work schedule rule we specify holiday calendar, so the system understands where to take holidays and apply holiday classes to a variant selection rule. When we start generating work schedules in internal tables system applies holiday calendars to work schedules and generates final version per each year.
To generate work schedules we can use either manual way or automatic. In manual, we can create and adjust work schedules in PT01/PT02 transactions. They are simple and flexible. Usually, we use them we need to move some daily work schedules to another place if variants can’t help.
When you have hundreds of work schedules it’s better to use automatic mode. Run OG00 transaction, feel the selection screen and run. The system generates so-called batch input session, which you can find in SM35 transaction. It’s some sort of imitation of human manual data entry. The system repeats each step and fills fields on the screen from the dataset. In SM35 transaction select your session and run it in the background. Once it’s finished you’re all set.
The very last step is to transport your transport request to the quality and then to the live systems.
Where to use Work Schedules
After the transport request is successfully imported to the live system users can use work schedules. There are several infotypes and fields where to use work schedules.
Infotype 0007 to set work schedule rule.
Infotype 2003 to set substitution to an employee for a specific period.