Skip to Content
The blog post has been successfully published.
Technical Articles
Author's profile photo Parthiban Sukumar

Employee Central Time Off – Multiple Time Off in Lieu (TOIL) solution

Hello Readers,

Multiple time-off in lieu (TOIL) is a common requirement across many customers. However, until now we have posting to only one time account as standard option via Time Sheet. This can be addressed with our super cool Adhoc Time Account Type.

Before we divulge to solution, a quick explanation of TOIL concept to our new Time Management learners.

When an employee works on public holiday or non-working day or overtime, the company has the option either to compensate the hours in payroll or provide a time-off in lieu which the employee can avail.  There are multiple variations of TOIL as listed below.

  1. Provide only time-off for additional hours worked.
  2. Provide time-off that needs to be availed within a certain period (E.g., 60 days from eligible date) and post that, it is forfeited.
  3. Provide time-off that needs to be availed within a certain period (E.g., 60 days from eligible date) and post that by default it is compensated in the following payroll.
  4. Only compensation. This is done via standard payroll with time sheet replicating the data and is not relevant for this blog.

In this blog we will try to address the scenarios 1 to 3 with multiple TOIL accounts. We are going to using Adhoc Time Accounts and Payout concept to achieve this.

Please note that this solution involves many standard steps which I don’t want to detail out in this blog. I only wanted to highlight the key configurations to achieve this solution.

The following steps are performed to achieve this solution.

  1. Create Time Account Type for each TOIL account (e.g. Public Holiday account, Overtime Time account etc).
  2. Account Creation Type – Adhoc
  3. Assign a Payout Profile. This also means the necessary Pay Components are to be assigned in this profile.
  4. Create Period End Processing rule based on your scenario for paying out at the end of booking period.
  5. Assign the Time Account Type to relevant Time Types.
  6. Create your time valuation rules that captures hours into their respective Time Collector. Please note that for each TOIL account there needs to be its respective Time Collector. E.g., Public Holiday into collector object called PH_Collector with “daily” frequency. Another one could be Overtime TOIL to OT_Collector with “daily frequency”.
  7. Create Integration Centre report based on Time Collectors to create Adhoc Time Accounts. This is what the blog is about – key configuration.
  8. Execute Integration Center report only daily frequency.

Step 1 to 5

Assign to Time Type.

Step 6 is simple, and I leave it to consultants to create on their own based on customer requirement. Some sample below.

Create time entries in timesheet accordingly and generate the collector value.

Similarly, you can perform the same steps for other TOIL accounts.

Step 7 : Please note that you have to create one Integration Center report for each TOIL account. For this blog, I will create one and you can repeat for multiple cases.

Create Integration Center (IC) report with “More Integration Types”

Choose the setting as shown below and click “Create”.

Choose the Source object as “Time Collector”

Provide a name to the report:

Choose “Mapping View” as shown in the below screen shot and follow the steps. Add object Time Account in Destination.

While in Field Mapping view (blue icon on the top right corner), drag and drop the fields as shown in the snapshot below. Please note that you can generate External Code for Time Account on your own, however, I choose to use the same Ext. Code of Time Collector for Time Account and Time Account Details. Feel free to choose your methodology.

Important:  It is key how we create our Account Valid From and Account Valid Until. Since we can’t have overlapping accounting period, we have to choose the lowest frequency – a day. I envisioned it like an Adhoc Account valid for one TOIL occurrence, that’s max one day. However, the booking period is important one and that can be for a period. For the blog scenario, I have kept it as 60 days from day of eligibility.

You can go with startDate or Last Posting Date (bookingDate) of Time Collector to map with Booking Possible From, Account Valid From and Account Valid Until. I believe (unverified yet) Last Posting Date is more accurate if user do retro changes and this is handled automatically. This can be explored by consultants.

For Booking Possible Until, switch to detail view and created a calculated field.Choose Start Date + 60 days as logic. Run calculation trace to verify the results.

Map the Time Account Type to the TOIL account you created. In this case ADHOC_TOIL1. Follow the blue icon to configure.

Map field Time Account – Closed (Boolean) as False by default setting.

Now open up the child object Time Account Details navigation and map the fields as shown below.

Map the Posting Type to INTERIM_UPDATE

Map Posting Unit to Hours

Amount Posted – Calculated field. This is because the Time Collector value is always in seconds. This needs to be converted to Hours.

After all the mapping is done, switch to Test View (blue icon in snapshot) and run the preview records. Check if you see successful results in the Run Results Status column. Refer to our step 6 where we created those two entries and that has been successfully queried below.

Now save this section and click next for Filter and Sort page.

This is a section I always recommend customers or consultants to build their own effective filtering configuration. Filter criteria is built based on the various factors like what frequency is the IC report need to be run, how much data is processed (this comes after some trails), what is the best time to run it, are there any pre-requisite jobs e.g. importing timesheet entries from terminals and etc.

