SAP SuccessFactors Employee Central, HCM (Human Capital Management), SAP SuccessFactors Employee Central Payroll

Successfactors Time Management – new features in H1 2021

0. Time Tracking

Before we come to the new features, let me first do a small recap on our Time Tracking product if you have not yet heard of it.

We have since April our new Successfactors Time Tracking product available. This product can be seen as the extended version of our current EC Time Sheet and Time Valuation. Allow me some metaphers: Time Tracking is going to be like Champions League as opposed to the National soccer Leagues, like Formula 1 as compared to Formula 3, like Olympics as compared to district league, like the Miles Davis Quintet as opposed to normal Jazz bands performing in your town. No offense – even district league or playing in small Jazz bars is already an accomplishment (which I still dream off) and many are happy with this, but it´s not top of the range. With Time Tracking we are heading into the top direction.

What is Time Tracking exactly?

All new future features for time sheet and time valuation will only be available for Time Tracking customers. If you don´t need them, when you are happy with the existing time sheet and time valuation capabilities then no need to change anything, you still can use them without the need of the Time Tracking product. But if you want to consume this new features – like for example the below mentioned Single Record Approval, Clock in / out Integration or Cross Midnight functionality in Time Sheet – you need to have a Time Tracking subscription. Upon subscribing Time Tracking a switch is set in the system that enables you using the H1 2021 and future Time Tracking enhancements.

If you are already using the time sheet you can keep the existing configuration. Of course you need to adapt it a bit with respect of the new features – like for example new workschedules and time valuation rules to cater for cross midnight or a new attendance time type with a workflow configuration assigned to enable the single record approval feature. But we will come to this later. You can find out if a feature needs Time Tracking by looking on the table of content and the respective chapter heading – I mentioned it there.

And what about Time Off – are the enhancements around absence recording or localization need as well the Time Tracking subscription?

No. All Time Off enhancements will stay under the EC subscription and will come without any additional cost to you.

Basics cleared. Now lets focus on H1 2021. What´s in the box?

1. New Time Sheet User Interface

As already briefly mentioned in my last release blog, we have a new Time Sheet User Interface. In H2 2020 this was only for Early Adopter customers, and now it is going to be released as general available. How does it look like?

The new time sheet comes with 4 sections, I colored them:

The calendar pane (red), the time sheet overview pane (green), the daily time recording pane (yellow) and the information / alerting section (red circle):

The new time sheet comes with lots of usability improvements and new features. Let me start with the calendar pane (red border):

On the very left side of the time sheet you see a calendar control panel with which employees can navigate easily to the time sheet they want to maintain. Just click on a day in the calendar or browse through the calendar. This is a big improvement compared to the old time sheet UI where you could only navigate by clicking from week to week successively. But there is even more in this calendar control: we indicate already in the calendar not only public holidays or days on which an absence has been recorded. We also give information on the time sheet status right away in the calendar – if there are unapproved time sheets or time sheets that needs still to be submitted. So, with a quick glance on the calendar the employee gets all information he needs to decide if his time recording is complete or not. To show all different possibilities (not yet submitted, rejected, amendment pending…) would turn this calendar in a colored overkill, hence we summarize this all with the red color which means: attention required. Something is not good with this time sheet and you need to analyze it and work on it.

The middle section (green border) represents the selected time sheet overview. It shows the approval status of the time sheet, calculated time recording sums and for each day of the time sheet the daily planned time and and the sum of recorded attendances per day. So, you see on a glance if there are times missing. When there are time records for a day you see this indicated at the end of each day line. Each business fact has it´s own icon: attendance recordings, allowances, on calls or absences:

And below of this day overview section there is the of course a summary of time valuation results, the actual balance for working time accounts and time off in lieu accounts (and nice: what was added so far this week). You have got the time collectors that you want to present to the employee, like for example total hours worked in the actual month or like on the screenshot below the number of early, late, night shifts worked per month:

Now, let´s come to the essential pane, the daily time recording pane. Remember, this is the very right one (yellow border) on this screenshot:

You come to this either by collapsing it or by clicking on a day in the overview.

Let´s have a closer look on this:

As usual attendance records, allowances, breaks, on call times and absences can be recorded here. If breaks don´t get manually recorded but automatically deducted via our fix or dynamic break deduction you see them in this section as well as imported external time data coming from a terminal system or from other 3rd party systems.

The day pane gives you moreover in the header information on the planned working time per day – like shift or day model name for the selected day, the start / end time of the planned time and the flextime bandwidth (if configured) as well as the planned break times. All this information is mainly read from the work schedule day model and gives the employee all information he needs to know to see from when to when he is planned. Yes, for a normal admin employee each day working from 08:00 – 17:00 this is not really necessary, but when you have got shift employees in varying rotation patterns this information is needed. And you can see here of course the sum of the daily recorded attendance times as well.

