The purpose of this document is to provide insight to Sugar Developers for upgrading custom Sugar code, extensions, and integrations to the Sugar 13.0 (Q2 2023) release. This guide focuses on changes in Sugar 13.0 (Q2 2023) that could cause an immediate impact on Sugar customizations and integrations built for earlier Sugar versions.
Please check out the Q2 2023 Developer Webinar recording for more developer highlights. For Admin and End User release notes, please visit the Sugar 13.0.0 Release Notes.
User Experience Updates
In-Line Edit Records from Record View Dashlet
In this release, you have the ability to in-line edit Related Records from the Record View Dashlet without having to navigate away from their current view.
Additional List View Filters
In this release, users now have the ability to build meaningful filters in list view without having to manually enter an endless number of filters for basic “Is empty” and “Is not empty”. Now listviews have “Is empty” and “Is not empty” filters.
Pinned modules on Sidebar Navigation
In this release, we are improving how we handle Pinned modules in the navigation bar for admins as well as users.
Admins can pre an initial value for pinned modules but users can override on their own profile preferences.
Changes:
- Renamed "Display Modules and Subpanels" to "Navigation Bar and Subpanels in Admin page
- Updated text under title page (see ac #2)
- Renamed existing checkbox (see ac #5)
- Renamed "Displayed Modules" to "Available Modules
New:
- New page description
- A new checkbox "Allow users to set number of pinned modules"
- Added new field "Number of Pinned Modules" where admins can enter the number of pinned modules (config override will also be taken into consideration)
- New help icon for the "Number of Pinned Modules" field
Smart Guides Subpanels now Drag & Drop
In this release, we're making our Smart Guide subpanels drag & drop for easy reordering in case of multiple guides.
- Smart Guide subpanels in the record view can be dragged and dropped for reordering.
- Smart guide subpanels UI is also updated. Smart guide icon is added and the caret icon is removed.
- Fonts and styling in the guide subpanels are consistent with the other subpanels in the record view.
Reports Viewer Improvements
Sugar has improved the user expirience on Reports Viewer in this release. Now you have Horizontal and Vertical screen splitters for better visualization charts and data table as well as resizing your panels.
Very large reports are now part of 3 tier threshold to improve the experience and provide options to download those reports instead of waiting long periods of time for the report to come back.
Additional default OOTB filter fields for Cases, Accounts and Opportunities
In this release, we are enabling the following fields OOTB for users to use as filter criteria so admin users don't have to enable them manually:
- Following stock fields are available OOTB for Case Search/Filter criteria
- Type
- Source
- Primary Contact
- Resolved Date
- Service Level
- Business Center Name
- Teams
- Modified By
- Created By
- Following stock fields are available OOTB for Accounts Search/Filter criteria
- Service Level
- Business Center Name
- Member Of
- Company Size
- Company Location
- Date of next renewal
- Industry
- FY End
- Email Address
- Teams
- Modified By
- Created By
- Following stock fields are available OOTB for Opportunities Search/Filter criteria
- Teams
- Modified By
- Created By
Update Sugar Club Navigation Help menu link to direct to the main page
The SugarClub link in the navigation bar now directs the user to SugarClub's main page instead of the previous explore page.
Sugar REST API updates
This Sugar release introduces REST v11_20.
Show Related Cases for External Users Rest API endpoints
Add a new API to show Cases related to an External User without an Account.
GET <sugar instance>/rest/v11_20/ExternalUsers/:record/link/:link_name
Supported Platforms Update
In this release, we are updating Sugar’s Supported Platforms for PHP to comply with PHP’s EOS.
- We are dropping support for PHP 7.4 and adding support to PHP 8.2.2.
- PHP 7.4 to PHP 8 have considerable breaking changes and incompatibilities
- Here is PHP’s official migration guide (https://www.php.net/manual/en/migration80.php)
- Backwards incompatibilities guide (https://www.php.net/manual/en/migration80.incompatible.php)
- PHP 8.0 to PHP 8.1 have breaking changes and incompatibilities
- Here is PHP’s official migration guide (https://www.php.net/manual/en/migration81.php)
- Backwards incompatibilities guide (https://www.php.net/manual/en/migration81.incompatible.php)
- PHP 8.1 to PHP 8.2 have breaking changes and incompatibilities
- Here is PHP’s official migration guide (https://www.php.net/manual/en/migration82.php)
- Backwards incompatibilities guide (https://www.php.net/manual/en/migration82.incompatible.php)
- PHP 7.4 to PHP 8 have considerable breaking changes and incompatibilities
- There isn't an upgrade path from 7.4 to 8.2, you must ensure it follows the upgrade path 7.4 -> 8.0 -> 8.1 -> 8.2
- We are dropping support for Windows Server 2016 and adding Windows Server 2022.
- We are dropping support for ElasticSearch 7.x and adding Elasticsearch 8.4.3
- We are dropping support for DB2 11.1 and addingDB2 11.5
Sugar Config Settings
Setting Name |
Default |
Override Example |
Description |
reports_complexity_display | [ 'simplified' => 50000, 'export' => 300000, ] |
$sugar_config['reports_complexity_display'] =[ 'simplified' => 50000, 'export' => 300000, ]; |
admins can change the config property to adjust the boundaries of the reporting functionality where simplified is the threshold to disable listview functionalities and enable basic HTML view and export is the threshold to enable export only. |
Removed Functions / Libraries / Features
Removed option to disable cURL checks
Sugar config setting, moduleInstaller.enableEnhancedModuleChecks
, has been removed in this release, enforcing the usage of ExternalResourceClient
as the official and only transport client instead of cURL
.
Functions and methods added to denylist.
SugarMin::minify
is now in the denylist, it can no longer be called in a package. If you need to minify anything, do it before you package for delivery.
readline_add_history
and readline_write_history
have been added to the functions denylist
Multiple Dead code were removed from Sugar Core
As part of our ongoing efforts to keep Sugar clean, fast, reliable, and secure, we are removing dead code from Sugar Core.
About page cleanup
We are cleaning up our About page by removing Third-Party software list as it is now provided by request.
Platform Updates
Enterprise License Improvements
In this release, we will include the following Serve and Sell feature for ENT customers:
- Service Console
- Change Timers module
- OOTB Service SugarBPM Templates
- OOTB Sell SugarBPM Templates
- Following Reports
- All Cases Due Today and Overdue
- All Open Cases by Followup Date
- Average Difference From Follow-Up Date by Week by Agent
- Average Time to First Response by Agent
- Average Time to Resolution by Week by Agent
- Average Time to Resolution by Week by Type
- Cases That Missed the First Response SLA
- Daily Average Time to First Response
- First Response SLA Success Rate
- List of Changes to Case Status
- List of Recently Resolved Cases
- My Average Difference From Follow-Up Date by Week
- My Cases Due Today and Overdue
- My Cases in the Last Week by Status
- My Cases Resolved this Month by Week
- My Open Cases by Followup Date
- My Open Cases by Status
- My SLA Success Rate
- New Cases by Business Center by Week
- New Cases by Customer Tier by Week
- New Portal Users Awaiting Activation
- Open Cases Awaiting First Response That Missed SLA
- Open Cases Awaiting First Response Within SLA
- Open Cases by Customer Tier and Priority
- Recently Created Cases
- Status of Open Tasks Assigned by Me
- Total Cases Resolved this Month by Agent
- Total Cases Resolved this Month by Business Center
- Total Time Spent on Cases by Week by Case Type
Reports View Performance: simplified and export thresholds
In this release, we have improved our report's performance by implementing a new threshold for its results to avoid all the datasets being retrieved before they can be visualized.
There are 3 tiers of report sizes.
- Reports with <50k cells will load as usual with full functionality on the data table.
- Reports with 50-300k cells will provide the option to either download the CSV or view the data table in a simplified CSS format.
- Reports with >300k cells will prompt the user to download the results as a CSV and we won’t have the option to view a simplified format of results.
DBAL Healthcheck missing closeCursor
We have added Statement::closeCursor()
as it breaks under DBAL 3.0+. It will help prevent issues after upgrades for customizations using this function.
ModuleLoader on PHP 8
We have fixed an issue with Sugar's Module Loader when installed on a PHP8 stack referring to array_walk, which now, on PHP 8, expects an empty array instead of a null ref.
Introducing Sugar Design Tokens: Maple Syrup
In this release, we are introducing a new Design Token called Maple Syrup for the entire Sugar Platform.
This project will be the foundation for all of our styling across platforms, for now, nothing has changed for you as a developer. More to come.
PackageScanner Improvements
In this release, we have improved PackageScanner to
- Check if the file in the MLP has a valid extension ('png', 'gif', 'jpg', 'css', 'js', 'php', 'txt', 'html', 'htm', 'tpl', 'pdf', 'md5', 'xml', 'hbs', 'less', 'wsdl') on
to
files as well asfrom
. - Prevent encapsed strings as function names on PHP 8 by throwing
Code attempted dynamically-named function call on line x.
A separate log file for MLP installations.
In this release, we are providing a new way of looking for MLP install logs, its own separate file. Package Install Log File contains log records for package installation/uninstallation/enabling/disabling processes. The Diagnostic Tool jas also been updated to include that in the download.
Google External Account in Windows environment.
We have fixed an issue reported by our Windows environment users that they couldn't connect with Google External Accounts.
Label for default currency shows US Dollars (Default) for non-USD Currency Codes.
In this release, we fixed an issue related to the Label for default currency showing US Dollars (Default) for non-USD Currency Codes that wouldn't persist the change.
Fix "Creation of dynamic property" deprecations.
In this release, we fixed all those deprecations messages by creating properties in the classes where they were missing.
Deprecated functions
Deprecating Cryptographic Algorithm SHA2 for password hashing
In this release, we are removing the possibility to use password hashing "sha2". "sha2" is deprecated and is scheduled to be removed (from version 13.3). We will, from now on, adopt "native" strategy with secure hashing algorithm "bcrypt".