From Sage CRM 2017 R1 onwards, the standard communication page in the 'My CRM' and 'Team CRM' context is produced using a system action called 'responsiveCalendar' rather than the system action 'communicationList'. The system action 'communicationList' is still used in other contexts to display the list of tasks and appointments but not to display the calendar.
The calendar page was displayed with options to create a Quick Appointment. However, when trying to create a Quick Appointment the below error was generated on screen and in the core.log file. In addition, no appointments created in previous or the current version where appearing in the calendar.
We used fiddler (http://www.telerik.com/fiddler) to see what response the client browser was receiving for calendar page requests. Alternatively, we could use HTTP://<<servername>>/sdata/crmj/sagecrm2/-/vCalendarCommunication(‘<<Comm_comunicationID>>’) to see the JSON response for calendar page from the browser.
Below is the response retrieve from fiddler from the site experiencing this problem.
This clearly identifies the cause of the problem i.e. white spaces being appended to the end of column names. We further identified that the SDATA provider was using the colp_colname in the custom_edits tables to construct the JSON response.
We read through the following KB which identifies a similar problem with custom_lists and custom_Screen tables https://community.sagecrm.com/knowledgebase/w/onpremisekba/1088.636-17384-dashboards-not-working-correctly-after-upgrade.aspx.
The solution, in this case, was to make sure Colp_ColName in the custom_edits table was of the correct datatype for Sage CRM 2017 install and data in the column was trimmed of white spaces.
The following process was used to resolve this problem
Note: - Please take necessary backups before running any scripts on DB and make sure there are no users in the system.
- Script out drop and create scripts for any existing Indexes and Constraints on the Custom_edits table
- Drop all Indexes on the Custom_edits table from the scripts created in step 1
- Drop all Constraints on the Custom_edits table from the scripts created in step 1
- Run the following SQL Script
- Alter table custom_edits alter column Colp_ColName nvarchar(40)
- Run all Index creation scripts from step 1
- Run all Constraint creation scripts from step 1
- Finally update custom_edits column Colp_ColName data, to trim white space on right.
- update custom_edits set Colp_ColName = RTRIM(Colp _ColName)
- Followed by full meta-data refresh
- And restarting tomcat service
Note: - Please take necessary backups after running any scripts on DB and make sure there are no users in the system.
Below is the response retrieve from fiddler from the site after making these changes.
After following all the above steps the calendar page was functioning correctly again.