As a positive time recorder you can easily do the time recording with one click when you have worked just like you ought to according to your workschedule: just click on the “Apply planned time” button on the top right corner of the day pane and you are done.

And if you want to record more records on a day, like absences, on calls, allowances or further attendance records, all is done in this pane, you get a scroll bar then.

Based on customer feedback during the Early Adopter Phase last release we did a further nice enhancement. In the day pane we show the approval status of an absence. And furthermore not only “active” absences are shown, but also the full history of the absences. This means even cancelled or rejected absences are shown here. So full transparency for an employee on his absence records:

Full responsiveness and accessibility

There is a lot more to say on the new time sheet UI, but let me just shed the light on two features: The new Time Sheet user interface is fully responsive. This means you can use it on any device, it automatically adapts to the size of the screen. This helps in those cases where our native mobile time sheet app does not yet provide a solution for – like custom fields in the time sheet for example. Just use this time sheet UI on your mobile device and you can enter time records with custom fields.

New time sheet UI responsive on a mobile device:

And, second, the new time sheet UI is furthermore fully accessible, this means even handicapped people seeing badly or nothing can use our time sheet and record their attendance times.

As in the old time sheet UI we still process all time data entries of course in a real time valuation and the results -like updated week sums, time valuation results like overtime premium or any other calculated premium, working time account or time off in lieu account updates but also errors and warning messages are presented in the UI upon the Save action.

There is a lot more that could be mentioned – like for example easy re-labelling of field names or headlines just as the customer want´s to have it, adding lots of custom fields of different data types to add for example an attachment to a time record or the visualization of the working time account or Time off in lieu account by the external key of your time account, but best to read in the implementation and user guide on this new features and the new look and feel. Or even better: just upgrade and use it.

How to get the new time sheet UI?

Now, how can you activate the new time sheet UI? This is done via the upgrade center:

You get on this side before doing the actual upgrade information on the new UI, a video with explanations and even a FAQ document that you can preread.

If you choose the option to upgrade to the new UI all links in your instance direct automatically to the new time sheet UI. You can try this out in a test instance for example if you want. And in the unlikely case you don´t want to push this immediately to your employees you even can revert this upgrade activity within 30 days. You have the old time sheet UI back then for all employees. And you even can after the upgrade create a custom tile with the URL of the old time sheet if there are some employee groups who still need the old one, or if maybe in some areas even workers councils need to approve to use the new one. But be aware that all standard links like “View my timesheet” or the quick action on the new homepage direct to the new time sheet after the upgrade.

But remember: the old time sheet UI does not get any features or further enhancements, nor does it support new features. And it is going to be retired in the future.

Now the crucial question is: do you have to pay extra for the new time sheet User Interface – this means do you need the Time Tracking subscription to consume the new Time Sheet UI?
Answer: No.

Even if you are not a Time Tracking customer, you can upgrade and use the new Time Sheet UI and benefit from the improvements.

2. Single Record Approval in Time Sheet (Time Tracking)

This is a feature that comes only with the new Time Tracking product and that runs only in the new Time Sheet user interface.

What is single record approval?

Up to now the whole time sheet was always send for approval. Yes, you could have sophisticated workflow rules where for example a workflow is only triggered when a specific time type is recorded or the time valuation has calculated overtime – but always the whole time sheet, all records, where sent to approval.

Ever wanted to have a single business case approved in the time sheet as opposed to the whole time sheet? Like for example a training-record? And maybe even in advance to have a kind of pre-approval for specific attendance facts like planned overtime or planned home office to document in the system that this is okay for the employees managers?

Then you can use the new single record approval for time sheet. It´s an approval like for absence time types: you assign a workflow configuration directly to an attendance or on call time type. And if you have done so all this time types trigger an own approval step.

You might now ask how this approval interacts with the overall approval of the time sheet? What happens when the time sheet gets approved, but a single record within the time sheet has still an approval pending or even gets declined after the overall time sheet has been approved? Are therefore wrong data send to payroll?

Well, this cannot happen.

You can only submit a time sheet when all all records “inside” a time sheet that need a dedicated single record approval are approved. Only then the overall time sheet can be submitted. Before this, the submit button is not activated. Yes, in the end this means that an employee cannot submit his time sheet as long as there are unapproved records in it, but this is the only way to prevent a data mess in the payroll system. If you use this single record feature, make your approvers aware of this fact and let them have single records approved in a timely manner.

When a time type is configured to need an approval, you see in the new time sheet user interface a dedicated submit action for this record as well as it´s approval status:

And as mentioned, to avoid payroll inconsistencies, time sheets cannot be submitted when a single record is still in the status “to be submitted”, “pending approval” or “declined”. The approval status of each single record configured with an approval workflow needs to be “approved”.

