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.2 (Q4 2022) Customization Guide
Click here to join this group and curate your SugarClub experience.
  • +On-Boarding Framework
  • -Customization Guides
    • Sugar 25.1 Customization Guide
    • Sugar 14.2 (Q4 2024) Customization Guide
    • Sugar 14.1 (Q3 2024) Customization Guide
    • Sugar 14.0 (Q2 2024) Customization Guide
    • Sugar 13.3 (Q1 2024) Customization Guide
    • Sugar 13.2 (Q4 2023) Customization Guide
    • Sugar 13.1 (Q3 2023) Customization Guide
    • Sugar 13.0 (Q2 2023) Customization Guide
  • +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

Sugar 12.2 (Q4 2022) 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.2 (Q4 2022) release. This guide focuses on changes in Sugar 12.2 (Q4 2022) that could cause an immediate impact on Sugar customizations and integrations built for earlier Sugar versions.

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

User Experience Updates

Extend Focus Drawer functionality to Report Drill Down results

Added Focus Drawers to Reports. When a user drills into a report's chart, sidecar links will display a focus drawer icon to the right of these. When a focus drawer (side drawer) is open from a top-bottom drawer, the focus drawer will stack on top of the top-bottom drawer. Closing a focus drawer opened from a top-bottom drawer lands the user in the initial top-bottom drawer. Focus drawer will follow regular bread-crumbing behavior. Clicking on a link from a top-bottom or focus drawer navigates the user to the link and kills all drawers.

Introducing Metrics Tab to Consoles

In this release we are introducing a new feature called “Metrics” in this release enabling Metric ribbons for consoles that provide a holistic view of the metrics that matter the most. Each metric ribbon contains a number of Metric tabs each providing snapshot information that focuses on the points where the agents are regularly monitoring and taking action. The new metric ribbon is enabled for both Service Console as well as Renewal Console. This would completely change the way a Service or a Sales agent works in Sugar consoles. 

This new Module provides a list view with all the available metrics where you can manage its settings, filters and define the layout, admins can also delete a metric if they need to.

We are also releasing some out-of-the-box metric tabs as follows:

  1. User can see the following OOTB Metric tabs for Cases for Service Console

    1. My Cases

      1. Filter Criteria : All Cases assigned to me and not Closed/Rejected/Duplicate ( Current filter criteria for the Cases tab for Service Console)

    2. My Team’s Cases

      1. Filter Criteria: All Cases assigned to me and anyone in my team and not Closed/Rejected/Duplicate

    3. All Unassigned

      1. Filter Criteria: All Unassigned Cases and not Closed/Rejected/Duplicate

    4. All Escalated

      1. Filter Criteria: All Escalated Cases assigned to me and anyone in my team and not Closed/Rejected/Duplicate

  2. User can see the following OOTB Metric tabs for Accounts for Renewal Console

    1. My Accounts

      1. Filter Criteria : Current filter criteria for the Accounts tab for Renewal Console)

  3. User can see the following OOTB Metric tabs for Opportunities tab for Renewal Console

    1. My Opportunities

      1. Filter Criteria : Current filter criteria for the Opportunities tab for Renewal Console)

Note: On upgrade, If no customization is done only OOTB metrics would be available after upgrade, if admins have customized, new customized metric tab will be the default one and should be shown as first tab.

Align Forecasting metrics UX

We are modifying forecasting KPI/metrics user experience with the new Metrics modules which is a change in the visualization of the Opportunity count in the metric boxes. These will now be displayed as a gray badge to match Serve views..

Embed report results directly in email body

In this release, we are embedding report results for scheduled reports directly in the email body rather than as attachments.

The report chart and data table are included directly in the email body. Can be scrolled. No pagination. Very large reports (~200 rows) are sent only in attachments.

Sugar REST API updates

This Sugar release introduces REST v11_18.

Nearby search with distance filter Rest API endpoints

Added a new endpoint which returns geocoded records based on radius, latitude and longitude

GET <sugar instance>/rest/v11_18/maps/nearby

PHP Library Upgrades

Symfony Components

Symfony is a leading PHP framework that provides a set of common components. For example, the Symfony Security Component is used by Sugar for input validation. We've updated these libraries to latest stable version and removed some transitive dependencies.