Here is a simple sample. Make sure you have Time-Based filter is modified or effective since “last run time”. This is critical in any retro changes to be automatically handled. Also, filter the Time Collector for which the IC report is built.

Set frequency. Since I have kept my Time Collector frequency as Daily, it is logical to run the IC daily. However, you can build based on your requirement.

Step8 : Click to next screen, schedule the report and move to Review and Run page. Now run the IC report.

After execution of IC report. Check the booking period and posting values.

For April 26th PH working TOIL

For April 29th PH working TOIL

Viola ! 🙂 we achieved multiple TOILs. Repeat the steps to other TOIL accounts like Overtime. There is no change in configuration.

For forfeiting there are two option. One, this leave has to be taken only within the booking period. So automatically this bounds the employee to take the leave and is technically forfeited already if taken outside of the booking period.

Second, if back dated booking is not permitted, the accounts can also be closed. There are multiple ways of doing it – Using Integration Center to filter out all open account as of particular date and update the same object back with “closed”. Refer to my mandatory leave blog where I used EmployeeTime object to update itself- Similar concept can be deployed.

Also for payout options, there is no special configuration but just the standard steps. Once PEP runs and Payout is generated, the balance can be forfeited to 0 and closed via rules.

In the interest of time and length of the blog and more importantly in keeping my learned colleague and friend Volker-  happy 😉  I’m leaving out the above standard steps. We need to do release this blog asap ;). Reference:

Happy learning and stay safe !!  Thank you.

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Sanjay Wadhwani
      Sanjay Wadhwani

      Nice blog and good to know that multiple TOIL can be created.

      Author's profile photo Parthiban Sukumar
      Parthiban Sukumar
      Blog Post Author

      Thanks Sanjay.

      Author's profile photo Arpan Routh
      Arpan Routh

      Very nice blog Parthi

      Author's profile photo Mohit Somani
      Mohit Somani

      Parthiban Sukumar : Nice blog and thanks for the tips!

      But Is it necessary for the time account type to be adhoc?

      For e.g. we have requirement to have two TOIL accounts (permanent). One of them is for weekdays and other for weekends.

      So timesheet can push the data to one of the accounts via Standard. For the other, we use this integration center approach just to create Time Account Details for the other existing Time Account.

      Do you think we have any problem here?

      Thanks for your time!


      Mohit Somani

      Author's profile photo Parthiban Sukumar
      Parthiban Sukumar
      Blog Post Author

      Hi Mohit,

      The adhoc time account is one way of solving the issue as it provides the flexibility with limited date range (e.g. 60 days of incurring) which is most companies requirement. If you want in permanent time account, you can do so and also note that there is periodic time account update options for the same. You can build a solution around it.




      Author's profile photo Antoine Winter
      Antoine Winter

      Hi Parthiban,

      Nice blog.

      Bud do I understand well that you always create a new time Account ?

      We have a time account per associate which start @ the beginning of their Career and ends at 31/12/9999.

      Now when the associates works on a weekend these times should be added in the time account  detail of the time account 'Overtime' on the next Monday morning (or Sunday evening) so the associate is able to take leave, whenever they want, for the hours worked on a weekend.

      Do you have something to do above ?

      Already thanks for you answer, Antoine

      Author's profile photo Parthiban Sukumar
      Parthiban Sukumar
      Blog Post Author

      Hi Antoine,

      In your scenario is there time limit to take this TOIL, if so, then adhoc time account makes sense. This is one way of solving the issue. Adhoc accounts are created for this purpose, so my perspective is, why not use them. However, there is always multiple ways to solve an issue and your scenario is possible as well.

      With permanent account, you can use period time account update to build a solution as well.




      Author's profile photo Parthiban Sukumar
      Parthiban Sukumar
      Blog Post Author

      Hi Antoine,

      Firstly, sorry for the delay. I had some notification issue and got it resolved now.

      Yes, adhoc time accounts are created with a validity and that is the way it should be. e.g. today TOIL is valid until 60 days and next weeks is today + 60 + 1 week. So each additional worked has a validity that cannot be clubbed into one account. One account one validity.

      In you case, you can do it, create the time account as of next week Monday and keep end date as 31.12.9999. In fact you can use permanent time account in this case.

      Hope this helps.



      Author's profile photo Monica Venter
      Monica Venter

      Hi Parthiban,

      I am new to the time sheets and TOIL configuration, your blog is great and very detailed, thank you.

      I have two questions -

      Are the different Adhoc TOIL Accounts created posted to the same same Time Account (bucket) each being date effective in order for the payout to be effected after 60 days.

      The reason I am asking is when an employee takes a TOIL Absence will it be deducted from the same Time Account with the oldest being deducted 1st or will each Adhoc TOIL Account be independent of each other and if so how will the Time Off for TOIL work?

      Not sure if I am making sense in my early journey in the Time space.

      Thank you in advance.



      Author's profile photo Parthiban Sukumar
      Parthiban Sukumar

      Sorry being grossly late in response, I have moved out of SAP and was not following my blogs.

      To answer your question, the adhoc accounts are individual accounts for that particular TOIL put attached to one time type. Along with PEP, the oldest account is the first one to get close anyways. So this works for the scenario you mentioned.

      Author's profile photo Josephine Babou
      Josephine Babou

      Hi Parthiban,

      In the first screenshot provided, you have defined a period end processing rule, PEP_With_Pay_Adhoc. Is this where you have defined #3 requirement (Provide time-off that needs to be availed within a certain period (E.g., 60 days from eligible date) and post that by default it is compensated in the following payroll.)? If yes, could you please add a screenshot of that rule in this blog?

      Author's profile photo Parthiban Sukumar
      Parthiban Sukumar

      Hi Josephine,

      Sorry for being late. As I mentioned in the blog some of the steps are standard and hence I didn't add everything but the core concept of how to setup TOILs. To answer your question, the time account end date which is setup by IC is the validity of the account. PEP is only if you want to forfeit or reduce the balance to certain amount post that period.

      Author's profile photo Cristiana D'Agosto
      Cristiana D'Agosto

      Hi Parthiban,

      thanks for such a detailed and easy to follow blog.

      I was able to "implement" your blog without any issues. Full disclosure! I am not a Time Management 'person', so I has some help from a friend to create the Time Valuations!

      The only problem I face is that the Timesheets need to be approved before the Time Accounts are created by the Integration Center. The Time Collectors are created as soon as the Time Sheet is saved/submitted, but I don't know how to stop the integration from creating the Time Accounts unless the Time Sheet has been approved. Or is there a way to prevent the Time Collectors from being created until the Time Sheet is approved?

      Any ideas on how to restrict the creation of the Time Accounts unless the Time Sheet has been approved?

      Thanks in advance for any further help you can provide!

      Kind regards




      Author's profile photo Parthiban Sukumar
      Parthiban Sukumar

      Hi Cristiano,

      Sorry for being late, yes, you can try adding other filter criteria in IC to check the timesheet status. It should be available in the navigation of entities. Let me know if it worked.

      Author's profile photo Josephine Babou
      Josephine Babou

      Hi Parthiban,

      Is it possible to check the status of the Timesheet in this Integration Center job? When we configure this job as per the blog, the TOIL hours in Adhoc account get posted as soon as the job runs irrespective of the status of the Timesheet. Is it possible to have a check to say the hours should get posted only when Timesheet status is approved?

      In the 'Filter and Sort' section, adding "Approval Status (approvalStatus) in Employee Time Sheet (EmployeeTimeSheet)" = APPROVED, doesn't seem to do the trick.

      Author's profile photo Parthiban Sukumar
      Parthiban Sukumar

      Hi Josephine,

      Ideally the status should work, I'm not sure why it is not working in your case. You can check with by creating a support ticket to see if SAP team is able to help you here.

      Author's profile photo Shilpa Thippamma Thimmacharlu
      Shilpa Thippamma Thimmacharlu

      Hello  Parthiban Sukumar ,

      I have tried this many times since last week, however i am getting attached error in integration center . I have tried it in sales demo instance as well my client instance, getting same attached error.  I have raised SAP ticket in Launchpad, unfortunately support engineer closed incident without providing the solution and mentioned that, this query should be resolved in this blog only. Error%20Screen

      Error Screen

      Author's profile photo Parthiban Sukumar
      Parthiban Sukumar
      Blog Post Author

      Hi Shilpa,

      I would assume that you've made some mistake in IC setup and that cannot debugged just with this screenshot. Most likely the destination object is wrong or IC operation is wrong. This blog is still valid as many customer are running this solution and there are other spin off solutions based on this core concept for other scenarios.

      If you want you can search in SAP best practice content and I believe this was part of there as well.

      Author's profile photo Xiaoli Tang
      Xiaoli Tang

      thank you, Parthiban, how about if hours recorded on public holiday changed after time account detail generation? Will it be auto corrected?

      Author's profile photo Parthiban Sukumar
      Parthiban Sukumar

      Hi Xiaoli,

      Yes, auto correction is available because it IC picks up all new changes of collector.

      Author's profile photo Kavya Rao
      Kavya Rao

      Hi Prathiban,

      We have a requirement where "Booking possible until" is the last date of the 3rd month from the last posting date (For eg, if the last posting date was 28th Sep, booking possible until should be 31st Dec) Time account configuration rule is set with the desired logic, but with the above approach of Integration center, I assume the the field value needs to be calculated within Integration center again, which doesn't appear to support complex logic. Can you please kindly advise?




      Author's profile photo Parthiban Sukumar
      Parthiban Sukumar

      Hi Kavya,

      You can either setup this 3 month logic in IC itself while creating the account (for booking until date) or can use it as onSave rule.