3. Time Recording till 24:00

Another little feature that is awaited from customers since long. We finally get rid of this technical debt and make hopefully some customers happy with it.

Up to now it was only possible to set up workschedules or perform absence or attendance recording only till 23:59. But what, when the shift or the time recording ends exactly at 24:00? I spare you all the technical details why this was so tricky from a technical point, but even from a philosophical point this is not really easy. What is 24:00? When you check your smart watches or your Iphone or your television program, 24:00 does not exist. The actual day ends with 23:59. So, 24:00 is rather 00:00. But 00:00 on the actual day cannot be, cause otherwise the employee has started work at let’s say 16:00 and worked back into the past, or is it back into the future? ? We all know from Doc Brown and Marty McFly from the famous 80s- movie how dangerous it can be when you meet your earlier you ;-). So, logically and practically it is 00:00 next day. Cause on 00:00 or 12:00am the next day starts. But next day would already mean the end time of an absence or attendance is on the next calendar day……

To cut a long story short: we implemented a logic to allow having a time recording till exactly 00:00 (or 12:00am) which is not yet a “cross midnight” or next day constellation. When you record an absence or an attendance which exactly ends at 00:00, the end date will still be the same as the start date. And I think there is not more you ought to know ;-). It is possible now.

To consume this new feature you don’t need to subscribe to Time Tracking, this works also without it.

This is how it looks like in the new time sheet UI:

And now the crucial question: what if you want to record attendance not only exactly till 00:00 but also crossing midnight? You know that we enabled workschedule and absence recording for cross midnight recording in H2 2020 release. And in H1 2021 release we have taken the next step and enabled cross midnight for attendance recording in the time sheet and time valuation:

4. Night shifts in Time Sheet and Time Valuation – Early Adopter (Time Tracking)

It´s with an extra pleasure that I can announce finally a feature that is long awaited for by many customers: cross midnight attendance time recording. After the release of cross midnight for time off in H2 2020 we continued the journey and enabled our time sheet and time valuation to cater for night shifts and cross midnight attendance recording.


  • Cross Midnight for Time Sheet is only available in the Time Tracking subscription
  • Cross Midnight for Time Sheet works only with the new Time Sheet User Interface
  • Cross Midnight for Time Sheet is only available for customers participating in the Early Adopter program for this topic. This means it is not yet general available to all customers in H1 release

But how does our cross midnight solution look like – and what do you need to configure?


First of all you need a workschedule that is marked to allow cross midnight. This flag was already introduced in H2 2020 as part of the cross midnight for time off delivery. If you do not know on this, or on the capabilities on cross midnight for time off, please read my blog on the H2 2020 release:

Just as a reminder – this is how the flag looks like for a day model:

And for the workschedule:

Logic of logical day ?

The overall logic of cross midnight is of course the same as already established for cross midnight for time off: The shift day (SAP ERP onprem guys might know the term “logical day”) is always the day on which the night shift starts. So, when the nightshift starts at 22:00 (or 10:00 pm) on Monday an employee needs to record a single vacation day on Monday, cause this is the shift day. And same principle applies for attendance recording and time valuation: When there is a daily overtime calculation rule on a shift spanning two calendar days, then of course all hours recorded in the shift from Monday to Tuesday shall count for the daily overtime calculation – or any daily calculation like did the employee record more than 10 hours per day; is the minimum break regulation met per day; or all other daily valuations. Regardless if the “physical” day is Monday or calendar day Tuesday. As long as when they are part of shift day. But the exciting question now is – how long on Tuesday morning shall recorded hours be regarded as belonging to the “logical” day Monday?

Lets illustrate this with an example and a picture:

Employee has a night shift from Monday 31 January 21:00 – Tuesday 1st February 06:00. He records working time from 21:00 to 06:00. We got a break from 01:30 – 02:30 (either manually recorded or automatically generated as a fix break from 01:30 – 02:30 or as part of a dynamic break 1 hour after 5.5 hours working time). Then there is a gap, no recorded time, but on 06:30 he records again working time for 2 hours till 08:30, cause he needed urgently to finish something.

Yes, I know. Overall the employee comes over 10 hours which is not allowed, and why should there be a gap before he starts working again? But let me take this example to illustrate how the system deals with the records during the employees planned time and even with those after his planned time. Cause now you learn another enhancement in the work schedule day model that helps handling those times correct: the night shift bandwidth enters the game. And in our example the segment “night shift bandwidth” in the day model is from 20:00 – 08:00.