"symfony/cache": "^v5.4.10"
"symfony/console": "^v5.4.10"
"symfony/event-dispatcher": "^v5.4.9"
"symfony/expression-language": "^v5.4.10"
"symfony/intl": "^v5.4.10"
"symfony/polyfill-intl-idn": "^v1.26.0"
"symfony/security-core": "^v5.4.10"
"symfony/security-csrf": "^v5.4.9"
"symfony/validator": "^v5.4.10"
"symfony/process": "^v5.4.8"

Smarty (smarty/smarty)

Sugar utilizes a PHP library called Smarty In this release, we are bumping up Smarty to v3.1.45. This is a minor upgrade with no impact to Sugar code.

JS Library Upgrades

jQuery UI

In this release, we are upgrading jQuery UI to v1.13. jQuery team has put together an upgrade guide per component as a reference.

In case you use any of the affected components, please make sure to review and upgrade accordingly.

SugarCRM Ventana

Ventana is being bumped up to 1.1.13 and it has been upgraded in Sugar 12.2 as well.

Supported Platforms Update

DocMerge Deployed on Supported Regions

DocMerge services have been deployed in EU, APAC, and CAC regions for better performance and compliance.

Configurability updates

Sugar API Platforms

Developers use the platform parameter to distinguish their custom platform from other clients when using the Sugar API.

We have added sugarlambda to the core platform APIs.

Sugar Config Settings

Setting Name

Default

Override Example

Description

symfony_deprecation_log false $sugar_config['symfony_deprecation_log'] = true; enable logging of deprecation warnings, triggered by Symfony components

Data Changes

Opportunities Module

We are adding the following fields to the Opportunities module for faster and better integrate with Sugar Predict.

  • ai_opp_conv_score_absolute labeled “Prediction Value”
  • ai_opp_conv_bin_accuracy labeled “Prediction Bin Accuracy”
  • ai_opp_conv_multiplier labeled “Prediction Multiplier”

Leads Module

We are adding the following fields to the Leads module for faster and better integrate with Sugar Predict.

  • ai_conv_score_absolute labeled “Prediction Value”
  • ai_conv_bin_accuracy labeled “Prediction Bin Accuracy”
  • ai_conv_multiplier labeled “Prediction Multiplier”
  • ai_icp_fit_score_absolute labeled “ICP Value”
  • ai_icp_fit_bin_accuracy labeled “ICP Bin Accuracy”
  • ai_icp_fit_multiplier labeled “ICP Multiplier”

Platform Updates

Improvements to ExternalResourceClient

  • We heard you and our ExternalResourceClient now accepts IPs on HTTP (non-secure) URLs, e.g http://999.999.999.999/api/get/1 now is allowed as before it would throw an exception.
  • We are also improving ExternalResourceClient to be compatible with PSRs 7,17,18 by adding a new method sendRequest() to make our class compatible with PSR standards.
    • When using sendRequest() in the output should be values of "X-Amzn-Trace-Id" key (they are unique for each request/response).
  • We are improving DNS lookups over HTTPS (a.k.a. DoH), it won't impact you or your code, it's an under-the-hood improvement.
  • Few bugs were fixed related to multiple redirects and URL changes

curl_*, socket_*, and stream_* functions checks enabled

As announced in the previous release, 12.2 enables Sugar's package scanner to block those functions on MLP uploads.

As a reminder, the following plan has been put in place to ease the transition:

  • For the Sugar_12.1.0 release, the config parameter (enableEnhancedModuleChecks) will be disabled by default allowing MLPs with HTTP clients like curl, socket, and streams to be updated/installed.

  • For Sugar_12.2.0 and Sugar_12.3.0 we will enable the config so that MLPs with the above functions will be blocked however Cloud Support has the ability to turn this off.

  • For Sugar_13.0.0 we will be removing the config, by this time we will have given everyone 4 releases times as per our deprecation policy.

  • This client should be backported to all supported sugar versions.

DocMerge Performance Improvement

In this release, we have improved the performance of DocMerge functionality by introducing caching in different layers while dealing with metadata and merging.

Deprecations warnings to its own log file

Developers may want to add also the following to collect deprecation warnings into a separate deprecations.log file, keeping in sugarcrm.log only important messages

Fullscreen
1
2
3
4
5
6
7
8
9
$sugar_config['logger']['channels']['deprecation'] = [
'level' => 'warning',
'handlers' => [
[
'type' => 'File',
'name' => 'deprecations',
],
],
];
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
$sugar_config['logger']['channels']['deprecation'] = [
'level' => 'warning',
'handlers' => [
    [
    'type' => 'File',
    'name' => 'deprecations',
    ],
  ],
];

Restricting Module Loader for Sugar Essentials

