EC Time and Attendance new features Q2/Q3 release 2019
first…. apologies. I did not really find the time to write a blog post for the Q2 release since the release has been shipped. And I know there are a few out there waiting for it. And although I am currently on the other side of the world at a really good customer workshop – and that´s why I am wearing right now a thick winter jacket instead of a summer T-shirt – I have choosen to finish this one up from here not wanting to loose more time and doing this only after returning to Germany. And due to the fact that Q3 release is shipped soon I can already give you a combined glance on the Q2/Q3 enhancements for EC Time Management.
What is in the package? In a nutshell:
Enhancements on hire and termination process:
- Support of hire date correction
- Possibility to terminate an employee even when a time sheet record exist
Enhancements on absences and time account handling
- Extra permission to switch on / off the possibilty to use the “recurring absence” feature
- Usability improvements for time account manual adjustment records
- Time account payout enhancements (additional fields, payout in hh:mm format possible)
Enhancements on business rules and admin activities:
- Variables in business rules
- New Time Admin Alert page
- Enhanced validations for external time data upload
- Comment field in time valuation rules
- Rule function to check allowances in time sheet upon absence recording
- Enhanced validations for external time data upload
- “Where used list” for business rules
As usual, lets spend some deeper thoughts on the single features. Enjoy.
Enhancements on hire and termination process:
Support of “move of hire date”
Lots of customers need to have more flexibility around the hire and termination process. It happens from time to time that the hire date of an employee needs to be shifted after this date has passed cause the employee did not show up and a new arrangement has been set up that the employee starts for example a month later. EC Core has provided an own portlet in Q4 last year where this new hire date can be set once and the idea is that all follow up processes accross the suite receive this new hire date.
Sounds like an easy thing, doesn`it? Just changing the hire date. And all other processes get automatically adapted. But from a time management perspective things are not always that easy. For example time accounts could have already been automatically created for the initial hire date and time account accruals were calculated and posted.
Time Off has supported the shift of hire date already in the Q2 release. As a result you can now retroactively shift an employees hire date and all the side effects for time management are automatically resolved. You don´t need to bother at all with it, it is all done automatically in the background. Let´s check this for the time account accruals scenario.
The employees initial hire date is 1. May. Before the move of the hiring date time accounts have been created and a posting of 16 days are done to a time account valid from 1. May:
Now the hire date is moved by 1 month to 1st June within the new portlet:
This triggers a recalculation event (given the fact you have enabled recalculation in your system) and the time account accruals are recalculated, time account validity periods shifted and the time account postings shifted by 1 month:
You can see that instead of 16 days only 14 days are calculated (cause 1 month less in the accrual period) and that the time account posting is shifted by 1 month and time account validity by 1 month.
A bit a similar complicated issue can arise when an employee is going to be terminated on the actual day or even in the actual week when time sheet data already exist. This leads to the next topic:
Possibility to terminate an employee even when time sheet record exist
We have customers wanting to be able to terminate employees in an ad hoc manner or even retroactivly. So for example it is Wednesday and the employee is terminated on and for this day. Or even by Friday last week. Up to now this was not possible. The problem here was that time sheet data could already exist for the actual week – and maybe even some attendance times recorded in the future (for example an already booked external training). Or assume the employee is a negative time recorder where time sheets and time sheet data are created automatically on the beginning of the week without having the employees need to edit the time sheet unless there are some deviations he need to maintain (check here when you are not familiar on what makes an employee to a positive or a negative time recorder). For all this use cases time valuation results might already exist, payroll replication proxies already created, maybe even from 3rd party systems uploaded external time data and maybe even some time collectors or counters already created. And now the employee gets terminated. For the actual week. Or for a past date. What to do with all this data? Due to this a termination was not possible and ended up in an error message when by this termination time sheet data would be placed in an “inactive period”. Customers had to first delete manually the time sheets via manage data before they could start the termination process again. Not very nice. We worked on this. The task was to delete automatically upon a termination all time sheet data and all derived entities that might exist AFTER the termination date. Or in the case of move of hire date when the time sheets fall now in an inactive period. In our speech the data needed to be automatically “cleaned up”. And this is what the new “clean up” service does.
There is a complicated new handling of time sheet stati – which I do not really want to bother with. Take as a main message that it is now possible to terminate an employee even when time sheet data exist after the termination date. All time valuation results are rolled back. When you terminate an employee in the actual week on Wednesday you will see that this lead to a split in the time sheet – you will get an editable part of the time sheet from Mon-Tuesday where time data still can be recorded or edited, and an inactive part of the time sheet starting from Wednesday where you can´t record any time data anymore – cause these days are now in an inactive period. Let´s check an example:
Here is a time sheet of an employee with full data recorded for the actual week:
You see a time sheet with a daily overtime calculation (above planned time 50%) and on top an increase to 100% when more than 6 overtime hours exist in the week. Plus an additional automate minimum break deduction (1 min after 6 hours work, 40 minutes after 9 hours work and 1 hour in total after 10 hours work – I took the screenshot out of our testing systems so in reality you won´t find a minimum break of 1 minute after 6 hours work 😉 )
Now the employee is terminated backdated on Wednesday (today is Thursday). When you open the employees time sheet you will see following:
The time sheet has been splitted and you get an error message when you try to record times for thursday, cause the employee is inactive now. And you see that the time sheet data for Thursday // Friday have been cleared out. But of course you can navigate back to the part of the week where the employee was active:
And here you see that the other part of the week is editable and time data for the active period still exist. Thursday / Friday are not editable. And the time valuation results have been adapted to only 6 hours overtime and 30 net hours in total. So, the time records and the time valution results after the termination date have been cleared. Very good! Not only can an employee now be terminated in the actual week or even backdated, but all time records and results are deleted.
But are they really deleted? What when I need to correct the termination date cause I made a mistake and the termination is not in the actual, but in next week? Bad luck? Do I need to tell the employee that he needs to re-do his time entries? No, of course not. We do cater for such cases. You can change the termination date or even delete the termination and the old time data are reverted back. The time data cleared by the clean up service are not really deleted, but set to an inactive state where they automatically get activated again when the termination date is adapted.
So, I delete the termination and get as usual before major changes a confirmation pop-up:
Yes, I am sure that I want to delete the termination 😉
And then I navigate to the employees time sheet again and I can see that the split of the time sheet week into an active and an inactive part is gone and the old data and even the time valuation results are back again:
To sum up both features:
You can now move the hire date of an employee from an time off perspective and you can terminate an employee in the actual week or backdated even when time sheet data exist. All is done in the background automatically (you just need to activate the automated recalculation).
Fine – but what when you prefer the old behaviour that an employee can´t be terminated when time sheet data exist after the termination date. Althoug I don´t think this will be used by customers we delivered just for any case 2 business rules you can use on save upon a termination in the job info where you can raise an error when for those cases where time sheet data exist after the termination date. Doing this you get the old behaviour back.
Thanks to the engineering team to remove this obstacles in the termination process. An easy sounding requirement, but lots of man- and women power was necessary to achieve this.
Now lets come to some smaller but equally useful enhancement on absences and time accounts:
Enhancements on absences and time account handling
First it needs to be mentioned again that now the final curtain falls. You won´t be able anymore from Q3 to use the old Time Off request form. There is a mandatory push to the new Fiori based Time Off request form. You should already be aware of this – we have started to roll out this information a couple of releases ago and I have introduced it in my Q4 2018 blog. If you are not yet familiar with the new Time Off user interface, please do so and prepare roll out material to your employees so that there are no suprises to them. Just a reminder how it looks like:
Extra permission for recurring absence feature
And we have already reacted to feedback from customers on the new mandatory time off UI. Cause the new ESS Time Off User Interface brings as a new feature the possibilty for employees to use the “recurring absence” feature. This is a good feature for employees who want to have each Monday off for the next 6 months, cause you can create in one shot all of these records as opposed to having to record 24 single records. But not each customer wants to make this feature available for their employees. Hence we provided a permission that you can set in order to activate or deactivate this:
Another small but important usabilty improvement for time administrators is the possiblity to enter a manual time account adjustment not only in decimal values, but also in hours / minutes format if you want. (With manual time account adjustments a time administrator can in the time administrator workbench manually add or subtract hours / days to a time account thus decreasing or increasing the time account balance) The display of the balance is in hours / minutes format but the manual adjustment had to be done in a decimal format. This is easy when you want to post full values like 1.0 hour or even 1.5 hour, but when the time account balance was 108:33 minutes and you wanted to reduce it by 33 minutes, well,….I have to admit that I am not the math genious to calculate this in a few seconds in my mind. So a calculator app was rather needed to give me the correct decimal value I had to enter which was a bit cumbersome. So, now this experience has been removed and youare able to choose whether you want to record a value comfortably in hh:mm or if you still want to train your brain cells and do the math calculation using still the decimal format:
Time account payout enhancements (additional fields, payout in hh:mm format possible)
Same is true for the time account payout in the time administrator workbench. The payout for time accounts in hours can be done in the hours / minutes format now as well and we added more fields to make the payout information more facil and more transparent to the time administrator thus reducing potential payout errors.
We added for example the field Payout Scenario, Rate Category, Amount Requested and Rate. Furthermore we implemented a check that no pay component can be entered that is inactive on the payout day.
Now lets come to new features in business rules and time administration taks:
Enhancements on business rules and admin activities
Variables in business rules
There are many use cases in accrual rules or other business rules where you need to calculate a value which is an input value for further rule calculations. Up to now you had to calculate in each else branch of your business rule this value anewd – which caused lots of performance and lots of effort to create and maintain this rules. Our platform team has come up with a new feature that eases this to a great extend: you can calculate a value in a business rule, put this into a variable and just call this variable in your else / elseif branches of your rule. No need to calculate the value again and again. I have created a separate blog with an example on this:
New Time Admin Alert page – or Admin Alert 2.0
What is the Admin Alert 2.0 page? It is going to be a successor of the Admin Alert portlet. But it will take some time till the move of all applications into this new Admin Alert portlet will be finished. For the time being this new Admin Alert page contains only Time Management Alerts in a multi-employee list view.
What are Time Management Alerts? “Alerts” have got a bit a wrong conotation – it is rather errors caused by recalculation jobs like recalculating time sheets, absences, time accounts or import / generate time sheet data. These “alerts” have already been displayed for a specific employee in the time admin workbench:
We delivered this 3 years ago and you can read more on this in my blog from those days.
Shortfall of this solution was that there was no cross-employee alert list. The alerts have only been displayed in an employees time file and hence it was not really transparent to time admins for which employees an error exist. This is now changed with the new admin alert 2.0 portlet. Time admins can now work centrally in this new multi-employee list and navigate from an error via actions to the employees time admin workbench to solve the error.
This is how the new Admin Alert 2.0 tile looks like:
There is a central tile on the hompepage that gives you an overview on existing errors. When navigating to the list you can filter on the category of error you want to have and navigate from an error to the time admin workbench for this particular employee so that the time admin can investigate the issue more closely. For later releases a direct action to resolve an error out of this list is planned.
As mentioned, currently only recalculation errors exist in EC Time Management. But we all know that there are more things needed: alerts when a time account threshold is reached, alerts when an employee has not recorded times or not submitted a time sheet and many more business cases where it is necessary to send an alert to a time administrator. This is not yet provided, but of course on our backlog list. And now we have got as a starting point a centrally cross-employee list where we can send this kind of alerts to, so let´s see what the future brings….
And what about permissions? Can each and anyone access this list and see errors for every employee? Of course not. We provide a new role based permission to access the alert list – and you need of course permissions to access MDF Odata APis:
Enhanced validations for external time data upload
You might know the possibility to upload external time data (attendance times) into our time sheet via MDF import or via Odata Calls. Customers use this to fill the time sheets with data from 3rd party systems for time valuation purpose. Often the records are erroneous and stick then in the above mentioned alert page. Currently there is no possibility to edit this external records in the time sheet, the record needs to be corrected in the 3rd party system and send again. An error can for example be that a record has got only an end time and no start time. There are now some checks implemented that hinders that such an errononeous record is send to the time sheet. It is rejected with a respective message. The implemented checks are:
1.if start-time is filled, check that end-time is also filled
2.if end-time is filled, check that start-time is also filled
3.if start-time and end-time are NOT filled, check that hours is filled
4.make sure that either start-time and end-time OR hours are filled
5.check that start-time is before end-time (if both are filled)
When one of the checks fail, the import of the record is rejected.
Comment field in time valuation rules
This one is a really useful one – and was on my wish list since long. You know that the time valuation rules can be quite complicated to read and to understand for people who haven´t created them (well even after a while for those who have created them, too ;-)). And often the consultants who initially created the rules are gone and the customer needs to understand them when a new business policy has to be introduced and rules need to be adapted. A pure comment field in the time valuation rule was missing where implementation partners can directly document the purpose of the rule and what it does. And this comment field is now provided:
A useful one.
Rule function to check allowances upon absence recording
Last but not least we have delivered a rule function that now enables to cover end-to-end validations of absence recordings and existing allowances in the time sheet. Paytypes like Overtime 50%, Sunday Premium, Public holiday premium and many more can be automatically generated using our time sheet valuation rules. However, sometimes customers do not want to have them automatically generated but rather want their employees to record them manually in the time sheet. This can be done when you allow your employees to use “allowance types”. Allowances are plain wage types so to speak, that are directly forwarded to payroll 1:1. They can´t be incorporated into time valuation rules (cause what for – if you want to have calculations you ought to use the recorded attendance time types for it). So, when an employee records an overtime premium via an allowance there is no check if this is really justified, if the employee has in a weekly overtime case for example justified by the sheer amount of recorded working time if he qualifies for overtime payment or not. Again, if you want to have this “real calculations” you ought to use attendance time types, sum them up for the week and valuate them against the planned working time fo the week for example.
So, the allowances are rather a tool to record a manual pay type / or wage type for those occasions, where time valuation can´t or shouldn´t calculate it automatically.
But based on the fact that the allowances represent a direct payroll wage type customers want to have validations if it is allowed to record them. Cause why shall an employee be allowed to record a dirty work allowances on the same day where there is a full day illness? Seems to be something weird.
This kind of checks are already possible in a one way direction: when the absence already exists you can validate upon allowance recording in the time sheet if this shall be allowed or not. But it was not yet possible vice versa: the allowance was already recorded and afterwards an absence is recorded. Hence a rule function for absence recording is necessary that checks the existence of an allowance. And this is delivered with the Q2 release. Customers can now check absences and existing allowances or allowance recording for existing absences in either way round.
With this feature you can prevent erroneous data entry and false payroll payment when employees record an absence on a day where already an allowance exists.
“Where used list” for business rules
This one is something that will facilitate the management of business rules in your system. You will find rules that are not used at all with this feature – thus allowing to delete them and providing a better overview on the existing and used rules.
Business rules are a very powerful tool to create validation checks or accrual postings. Customers have got many of them. This new feature allows to check if and where a business rule is used at all. On top it allows a navigation from the business rules catalogue directly to the object where the business rule is used- that facilitates the understanding and gives a much better overview on where the rules are used than if you need to write down in a separate document in which object what business rule is assigned.
How does this look like?
Let´s first check the business rule catalogue:
You find on the right side a new indicator that states if this rule is used at all.
In the rule itself you find this indicator as well. And when you click on it you get navigated to the object where this rule is used.
And you end up in the respective business object:
So, lots of text, nearly 4000 words on the new features. Probably a bit too much. I hope you nevertheless regard this as helpful, use the comment function to give feedback or questions and I try to write a blog for the next release right in time again.
Great piece. Well written and easy to understand. Many thanks
Thanks Volker , well described and in detailed too.
Thanks, Volker for the summary.
Great Job Volker! Thanks a lot for sharing the information.
Thanks a lot Volker for detailed write up with examples ... this is very useful!
Thanks for the update again!
I have a question about "Flextime" for a client and i'm not getting it 100% firm.
The client wants a flextime accrual with a check on maximum
=> per day : not more then 9 hours on the daily working hours ==> No problem works
=> Weekly : not more then 43 hours on the weekly working hours ==> No problem works
=> And the Accrual can never be more then 15hours in total, otherwise it needs to become 15hours and "+" hours are gone.
This last part i'm not able to do it (not with collectors, not in a business rule, etc...) => Do you have an idea if this is possible? Also when they change the timesheet hours in the past the recalculation needs to happen online and take into account the 15hours mark..
Already thanks for your help!
not sure if this answer is still relevant - comes a bit late ;-). But your requirement can now be covered with our b2005 release. Please check my new blog, I described this feature therein.
Great blog and very useful thanks a lot Volker for detailed explanations with examples.