The automatism of correct day assignment of manually created or generated (breaks) records works as following: the working time from 21:00 till 06:00 is of course assigned to the “logical” day Monday, cause this is the day on which the shift starts. The break is created from 01:30- 02:30 and as well automatically assigned to the logical shift day Monday, cause the start time of the break overlaps with the planned working time from the previous day. But then there is still an attendance record in the very early morning – even one that starts after a gap completely outside of the employees planned time which started on the previous day and lasted till 06:00. What shall the system do with this record? I mean it is likely that this belongs to the shift and day before, but can we know for sure? Does it belong from a valuation point of view to Monday? Or already to Tuesday? In SAP ERP there was the possibility to set a manual “previous day” indicator for this record. But this was really difficult to understand for employees and even time administrators. Result was lots of erronoues data in the system.

To overcome this we invented the “night shift bandwidth” that allows to handle this constellations automatically, without manual interaction and without causing employees or time administrators headache to figure out on which logical or calendar day they need to record what with or without a previous day flag.

Nightshift bandwidth

The nightshift bandwidth is a new start / end time segment that you can maintain in those day models which are marked as “cross midnight allowed”. The start time of the bandwidth is not really relevant, cause all hours recorded on the day the shift starts are automatically taken as belonging to this shift day, whether they are recorded before the start of planned time or within planned time. Hence the cross midnight bandwidth is relevant only for those records that are recorded on the next calendar day but having a start time outside after end of planned time of the actual shift.

The beauty of this approach is that you can configure for each day model the bandwidth differently if you need or want to, and it is a simple and easy to understand configuration in the workschedule. End users or time admins don´t need to bother with setting a strange flag in their time recordings to which day this record shall belong, and you don´t need to create complicated valuation rules in time valuation for it

And speaking of configuration for cross midnight – what else is needed?

Next day indicator in time segments filter

Most of the logic that you need for handling cross midnight has been hard coded into the time valuation to ease your life of configuration. If you have daily overtime calculations (or weekly and the week ends on a nightshift going into the first day of next week), if you want to count all hours on a day for 10hours checks or any other time valuation / calculation: you don´t need to consider specifics for cross midnight. The described logic above which time recordings or hours count for a shift day (logical day) are already hard coded. But there is one thing where configuration flexibility is needed, and this is when it comes to the generation of pay types like night shift premium. Everyone who has done this configuration in SAP ERP in the famous T510S table knows how tricky this can be, especially for more complex trade union contract regulations. Just an example:

There are usually night shift premiums at let´s say 25%. And when an employee performs regular work on a Sunday he gets a 50% Sunday premium for it. But what´s the correct premium pay when an employee works from Saturday into Sunday – cause he has got a night shift on Saturday? Well, there are different variants: usually you pay only the higher premium. And this would in our example be from 22:00 – 24:00 Night premium 25% but then from Sunday 00:00 onwards the higher 50% premium for Sunday work. But some trade union contracts constitute even that both need to be paid. Or there are also regulations for some areas that define a Sunday not only from 00:00-24:00, but till Monday 06:00 in the morning. And there are lot more variations possible (I let aside for simplicity reason the constellation working into or out of public holiday, which sometimes even is a Sunday.

So, you see, there needs to be flexible configuration options to sort out this constellation in the time valuation. And for this we enhanced the segmentation possibility in the time valuation type “Filter segments from Input Group” with a “next day” indicator:

Please be aware: this field is not enabled by default to “editable”, hence you don´t see it. This is to not confuse customers who haven´t got night shifts at all. You need to set the “day” field in the object “time segment filter” via “configure object definitions” in the visibility to “editable” and then you can use it.

This option collects all hours of the selected input time type group which are seen from the logical day point of view after 24:00. And to get those you need to define a time interval from 00:00 – 06:00 and choose the option “next day”. But remember: this is only necessary when you need to treat data that starts and ends on the next day differently. If for example you pay from 00:00 – 04:00 a different premium than from 04:00 – 06:00. And if you got records that start and stop completely on the next day, but belong to the logical previous day.

Let´s look on a real example how to configure if you want to pay during night shifts from Mon-Friday a 25% night premium, but on Saturday only up to 24:00, cause from 00:00 onwards the Sunday premium 50% needs to be generated.

I concentrate only on the main configuration, the time valution rule of type “Filter input groups”. As a precondition you need to create 2 time records filter:

Those filters include:

Filter 1: weekdays Mon-Friday

Filter 2: Saturday

Then you need 3 time valuations of the valuation type “Filter input groups”.

This first one shall calculate a night premium 25% from 20:00 -06:00 next day on the days Mon-Friday. You set the clocktime intervall, add your filter for the weekday Mon-Friday, assign an input time type group and as time type group below you add your 25% premium:

Then you need another time valuation that calculates the night premium on Saturday.

You apply your time records filter for Saturday, choose the time segment from 20:00 – 00:00 and assign as well the 25% night premium:

Pay attention that up to now you did not need the “next day” option in the “day” field. But this comes now, cause we need to get the hours on Saturday from 00:00 onwards, cause for those a Sunday premium shall be generated. Hence, you need a third time valuation where you again apply your Saturday filter, but now with a time segment 24:00 (or 12:00 am) till 23:59 (or 11:59 pm). And to prevent that you valuate the hours on Saturday in this time segment you choose the option “next day” in the day-field.

And done ! You have configured night premiums during the week (whether they are recorded before or after midnight) of 25% but the night premium on Saturday is only till 24:00, and from 24:00 onwards there is the higher Sunday premium paid.

Of course, to round this fully up you would need a fourth valuation with filter on Sunday and 00:00 – 23:59 to generate a 50% Sunday premium for those hours that are recorded on the shift / weekday Sunday and which are not coming from the Saturday night shift.

To summarize:

If you got simple requirements like a night premium 25% is paid from 22:00 – 06:00 each day you don´t need any specific day indicator in this segmentation rule, you can create a rule with the time interval 22:00 – 06:00 and assign to the time type group below a 25% night premium. The next day indicator in the segmentation rule gets only relevance when you have night shifts into Sunday and from 00:00 on Sunday the Sunday premium needs to get generated as opposed to the 25% night premium. This segmentation possibility in conjunction with the time records filters where you can select a range of weekdays or single week days, and / or public holidays allows you to flexibly put those hours into time type groups that you want to collect together or that you want to separate into another (with the time type group above / below mechanism of the time valuation rules).

I know, this all sounds a bit complicated – but unfortunately some time management topics are exactly: complicated ;-).

