Transporting only changed/modified/created holidays and holiday calendars from development to quality and production system.
Transporting only changed / modified / created holidays and holiday calendars from development to quality and production system.
Transporting holiday and holiday calendar changes are not like transporting any other SAP HR configurations.
Reason: SAP have not provided any option to transport only holidays or holiday calendars you have created / changed / modified. If you try to transport it, all the holidays and holiday calendars available in the system gets included in transport request and gets transported to quality and production system and this is very risky.
Your system might have thousands of holidays and hundreds of holiday calendars in your system over the years. E.g. your system might have 1000 holidays and 50 holiday calendars. Even if you create / change a single holiday, all 1000 holidays and 50 holiday calendars will get included in transport request and gets transported to quality and production systems.
If your development and production systems are not in synch, then incorrect entries of development system will get transported to quality and production system and this will create huge problems in time management such as missing holidays or extra holidays and hence in time evaluation.
Even if your development and production systems are in synch, transporting all the holidays and holiday calendars each time will take a lot of time and will result in system performance issue.
To avoid these issues most of the customers do not transport the holidays and holiday calendars changes from development to quality and production systems, instead they configure the requirements directly in each system independently. Of course, it doesn’t matter whether you are making the changes first in development or quality or production system. This is the easiest way to achieve the goal.
But this is the most insecure way of doing the holiday and holiday calendar changes, as for this approach, quality and production client should be opened for configuration directly, which is not suggested. By this approach there is a high risk of holiday and holiday calendars of all the systems to be out of synch with each other. This will result in issues while performing any unit testing and user acceptance testing in development and quality server for any future requirements.
To avoid all the above issues there is one work around by which you can transport only the holiday and holiday calendars which you have created / changed / modified from development to quality and production systems.
With this work around all the holiday and holiday calendars does not get moved to quality and production systems. Also, you don’t need to open the quality and production client for configurations.
The approach is as follows:
Create, change, or modify any holiday or holiday calendar using tcode SCAL in development system.
Remember if you save any changes in SCAL tcode system does not prompt for any transport request.
System will give you warning message as below. Click on OK.
Now system will prompt you for transport request. Click on create request to create a new transport request
Give short Description and click on save.
System will create the workbench transport request and not the customizing transport request which generally gets created for configurations.
Note: By doing this, you have included all the holiday and holidays calendars in this transport request.
TR looks like below:
Now most important point here is to NOT to release this transport request. Even if you release the transport request by mistake then there is no option to stop transporting everything to quality and production system.
We need to modify this transport request manually. In the above TR the tables which are related to holidays and holiday calendar are: THOC, THOCD, THOCS, THOCT, THOCI, THOLT, THOLU, THOL so delete the other tables from TR, i.e., tables to be deleted are TCALS, TFACD, TFACS, TFAIN, TFACT, TFAIT.
Only below tables rows should remain in TR:
Now if we move this TR, still all the holiday and holiday calendars will get moved.
So now in this TR we should include only those holidays and calendars which we have modified.
For this you should know the holiday and holiday calendar codes. You will get the holiday calendar codes directly from SCAL tcode as per below:
But for holiday codes you need to refer 2 tables in SE16, THOCD and THOL.
Once you get the holidays and holiday calendars codes which you have modified, you need to include them in (THOC, THOCD, THOCS, THOCT, THOCI, THOLT, THOLU, THOL) tables in TR.
Now how to include holiday or holiday calendar codes in tables in TR?
Select the table in which you want to include the code and click on “object with keys” icon.
This will open the screen with table Keys area blank, here you need to include the codes and click on save.
Note : Initially table Key area is blank, meaning all the keys are considered for transport, by including your keys (codes) you are directing the system to transport only your keys (codes).
In this way you need to include the codes in each table one by one.
We will take example as follows:
Lets say we have modified 2 holidays 067 (Peace day) and B98 (Freedom day) and included these 2 holidays in holiday calendars C1 (South Region) and C2 (East Region) both.
So we need to maintain the codes in tables in TR as follows:
|Holiday Calendar ID||Holiday ID|
Note the Columns with * and without *.
After TR modification, it should look like this:
Now this TR is ready for transport, release the TR and move it to quality and production systems. This TR will only move the holiday 067 and B98 and only calendars C1 and C2.
I hope this document helps you to maintain holiday and holiday calendars efficiently.
If you have any query please reply, I will try to answer those.
Javed B. Shaikh