SugarClub
SugarClub
  • User
  • Site
  • Search
  • User
  • Groups & Discussions
    Groups & Discussions
    • Product Forums
      Product-focused Q&A, discussions, best practices, fixes, and help
      Product Forums
      • Sugar Market
      • Sugar Sell & Enterprise
      • Sugar Serve
      • sales-i
    • User Groups
      Professional, Industry, Language
    • Get Involved
      Learn how to become a Raving Fan
    • Social Club
      Live, interactive, virtual meetups with other Sugar customers and Sugar’s Subject Matter experts!
    • Leadership Lounge
      Network with fellow organizational leaders, ask questions, and share insights
    • Developers
      Visit DevClub, the SugarClub group for Sugar Developers
      Developers
      • DevClub
      • Mobile Developers
      • Developer Builds
        Supplemental access level required. Inquiries: developers@sugarcrm.com
    • Additional Groups (Access Required)
      Groups that require special access will be displayed here. Contact sugarclub@sugarcrm.com for assistance. Click here to see all groups
      Additional Groups (Access Required)
      • SugarCloud Platform
  • Product Information
    Product Information
    • Release Central
      Find release-specific content to prepare for your next Sugar update
    • Documentation & Resources
      Looking to expand your Sugar knowledge? Explore our in-depth documentation and other helpful resources!
    • Product Update Blogs
      Updates about each Sugar product
    • Customer Stories »
      Case Studies by SugarCRM
  • Training & Certification
    Training & Certification
    • Training & Certification Home
      Live & On-Demand classes, Quick Videos, Sugar Certifications, and more!
    • Quick Videos
      Short videos about using Sugar
    • My SugarU Dashboard »
    • SugarU News & Updates
  • Adoption
    Adoption
    • Grow Adoption Framework
      Get started on your adoption journey and review the adoption resources from SugarCRM
  • Calendar
  • News
    News
    • Sugar News
    • SugarCRM.com News »
    • Dev Blog
    • SugarCRM Marketplace Blog
  • Help
    Help
    • Welcome to Sugar!
      New to Sugar? Get started here!
    • SugarClub Help & Instructions
      Learn more about SugarClub and find answers to questions about this site
    • New to SugarClub?
      Start your community journey here
    • Technical Support
      Sugar's support resources
      Technical Support
      • Case Portal »
        Access the SugarCRM Case Portal
      • Working with Sugar Support »
        Find out more about engaging with the SugarCRM Support team
      • SugarCloud Information
        Find information about SugarCloud service updates and site status. Contact sugarclub@sugarcrm.com to request access
  • More from Sugar
    More from Sugar
    • DevClub
    • PartnerClub
    • Support
    • SugarOutfitters Marketplace
    • sugarcrm.com
  • DevClub
  • PartnerClub
  • Support
  • Marketplace
  • sugarcrm.com
DevClub
DevClub
Dev Tutorials Sugar 12.0 (Q2 2022) Customization Guide
Click here to join this group and curate your SugarClub experience.
  • +On-Boarding Framework
  • +Customization Guides
  • +Modern UI Technical Guide
  • +Automated PHP Compatibility Tool
  • Did you know? Copying related records is a breeze!
  • How to write code for SugarCloud webinar Q&A
  • HOW TO: enforce ACL on Tags
  • Programatically manage Dropdown List
  • Remove custom fields created via package installation
  • Sugar Developer Tools
  • Tutorial:  How to register custom platforms in Sugar instances via Platform extension
  • Adding a google reCAPTCHA in a Web-to-Lead form
  • Sugar Developer Blog Style Guide

You are currently reviewing an older revision of this page.

  • History View current version

Sugar 12.0 (Q2 2022) Customization Guide

Sugar 12.0.0 Release Preview Customization Guide

The purpose of this document is to provide insight to Sugar Developers for upgrading custom Sugar code, extensions, and integrations to the Sugar 12.0 (Q2 2022) release. This guide focuses on changes in Sugar 12.0 (Q2 2022) that could cause an immediate impact on Sugar customizations and integrations built for earlier Sugar versions.

Please check out the Q2 2022 Developer Webinar recording for more developer highlights. For Admin and End User release notes, please visit the Sugar 12.0.0 Release Notes.

Sugar Professional to Enterprise

As we talked about in our webinar, Sugar is converting professional customers to enterprise. Here are some guides we created on each topic for your reference.

  • Technical Conversion Guide
  • End-user Conversion Website
  • Feature Comparison List (cloud and on-prem)
  • FAQs