But to summarize what you ought to do in configuration:

  • set the cross midnight enabled flag in the workschedules
  • assign a night shift bandwidth if necessary (not mandatory, only when you got situations where an employee can completely after his shift record another attendance that shall be evaluated together with the times of the previous logical day)
  • for correct premium pay generation it might be necessary depending on the complexity of your rules to use a segmentation valuation with next day flag set

Now, let´s end this excursus on configuration and come to how a night shifts are visualized in the new time sheet UI:

Recording of cross midnight attendances

It´s always a challenge to present end users the fact that they started work on one calendar day and ended on the next. We tried to come up with a simple and nice approach. It´s just like on your flight ticket. We show the time data on the same calendar day, but with a little +1 indicator:

Assume an employee has a night shift from Monday into Tuesday. All his time recording needs to be recorded on Monday. Not only those records that are before midnight or cross midnight, but even those records that even start after midnight. This is new compared to SAP ERP Time Management! And I just give you a second to think over this – all time recording on this shift day be it on calendar day Monday where the shift started or on calendar day Tuesday where it ends, all time recordings have to be done on Monday ! This sounds easy for endusers, doesn´it? As mentioned previously, an end user should not be bothered with logical day and calendar day. He works in the nightshift on Monday, cause this is the day on which the shift starts. Hence all time recording is done for and on Monday. And that everyone understands this the system generates automatically the +1 indication when he enters a start or end time that is after 00:00 automatically. So, there is not any thougth the employee needs to pay attention to if he needs now to choose Monday or Tuesday as a calendar day, he just picks the day which the shift starts.

Lets have a look: this is when an employee records in a night shift from 22:00 – 05:00 enters 22:00 – 03:00 (or like in the screenshot from 10:00pm – 03:00am). He does not need to bother, he just enters the times and the system places automatically at the end time a +1 to indicate that this is 03:00am next day:

And when the employee continues his time recording and wants to enter a subsequent time record – does he need to navigate to the next day and place a “previous day assignment” or whatever? No. Remember: all time recording is done on which the shift starts, even when the time record starts after midnight. So he just continues on the same day and chooses the start / end time 03:00 – 05:00 (or 03:00am – 05:00am) and the system places automatically the +1 indicator:

And internally the time valuation takes all hours correct according to the internal logical day assignment.

So, all in all quite easy.

Now, what´s the story with the Early Adopter program, why is it not yet General available?

Early Adopter program for Cross midnight

If you want to use this feature you need to participate in our Early Adopter program.

The Early adopter program allows a hand-in-hand introduction of a big new topic, gives customer close cooperation with Product Management and us the possibility to collect feedback. This topic is part of the Early Adopter Program mainly cause there are some small gaps in H1 that need a workaround handling or that cannot be covered at all in H1. Let me just touch upon those:

Gap: working into / out of public holidays shall trigger a different premium then normal night work

The solution is capable of handling situations where employees work into the next day, and of course the system can then calculate a different premium pay- as long as we can identify the day. And this is possible if it is a special weekday, but not if it is a public holiday. What do I mean with this?

When employees work from Saturday into Sunday it is possible to generate from 00:00 onwards a Sunday premium, cause you can define this via the weekday option “Sunday” in combination with the clocktime definition.