Our Sugar Essentials customers will no longer be able to install nor uninstall packages using Module Loader, they can, however, delete uninstalled packages through the UI.

UI will present an explanatory text in the UI for those types of customers.

Uploads are encoded jow

In this release, we are improving the security of our file uploads (any upload). If there are any PHP type of comand in the file being uploaded, we will encode that to prevent executing while storing at rest and will decode when it's being read it back.

Removed Functions / Libraries

PHP stable sort removed

PHP stable sort functions library (vanderlee/php-stable-sort-functions) has been removed in Sugar 12.2. 

Symfony Components

Symfony is a leading PHP framework that provides a set of common components, the following components were removed in Sugar 12.2.

symfony/translation

symfony/http-kernel

Multiple Dead code 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.

Remove Opens Sans as font

We've added a new font, Inter as our default and only font. Now it's time to clean up and remove Open Sans font-family in the core platform.

SugarCloud Insights

We are making our SugarCloud insights downloads much better, more reliable and more secure in this release. We are introducing a new API for downloads and deprecating the current API.

Introducing new Downloading Backups API

In this release, we are introducing a new Rest API for SugarCloud Insights backups for our SugarCloud customers.

This API follows our Sugar API standards as you need an OAuth token to retrieve data from. 

Backups API requires those headers:

  • Sugar OAuth-Token provided by your instance's API OAuth-token call.
  • Your Sugar instance's FQDN, for example: mysugarinstance.sugarondemand.com
  • API: this is your SugarCloud Insights URL that can be retrieved when you're logged in to SCI, for now, it should be one of those
    • Non IDM enabled customers: sugarcloud-insights.service.sugarcrm.com
    • usw2 customers: sugarcloud-insights-usw2.service.sugarcrm.com
    • cac1 customers: sugarcloud-insights-cac1.service.sugarcrm.com
    • apse1 customers: sugarcloud-insights-apse1.service.sugarcrm.com
    • apse2 customers: sugarcloud-insights-apse2.service.sugarcrm.com
    • euc1 customers: sugarcloud-insights-euc1.service.sugarcrm.com
    • euw2 customers: sugarcloud-insights-euw2.service.sugarcrm.com

Fullscreen
1
2
3
4
5
6
curl -X POST
-H Cache-Control:no-cache
-H "Content-Type: application/json"
-H OAuth-Token: <OAUTH_TOKEN>
-H X-Sugar-FQDN: <FQDN>
https:/<site_url>/api/v1/backups
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
curl -X POST 
  -H Cache-Control:no-cache 
  -H "Content-Type: application/json" 
  -H OAuth-Token: <OAUTH_TOKEN>
  -H X-Sugar-FQDN: <FQDN> 
  https:/<site_url>/api/v1/backups

Payload return:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
{
"backups":[{
"created_at":"2022-08-03T07:03:01Z",
"expires_at":"2022-09-02T07:03:01Z",
"download_url":"https://your_backup_archive",
"exclude_uploads":false,
"compressed_size":3838288,
"uncompressed_size":3845144,
"md5_checksum":"25d90b5fb93605d86da0862ec350610f"
}]
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
{
  "backups":[{
     "created_at":"2022-08-03T07:03:01Z",
     "expires_at":"2022-09-02T07:03:01Z",
     "download_url":"https://your_backup_archive",
     "exclude_uploads":false,
     "compressed_size":3838288,
     "uncompressed_size":3845144,
     "md5_checksum":"25d90b5fb93605d86da0862ec350610f"
  }]
}

Note: The "download_url" link is a temporary URL that will become invalid after a period of time, if that happens, you must make a new request to the API.

Deprecating Downloading Backups From the Backups Module

We are deprecating the Ops Module Filter API in December 2022, which means it will still work as it is currently (in addition to the new REST API endpoint offered in 12.2). Customizations using the old endpoint should be updated to leverage the new API added in 12.2.

Customers should still be able to use the legacy Backups module/API until December 2022. Once the Ops Module filter API has been removed, downloads can only be retrieved via the new API endpoint so we encourage you to upgrade all customizations or integrations to use the new API before the end of 2022.

Uploads Folder not Included by Default

Customers have requested to remove uploads_folder from backups due to the size of their backups.

We heard you and now uploads is not enabled by default and will be excluded on your backups moving forward, reducing the size of your backups focusing only on what matters.

  • Sugar 12.2
  • Sugar Q4 2022
  • 0 comments
  • 0 members are here
  • Sign in to reply
Related
Recommended