User Experience Updates

List View Improvements

This release continues to improve Sugar’s user experience, now on List Views. With this release we introduce few enhancements on pagination, headers and columns.

LV - Pagination

With this release we introduced a pagination control to divide the list view content into discrete pages and present content in a limited and digestible manner. This makes navigating records in the list views much easier and more in line with modern UI best practices.
We added a pagination control to list view. Users can now clearly see which records are being shown on the current page, navigate through the list of records easily, and jump to any other page from the current page thereby accelerating the user’s ability to find a specific record. Selection of records in the list view is now more intuitive by showing users the number of selected records across pages

LV - Fixed Headers

This new enhancement freezes the list view headers so that users can always see the headers while scrolling down the list.
When users now scroll down the lists, the field headings won’t disappear off the page. We have also capped the space available for filters so that list views are visible when users add a large number of conditions to a filter. We have added a minimize button to close an unsaved filter and increase list view space when an unsaved filter has many conditions. When minimized, users will now see an “Unsaved” indicator.

LV - Ability to Freeze first column

This feature allows the users to pin the first column data so that they can always see it when scrolling the list views to the right.
Both admins and users can configure the freeze first column feature of a list view. A user can see the freeze column option for list views if enabled in the admin settings. If the admin settings is enabled, the freeze option is available to the use.

More Dropdown-Conditional and Role-Based RV

In our previous release, we’ve introduced Dropdown Conditional RV Layouts, in this release we are extending that functionality to Dashlets and Previews making available Dropdown-based and Role-based driven layouts. As a recap, it displays different Record Views depending on the Type of Record. Therefore you'll be able to control conditional field availability and position with minimal effort as well as move fields to different positions based on which are more important for some records than others.

On upgrade, “Layout determined by” is set to “Standard Layout” and “View by” is set to “Layout determined by”.

Forecasting Worksheet Enhancements

We’ve put a lot of efforts on making our forecasting experience better. Prior to this enhancements, individual reps could not make an personal commitment to their managers about what they expect to win in a sales period. clicking commit only gave the manager a sum of their in-forecast deals. now, they can make a personal commitment to their manager. we default this value to the summation of their deals, but they can type a new value, should they wish, which is then rolled to the manager upon clicking commit. uncommitted changes made to this commitment header value are not preserved when navigating away from forecasts, even if they have clicked the Save button.

Also new is a manager’s ability to make a team-level commitment. prior to 12.0, managers could make adjustments to each of their subordinate’s commitments or sums. in this way, they could make a commitment disconnected to individual deals. but they still had to attribute those commitments to themselves or their subordinates. they can still do these subordinate-level adjustments, but now they can also make an aggregate commitment for their team in the header. again, we default this to the summation of their adjusted subordinate-level commitments, but the manager can then type a new value in the header as their team commitment before clicking commit. as with the rep sheet, uncommitted changes to this header commitment will not be preserved when navigating away, even if they have clicked the save button.

  • “Save” is now called “Save Draft” and exhibits same behavior as prior to 12.0
  • Removed the arrow icon from “Commit” and added these two tooltips:
    • Rep worksheet: “Save changes to records and submit forecast to manager”
    • Manager worksheet: “Submit forecast to manager and assign quota”

Move favorites icon next to the dashboard header

As part of our user experience facelift, in this release Sugar displays the favorite star next to the name instead of the right hand corner with 10px away from the header.

Tabbed components: Update UI of tabbed components across platform

In this release our Tabbed components will blend in with background. Text will get a `@linkColor` and the selected tab border bottom will receive `@blue`.

Opps Focus Dashboard and SugarLive display related RLI List View

Prior to 12.0, if a user wanted to see the Opportunities related RLIs in the Record View dashlet, they had to manually add them. In the context of a Focus drawer, where we want all relevant information at the disposition of the user, we thought it made sense to add RLIs in the second tab so users can switch back and forth between the two, if needed.

Dropdown Classification for Sales Stage

Admins are now able to add Classification to any custom Sales Stage via the UI in Studio. Classifications will default to Open, but users will be able to select from Closed Won and Closed Lost as well. These classifications will be mapped accordingly to the existing values in the database.

Modernizing UI Continues