But it is not yet possible to generate a different premium when employees work in a nightshift into a public holiday or out of a public holiday and this time slice shall generate a different premium then for normal night work. There is not yet a possibility to define a filter for “yesterday was a public holiday” or “tomorrow is a public holiday” where the employee works into or out of.

Gap: automatic collision handling from one time sheet into the next

When your time sheet period is from Monday – Sunday and you have a record that starts on Sunday and goes till Monday morning 05:00, but you have already recorded another attendance recorded on Monday from 04:00 – 06:00 this should normally trigger a collision. An employee cannot have overlapping time records. This kind of check cannot yet be performed directly upon time recording. We have a batch check for this constellation via our Check tool – so, you need to run from time to time this check tool, you get an indication on which day for which employee there are overlapping records from one timesheet into the other and then manually clean up the situation by deleting one of the overlapping records

But again: this is only for situations cross-time sheet periods. During a time sheet week this automated collision handling works of course.

This two gaps are planned to be solved with the H2 release.

So, let me finish this topic right here, I don´t won´t to go too much into the details. The main message is:

  • we provide a solution for attendance recording and time valuation for cross midnight handling
  • it´s in H1 only available as part of Early Adopter program
  • it´s part of the Time Tracking subscription
  • there are some gaps in H1 that we plan to overcome with the H2 release – which we target as a release where this solution is set to general available

5. Clock in Clock out Integration – Early Adopter (Time Tracking)

Let´s come to the next big topic, clock in / out integration. Another big step in closing big business gaps that prevented customers to move to the cloud with time management.

Clock in / out – many of you know this topic. You got a time recording terminal connected to your entrance gate or door, or a standalone terminal for time recording behind the access controlled entry. Or you are running a webclock on PCs and after starting the PC the employee is clocked in – or you use mobile devices, biometrical scanners….. there is plenty of hardware out there to 1) identify an employee for access control and 2) combine this with an employees time recording.

A real access control solution was never SAPs business, but the integration of other dedicated software solution provider that handle this and of course the possibility to receive the employees time recordings, the clock in / out punches. In the very past this was the CC1 interface, then then HR-PDC interface and now Successfactors has got it´s own way of dealing with clock in / out integration, it´s via OData APis.

How does the process flow look like?

It needs a view words to explain I guess:

Whatever device you have on which employees perform their clock in / outs those devices (or in the end the server software) needs to be able to send this raw time punches via Rest API over the internet. On our side we perform then the pair formation, this means we connect raw time punches to a business semantically correct time record. Like for example an employee clocks in at 08:00 and 4 hours later out with reason “break start”. After 30minutes he clocks in again and after another 4 hours he clocks out. We create 3 records out of this:

08:00 – 12:00 working time

12:00 – 12:30 break

12:30 – 16:30 working time

It´s just an example – you can have many more clock in / out “reasons” or just a simple clock in / out. This is called on our side “time event type”.

This time pairing is done in our time event processing application. But not only this, it furthermore performs input checks and highlights in the Admin UI time events that could not be paired for example.

A successful paired time pair either with category “attendance” or “break” is then sent to our Time Sheet. Once in the time sheet, the time valuation processes these records just as any other time record in the time sheet.

Admin UI

The time event processing application comes with an admin UI where a time administrator can monitor the uploaded time events (that´s how we call the clock in / outs or time punches). The pair formation gets triggered automatically real time after uploading of the time event. An admin can see in this admin console if the pair formation was successful or not, if there are time events left that cannot be paired (cause the employee has for example forgotten to clock out):

This view can be filtered on employees, pairing status, date, time and more. In addition you can configure what fields shall be shown in this list. There is for example the Terminal Id that comes together with the clock in / out – if you don´t need it, hide it.

But what can an admin do if there are time events missing? Well, he can create manual time events in this screen:

He even can delete existing ones.

But most important is that he sees when time events are missing and the admin needs to add something in order to have a successful time record. Currently we provide only the options to add a manual time punch via this admin console. We plan for next release to enable employees with an ESS scenario where he can redo forgotten punches triggering a workflow process.


What do you need to configure for this? Check this overview:

First clock in / out needs to be activated in provisioning. Then there is a job that needs to be scheduled that replicates the employee data together with a new entity “clock in – out group” to the terminals. This scheduling is done in provisioning. All employees having a clock in/out group assigned are replicated to the terminal software. The clock in / out group informs the terminals what kind of clock in / out reasons an employee can use.

The clock in/out group is a new field on the job info, and it´s kind of configuration profile for clock in / out. Currently it bundles the “time event types” like clock in, break start, clock out… . This bundle can then be assigned to an employee in the job information. Cause it might be that you have got employees that are allowed to record different event types within your worldwide organization. You create this groups and event types via the admin center in EC. Choose the “Configure Clock in Clock out action”:

Next step is mapping the time event types to a real time type that is used to send the data to the time sheet. This is done in the action “configure time type derivation” via the “manage data” activity:

You can select the category attendance and break (note, a time punch with an event that shall create an absence record is not possible). If you just enter the category and don´t choose an explicit time type the system takes for attendances the “default import attendance time type” as maintained in the employees time profile (which is assigned in the job info), same if you don´t further specify the break category – the time profile default break time type is used.

One of the last steps is of course assigning the clock in – out group for the employees in the job information. Make sure you have enabled the clock in/out field in the job information via configure business objects, otherwise you cannot maintain it:

And you need of course to maintain the technical integration – but I just mention this 3 steps, cause it is quite good described in the “Integrating Terminal with SAP SuccessFactors Clock In Clock Out” section of the implementation guide. You need to:

  1. Setting up Oauth connection for terminal
  2. Create Oauth tokens
  3. Configure REST API for sending terminal punches

Our clock in / out solution is in H1 only available as part of an Early Adopter Program, hence not general available for all customers. Reason is: in H1 this solution is not available for all data centers, there is a phased roll out during the next couple of months.

And there are still some gaps we need to cover in the next release, like for example allowing an employee to record manual time events, the visualization of the raw time punch data in the employees time sheet or notifications to employees when time punches are missing. And we plan to provide mobile web clocks or apps with which you can punch in or manually record punches. But these are things to come. But if you are interested in implementing this solution in H1 you can do so as part of the Early Adopter Program.

6. Time Management Engagement Cards on the new Homepage

Below you see the new homepage:

At the top row you see direct navigations to for example the leave request or the time sheet. If you click on those the leave request form comes up for example:

And the good thing: the leave request as well as the time sheet opens up in a responsive form. So, you even can use this easily on your mobile devices, the screen size adapts to the size of your device and you can use the web application without restriction on your mobile device.

But we also provide a nice card that dynamically appears when an employee has taken no vacation for too long:

This card is shown dynamically to each employee when there is a time span of 30 days elapsed during which the employee did not take any vacation days (and no vacation is recorded during the future 60 days). This card is a nice way to remind automatically employees to cater for their work-life balance and to take off-days. The card comes with a direct navigation to the leave request:

The second card is for leave request approvers only. It visualizes in a nice way the pending leave requests and gives approver the possibility for a quick approval without having the need to navigate to the workflow approval inbox. If there are more than one pending workflow request they get piled upon each other:

And speaking of approvals, this is a nice bridge to the next topic:

7. Workflow dashboard

Does this sound familiar to you? Payroll run is due and although your approvers are advised to approve all time sheets before the payroll run, in real life there are always lots of time sheets not approved and employees are then not getting paid correctly? Lots of complaints afterwards, lots of frustration on all sides.

Here comes the solution, the new Workflow dashboard:

This dashboard gives you live figures on pending workflow requests for time off requests and time sheets. You get a nice and comprehensive overview on the current pending workflows and the possibility to drill down into details:

With this view you not only see the time sheets that are still pending for which period, but it gives you also the information at which approver those time sheets are currently pending and contact details like mail address or phone number to nudge this approver. This nice little dashboard will for sure help you getting all times approved before the next payroll run!

If you want to use this dashboard you need to download it from the content store in the report center:

Lets come to another smart enhancement to ease facilitate the business day of a time administrator:

8. E-mail notification for time administrators

This is a feature that has been build from our platform frameworks team. This will ease the life for time administrators. There is now the possibility for time administrators to get e-mail notifications for alerts / warnings from the Admin Alert 2.0 inbox. This means there is no pro-active navigation to this inbox necessary, you just need to observe your mail box to be informed on new incoming alerts or warnings. You can subscribe for specific alert/ error types directly in the admin alert inbox and set if you want to have a daily or weekly notification. With this option you can flexibly decide which alerts / errors shall be routed to your inbox:

The mail looks like this:

And the links direct you into the Admin Alert 2.0 inbox from which you can then for example directly navigate to the employees time sheet or leave request.

9. Mandatory block leave

This is not really a new feature, it´s just the description of what is possible with creative usage of existing mechanisms. Many customers -especially in the banking sector – have a company policy that mandates their employees to take at least 2 weeks (14 days) continuous leave. Sounds easy, just count absences and if more than 14 calendar days you are done. But unfortunately, it is not that easy. The period can include public holidays, end on public holiday, start on a public holiday, the absence does not have to be a single time type but can be multiple different ones, interrupted by weekends start / end on weekends and so on. As long as the employee is 14 days in a row not in office and working, the policy is met. So, as always, when you start digging you find the devil laying in the details. But this policy can be met.

10. Overtime forfeiting after xx days

