CA Service Catalog timezone(TZ) information

Document ID : KB000105838
Last Modified Date : 16/07/2018
Show Technical Document Details
Introduction:
Sometimes the time saved for a request is 'off' some hours.
Question:
What information do you have on the CA Service Catalog TimeZone(TZ) settings?
Environment:
Windows
Answer:
Please find the CA Service Catalog related TimeZone(TZ) information.
It exists of several 'sections' with possibly, helpfull information for you on this subject.
You may read through all of these for your benefit.
========================
The time zone can be defined in two locations:
Within the business unit profile as well as in the user profile. 
From Administration -> Business Units -> <business unit> -> Edit (pencil) set the time zone.
As a workaround, update the users' time zone within usm_contact_extension with the correct time zone from ca_time_zone. 

Business Units -> <business unit> -> Edit (pencil) set the time zone appropriately. 
New users added to this business unit and existing users who have not raised any requests or edited their profile, will take the time zone from their business unit profile. 

If users have already raised requests or their profile has been edited, then a record will be written into usm_contact_extension referencing the time zone. 
Then the supported method would be to edit the user(s) profile from the SC-UI.
========================
This is an explanation of the 'behaviour':
The SC-UI shows the date&time with the basics being GMT(+0).
And 'on top of that' the 'GMT+n or -n' setting in the BU and/or User definition.
In other words, regardless of the system time setting(showing in the system tray on your screen, the SC-UI will show 'GMT(0)' summed up with your BU/User TZ setting.
========================
Check that the BU profile's(SC/admin/BU>edit the BU) timezone value, is equal to the user's profile(SC/admin/users>select a user). 
When these are equal, then the time shown should be too. 
Tables involved: 
select * from ca_time_zone                          // for time_zone_code 
select time_zone_code,* from usm_contact_extension  // for user_id/time_zone_code 
select time_zone_code,* from usm_tenant_ext         // for tenant_id(=domain=BU)/time_zone_code 

 
Please execute the above queries and check for possible differences in timezone value(s).
- The time_zone_code must exist in ca_time_zone table.
- The time_zone_code in 'contact' must be equal to 'tenant'.
- (example) update usm_contact_extension set time_zone_code = 'GMT+03:00 Europe/Moscow' where userid = <your userid>
========================
A TZ-problem might be caused by the Time Zone settings on your environment.
First set the TZ corresponding to the Bussiness Unit in the Business Unit Profile.
You can find this in Administration-->Business Units and edit each BU in order to set the corresponding one.
It would/could also be possible that the user's details, show a different timezone value than there BU.

The Catalog product doesn’t have the functionality to do a global change for all users.
So the only way is that the database administrator do this change by means of mssql queries.

The following query will show  the users already having a TimeZone set in Catalog:
select user_id,time_zone_code from usm_contact_extension where time_zone_code is not null

Then you need to know the correct value to set.
In order to do this, query with a user id for which you know it is having the correct value.
In this example I will assume that the user with the correct TZ is spadmin:
select user_id,time_zone_code from usm_contact_extension where  user_id = 'spadmin'
It will return the output like e.g.:
user_id | time_zone_code
---------------------------------
spadmin | GMT-03:00 America/Cayenne

Now, before you proceed, make a backup in order to be sure that you can go back.

You only should change the ones having a Time Zone already set.
The following example will change all the users having set a time zone from 'GMT-12:00 Etc/GMT+12' to 'GMT-03:00 America/Cayenne'
update usm_contact_extension 
set   time_zone_code = 'GMT-03:00 America/Cayenne' 
where time_zone_code = 'GMT-12:00 Etc/GMT+12'


Then in order to be sure that the changes are applied and force the users to relogin, restart the Service Catalog service.
Before making any update remember takes backup of information to avoid problems in case you need to revert the changes you applied.
========================
In the web browser, you can check the current GMT+0 time through https://greenwichmeantime.com/ page.
And with this starting time, you can then add your GMT+2 setting on top, to be expected in the SC-UI for the new request.
========================
Please check on the below example:
Query:
SELECT time_zone_code,name,description,dst_flag,dst_id FROM ca_time_zone where time_zone_code = 'GMT+03:00 Europe/Moscow'

With result:
GMT+03:00 Europe/Moscow | Europe/Moscow | (GMT+03:00) Europe/Moscow | 1 | RUSSIA

You can execute the following query (to update that row) and see the difference in the SC-UI.
Perhaps you need to restart or UI-refresh(F5) the SC-Service to get this activated.
update ca_time_zone set dst_flag=0 where time_zone_code = 'GMT+03:00 Europe/Moscow'
========================
The date/time is stored in the database and returned via getFormRateItemValues in GMT. 
As such you would need to obtain the timezone (i.e. getUser web service method) and apply some logic to the results before passing as input to the Service Desk method. 
========================