In this release we’re finishing up the work started in 11.3 to modernize the overall look and feel of the Sugar UI. We have improved the look and feel of the main Sugar views with a more modern approach to styling and a focus on how users interact with Sugar. We updated the elements and dimensions of the footer. We removed unnecessary dividers in different places of the application and updated the look of tabs to align with material design and accordion styling. List Views and dashlets have an updated headerpanel to reflect the same behavior exhibited in dashboards. We deprecated Open Sans for a better font and updated the style of the Search box to look like the Tags field. And lastly, we gave message modals and their loading indicators a state-of-the-art look.

Multiple Integrations added to the Core

This release also comes with multiple integrations imported to Sugar Core platform (more details on Platform Updates section):

  • DocuSign - allows users to send documents such as quotes and contracts for electronic signatures directly from Sugar records
  • Sugar Maps - allows users to see records plotted on a dynamic map directly in SugarCRM
  • Cloud Drive - allows users to manage their OneDrive or Google Drive folders and files

Sugar License and Version Help

Starting in 12.0, it will be much easier for customers to access the right documentation and content that’s relevant to them. We exposed user license in two places, the About page and Help modal, so users will be able to easily locate their Sugar version and edition number.

Sugar REST API updates

This Sugar release introduces REST v11_16.

DocuSign Rest API endpoints

GET <sugar instance>/rest/v11_16/DocuSign/getAuthenticationUrl

DELETE <sugar instance>/rest/v11_16/DocuSign/revokeToken

POST <sugar instance>/rest/v11_16/DocuSign/send

GET <sugar instance>/rest/v11_16/DocuSign/sendReturn

POST <sugar instance>/rest/v11_16/DocuSign/saveBean

POST <sugar instance>/rest/v11_16/DocuSign/stats

POST <sugar instance>/rest/v11_16/DocuSign/getCompletedDocument

GET <sugar instance>/rest/v11_16/DocuSign/downloadDocument

POST <sugar instance>/rest/v11_16/DocuSign/downloadDocument

POST <sugar instance>/rest/v11_16/DocuSign/resendEnvelope  

POST <sugar instance>/rest/v11_16/DocuSign/updateEnvelope

POST <sugar instance>/rest/v11_16/DocuSign/removeEnvelope  

POST <sugar instance>/rest/v11_16/DocuSign/notification

CloudDrive Rest API endpoints

POST <sugar instance>/rest/v11_16/CloudDrive/list/files

POST <sugar instance>/rest/v11_16/CloudDrive/list/folders

POST <sugar instance>/rest/v11_16/CloudDrive/folder
GET <sugar instance>/rest/v11_16/CloudDrive/file/:fileId

POST <sugar instance>/rest/v11_16/CloudDrive/files/syncAll

POST <sugar instance>/rest/v11_16/CloudDrive/files/syncFile

POST <sugar instance>/rest/v11_16/CloudDrive/download

POST <sugar instance>/rest/v11_16/CloudDrive/delete

POST <sugar instance>/rest/v11_16/CloudDrive/createSugarDocument

GET <sugar instance>/rest/v11_16/CloudDrive/paths  

POST <sugar instance>/rest/v11_16/CloudDrive/path

GET <sugar instance>/rest/v11_16/CloudDrive/path  

DELETE <sugar instance>/rest/v11_16/CloudDrive/path

Sugar Maps Rest API endpoints

POST <sugar instance>/rest/v11_16/maps/getApiKey/:provider

POST <sugar instance>/rest/v11_16/maps/generateMap

PHP Library Upgrades

no change.

JS Library Upgrades