Same as the mandatory block leave – this is not a new feature, but just another best practice tip what you can do with already existing functionality.

Each country has got it´s laws and regulations on working time. Laws are always subject to interpretation and customers have different ways how to meet specific laws or regulations. Lively discussions exists since long for regulations that stipulate that overtime which is banked into a time account needs to be compensated / taken within 60 days for example, otherwise the hours forfeit. Easily formulated requirement, but as often, tricky in a real implementation.

Some customers follow a run simple approach: like each end of quarter the overtime account is set to 0. Yes, if overtime is performed on the last day of the last week of a quarter it might get tricky for an employee to take this time off in lieu, but then you can transfer it for those special cases to next quarter for example. This way of handling overtime accounts can already be now achieved with our “periodic time account processing” mechanism since 3 releases as described here.

But what if a customer really wants to adhere literally to each sentence of a law? This would mean that each performed overtime hour has it´s own forfeit-time stamp. This can only be covered with dedicated time accounts each with a different booking period. Which in turn means if an employee performs on each day of the month overtime (okay, unlikely case – but this is to illustrate what I mean) 1 hour overtime, then he has got at the end of the month 20 or more single time accounts each with a 60 day validity. You see – quite complex and quite confusing to have so many time accounts for an employee. And when you then take a full day off, multiple time accounts are deducted, but need to be reposted again in the correct order when the employee decides to cancel this absence again.

I spare you more complicated scenarios ;-). But, if a customer really wants to implement this, he can.

You can use our new ad-hoc time accounts and with a little help from the integration center it can be achieved that with each recorded or calculated overtime an ad hoc time account gets automatically created per day with -for example- a bookable period of 60 days.

11. Enhanced peer permission possibilities for Team Absence Calendar

Over the last release we steadily enhanced the Team Absence Calendar with new features. Based on the fact that we deal with highly sensitive data (employees absences) there needs however to be a rock solid way to enable customers to define in a fine granular way who can see what. This was a highly voted request on – and we not only listened, but also acted: let me introduce the new possibility in the permissions configuration to restrict the “target population” to “peers”:

With this new possibility you can define in the role based permissions exactly what shall be shown to whom in the team absence calendar.

12. Absence custom field replication to IT2001

Our EC payroll colleagues have enhanced the integration of our absences to IT2001 with a nice little feature. It is now possible to replicate a Time Off Absence time type custom field into an existing IT2001 standard field in EC Payroll.

This might help to cater for specific illness or other absence related use cases, where the payroll engine needs to be able to read a specific information out of the IT2001. You can then create a custom field on an EC time absence time type and map this custom field in the replication mapping table to a standard IT2001 field. Not all fields are allowed here (some fields are excluded cause otherwise it would break the whole replication process) but we make it easy for customers. You find the allowed mapping fields in the value help of the mapping table. Please check the documentation in the EC Payroll replication handbook for more information.

This helps already for many specific country dependent requirements. Like for example in Hungary it is needed for the absence type Child care leave to enter the dependent ID together with the absence type and pass it to payroll. A solution now can be:

Customer creates a custom field “Dependent ID” in the Dependent Portlet in EC; he also creates a custom field in the Employee Time object (Absence Form) to allow the user to enter the Dependent ID available from the dependent portlet in the absence time type. Final step is to map the custom field “Dependent ID” from the Employee Time in the mapping table infotype 2001-KENN2. The IT2001 replication writes this field then into the IT2001 record on EC Payroll side.

13. Defaulting of disability period for US and Canada

A real country extension for US and Canada has been delivered from our Globalization colleagues. In US and Canada there exists the absence reason “short term disability”. From a business point of view this absence type needs to have 3 additional dates to document the end of disability period 1 – 3. Those fields can be defaulted by the system (and of course overwritten from a HR Admin if needed).

This information gets then of course replicated to EC Payroll IT2001.

The duration of the periods can of course be configured. This is done on the country specific time types US / Canada. You need to choose via manage data the time type object, choose as sickness variant the option “short term disability” and you can enter the duration in days for 3 periods.

14. New Successfactors Time and Attendance community page

Just another short announcement: we established our own dedicated community page in the Successfactors Community due to heavily increasing customer numbers and more and more features in our solution. It´s a place to discover and share knowledge around our Time Management solutions. There are blog post, release information’s, event announcements and also a Q/A forum where customer / consultants can discuss and advise each other on specific time topics or get help for their concrete questions.

Use this page to get help from other customers / consultants and new insights and even share your knowledge and also provide help and insides. This works only when giving and receiving is in an equal balance. The board is monitored from time to time from Product Management, but it´s mainly intended to be a knowledge share board amongst external time specialists.

You can find the page here:

Leave a Reply

Your email address will not be published. Required fields are marked *