Workaround :
Here is the recommended workaround: - For each calendar with a weekly keyword that has Friday, Saturday, or Sunday selected, edit the object.
- Right-click the affected weekly keyword(s) and go to "Calendar Definition".
- Change "starting with week" from 1 to 0. OR Change "ending with week" from 54 to 53
- Save the calendar.
You should immediately see the correct day(s) show up in the calendar.
These same steps need to be taken for all Weekly keywords.
The following SQL statement can be used to identify all keywords affected by this. This will return the client where a calendar resides that will have this issue as well as the calendar object name (calendar_name), and the keyword (calendar_keyword):
select OH_Client, OH_Name as "calendar_name", okb_name as "keyword_name" from OH, OKB
where OH_DeleteFlag = 0 and OH_Idnr = OKB_OH_Idnr and OKB_CType = 'W' and OKB_PeriodStart = 1 and OKB_PeriodEnd = 54
The following SQL statement can be used to identify all JOBP, JSCH, EVNT and C_PERIOD objects that could have been affected:
select distinct OH_Name, OH_client from OH
where (OH_Idnr in (select OH_Idnr from OH where OH_Idnr in (select JPPC_OH_Idnr from JPPC where JPPC_CaleName in (select OH_Name as "calendar_name" from OH, OKB where OH_DeleteFlag = 0 and OH_Idnr = OKB_OH_Idnr and OKB_CType = 'W' and OKB_PeriodStart = 1)))
OR OH_Idnr in (select OH_Idnr from oh where oh_idnr in (select OVP_OH_Idnr from OVP where OVP_CaleKeyName in (select okb_name as "keyword_name" from OH, OKB where OH_DeleteFlag = 0 and OH_Idnr = OKB_OH_Idnr and OKB_CType = 'W' and OKB_PeriodStart = 1)))
OR OH_Idnr in ( select OH_Idnr from OH where OH_Idnr in (select ah_oh_idnr from AH where AH_Idnr in (select epdc_ah_idnr from EPDC where EPDC_CaleKeyName in (select okb_name as "keyword_name" from OH, OKB where OH_DeleteFlag = 0 and OH_Idnr = OKB_OH_Idnr and OKB_CType = 'W' and OKB_PeriodStart = 1)))))
order by OH_Client asc;
This SQL can be used to find runs that were affected (please note: this may not be all inclusive depending on settings within your system):
select distinct AH_Name as 'Name', AH_client as 'Client', AH_Idnr as 'RunID'
from AH where AH_Timestamp1 > '2016-01-01 00:00:00.000'
and ( AH_OH_Idnr in
(select OH_Idnr from OH where OH_Idnr in
(select JPPC_OH_Idnr from JPPC where JPPC_CaleName in
(select OH_Name as "calendar_name" from OH, OKB where OH_DeleteFlag = 0 and OH_Idnr = OKB_OH_Idnr and OKB_CType = 'W' and OKB_PeriodStart = 1)))
OR AH_OH_Idnr in
(select OH_Idnr from oh where oh_idnr in
(select OVP_OH_Idnr from OVP where OVP_CaleKeyName in
(select okb_name as "keyword_name" from OH, OKB where OH_DeleteFlag = 0 and OH_Idnr = OKB_OH_Idnr and OKB_CType = 'W' and OKB_PeriodStart = 1)))
OR AH_OH_Idnr in
(select OH_Idnr from OH where OH_Idnr in
(select ah_oh_idnr from AH where AH_Idnr in
(select epdc_ah_idnr from EPDC where EPDC_CaleKeyName in
(select okb_name as "keyword_name" from OH, OKB where OH_DeleteFlag = 0 and OH_Idnr = OKB_OH_Idnr and OKB_CType = 'W' and OKB_PeriodStart = 1)))));