no change.

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.3 and adding support to PHP 8.0.
    • PHP 7.3 to PHP 7.4 have breaking changes and incompatibilities
      • Here is PHP’s official migration guide (https://www.php.net/manual/en/migration74.php)
      • Backwards incompatibilities guide (https://www.php.net/manual/en/migration74.incompatible.php)
    • PHP 7.4 to PHP 8.0 have 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)
  • We are adding support for Windows Server 2019.
  • We are adding support to ElasticSearch 7.16.3.

Configurability updates

Sugar Logic

Dropdown Classification for Sales Stage

We have several SugarLogic functions that take into account the classification of your sales stages. if you have used these functions in custom calculations, and you change an existing sales stage’s classification, you will need to resave affected records or use list view’s “recalculate” option to reapply your calculating taking into account the change in stage classifications:

  • {{isForecastClosed()}}: If sales_stage is in sales_stage_won OR sales_stage_lost
  • {{isForecastClosedLost()}}: If sales_stage is only in sales_stage_lost
  • {{isForecastClosedWon()}}: If sales_stage is only in sales_stage_won
  • {{forecastSalesStages(Boolean $includeWon, Boolean $includeLost)}}: Returns list of sales stages with closed-won excluded if the first argument is false and closed-lost excluded if the second argument is false.

Sugar Catalog Server

no change.

SugarBPM

no change.

Studio

no change

Sugar Config Settings

Setting Name

Default

Override Example

Description

freeze_list_headers

true

$sugar_config['freeze_list_headers'] = false Enable Persistent header for all the lists.
allow_freeze_first_column

true

$sugar_config['allow_freeze_first_column'] = false
Enable Persistent first column for all the lists.

Removed Features

none.

Data Changes

Added SugarPredict fields Natively to Sugar

We implemented 3 SugarPredict fields into Core Sugar. OOTB, these fields would be hidden, but available for the admin to add them to any layout. The fields would be activated when the user has Predict data. The three dropdown fields are ai_opp_conv_score_enum in Opportunities, ai_conv_score_classification and ai_icp_fit_score_classification in Leads.

Add Market Score field to Natively to Sugar

Added a Sugar Market integer field called “market_score” into Core Sugar to the Leads and Contacts modules. The field will appear in both, Sugar Market instances and non-Sugar Market instances. Data from Sugar Market syncs to Core Sugar for these two fields, but not the other way around.

Added Fields to Maintain Market Predict Score on Contacts and Leads

We added a new Dropdown field, “Market Interest Prediction”, to Core Sugar in Contacts and Leads. Sell users will be able to see a Contact or Lead’s predict score and understand what their likelihood to convert to an Opportunity is based on a 1-5 score with 1 being Very Low and 5 being Very High. The field is available to be added on any Contacts or Leads Layout, but not available by default as not all Market customers have predict enabled.

Filesystem Changes

Ex. Changes to Sugar filesystem structure.

Platform Updates

Sidecar Check for License updates

In this release, you will have more ways to go deeper in the editions available and being used by the current user. You can use those constants below on the hasLicense method to check for a specific edition or use the helper methods introduced in this release.

  • hasLicense(licenseType<string | string[]>, hasAll = false)
    • allows a single license type string or an array of strings license types to be passed in
    • If hasAll is false, returns true if user matches any license types
    • If hasAll is true, returns true is user matches ALL license types

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const SUGAR_SELL_KEY = 'SUGAR_SELL';
const SUGAR_SELL_ESSENTIALS_KEY = 'SUGAR_SELL_ESSENTIALS';
const SUGAR_SELL_BUNDLE_KEY = 'SUGAR_SELL_BUNDLE';
const SUGAR_SELL_PREMIER_BUNDLE_KEY = 'SUGAR_SELL_PREMIER_BUNDLE';
const SUGAR_SELL_ADVANCED_BUNDLE_KEY = 'SUGAR_SELL_ADVANCED_BUNDLE';
const SUGAR_SERVE_KEY = 'SUGAR_SERVE';
const SUGAR_BASIC_KEY = 'CURRENT';
const SUGAR_HINT_KEY = 'HINT';
const SUGAR_PREDICT_ADVANCED_KEY = 'PREDICT_ADVANCED';
const SUGAR_PREDICT_PREMIER_KEY = 'PREDICT_PREMIER';
const SUGAR_CONNECT_KEY = 'CONNECT';
const SUGAR_DISCOVER_KEY = 'DISCOVER';
const SUGAR_MAPS_KEY = 'MAPS';
const SUGAR_ADVANCEDFORECAST_KEY = 'ADVANCEDFORECAST';
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    const SUGAR_SELL_KEY = 'SUGAR_SELL';
    const SUGAR_SELL_ESSENTIALS_KEY = 'SUGAR_SELL_ESSENTIALS';
    const SUGAR_SELL_BUNDLE_KEY = 'SUGAR_SELL_BUNDLE';
    const SUGAR_SELL_PREMIER_BUNDLE_KEY = 'SUGAR_SELL_PREMIER_BUNDLE';
    const SUGAR_SELL_ADVANCED_BUNDLE_KEY = 'SUGAR_SELL_ADVANCED_BUNDLE';
    const SUGAR_SERVE_KEY = 'SUGAR_SERVE';
    const SUGAR_BASIC_KEY = 'CURRENT';
    const SUGAR_HINT_KEY = 'HINT';
    const SUGAR_PREDICT_ADVANCED_KEY = 'PREDICT_ADVANCED';
    const SUGAR_PREDICT_PREMIER_KEY = 'PREDICT_PREMIER';
    const SUGAR_CONNECT_KEY = 'CONNECT';
    const SUGAR_DISCOVER_KEY = 'DISCOVER';
    const SUGAR_MAPS_KEY = 'MAPS';
    const SUGAR_ADVANCEDFORECAST_KEY = 'ADVANCEDFORECAST';

New easy to use helper methods are:

  • hasConnectLicense()
  • hasDiscoverLicense()
  • hasHintLicense()
  • hasMapsLicense()
  • hasAdvancedForecastingLicense()
  • hasPredictLicense()
  • hasPredictAdvancedLicense()
  • hasPredictPremierLicense()

DocMerge Available for Enterprise

In this release we are making DocMerge available to our Enterprise customers. As a recap, A common need among Sugar users is the ability to create letters, contracts, proposals, etc. DocMerge can be used to quickly create Microsoft Word templates that can be used to merge information from any module in Sugar.

DocuSign now part of Sugar Core

DocuSign Integration allows users to send documents such as quotes and contracts for electronic signatures directly from Sugar records. Signature status and the signed documents are maintained with their originating Sugar records, providing an uninterrupted workflow as users work within Sugar. Users can access the DocuSign integration through the DocuSign dashlet and through the Documents subpanel Actions menu.

CoudDrive now part of Sugar Core

Cloud Drive dashlet allows users to view their OneDrive or Google Drive folders and file names, upload new files, download files, open files, copy a link to the file, and create a Sugar document from a file. Users can create a new folder in OneDrive or Google Drive directly from the dashlet.
The Documents subpanel now has options to sync records to Google Drive or OneDrive, which will save the file to the folder that is currently displayed on the record view’s Cloud Drive dashlet. Admins can decide default paths for the dashlet on record view based on the module to keep files organized.

Sugar Maps now part of Sugar Core

Sugar Maps, using an integration with Microsoft Bing Maps, allows users to see records plotted on a dynamic map directly in SugarCRM. Using Maps, a user can plot a specific record, see driving directions from their address to a record, see driving directions from one record to another, and see the proximity of a record in relation to other records or in relation to a zip code. Using Maps data, users can also filter records by proximity to another record and proximity to a zip code.

Swap current custom predict Layouts to Stock SugarPredict Fields on Upgrade

We have made new stock SugarPredict fields. Customers who have already been enabled for predict have custom SugarPredict fields in their instances. Upon upgrade, we will replace the custom fields on layouts with the new stock fields. We will not, however, swap the old and new fields out on user-built capabilities including.

  • Report definitions
  • Saved filters
  • SugarBPM definitions
  • SugarLogic formulas
  • List view dashlet filters and columns

Ability to mark Group Email Accounts as preferred sending accounts

Added a new checkbox field, “Preferred Sending Account“, to the OutboundEmail module. In the OutboundEmail module Record Layout, we’ll display a new panel under show more with the Teams and Preferred Sending Account fields. When composing an email from within Sugar, “From” displays Accounts they have favorited first in alphabetical order, followed by Preferred Sending Account in alphabetically order and finally, the rest of Accounts they have access to in alphabetically order.

Reduce footer and header heights

In this release there is a change to the footer dimensions in these UI updates. Footer height has been changed to 30px which translates to 1.875rem. Also keep all elements vertically aligned within that 30px height. As for headers, we reduced the height of the header bar area on Dashboards, Focus Drawers, Side panels, and all other places where dashlets exist.

Dropdown menus- remove borders and add box-shadow

Removed borderlines and surrounding border for the following Dropdown menus to mimic what dashlets look like:

  • Megamenu
  • Action button
  • List view
  • Dashlet toolbar
  • Typeahead search results

Headerpane: Update list and record view headerpane to be similar to dashboards

We removed the background color on the side bar toggle button and the bottom border of the header panel.

Locking mechanism to prevent race conditions during QRR/Metadata rebuild

In this release we are introducing a locking mechanism to prevent racing conditions during few expensive operations to improve performance. Locking has been implemented on:

  • QRR
  • Metadata rebuild
  • less->css compilation

Add PSALM as Dev Dependency

Psalm helps people maintain a wide variety of codebases – large and small, ancient and modern. On its strictest setting, it can help you prevent almost all type-related runtime errors, and enables you to take advantage of safe coding patterns popular in other languages.

Deprecated functions

none