SugarClub
SugarClub
  • User
  • Site
  • Search
  • User
  • Ask a Question
    Ask a Question
    • Sugar Sell & Enterprise
    • sales-i
    • Sugar Market
    • Sugar Serve
  • 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 SugarCRM Ambassador
    • 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
    • Event Recordings
      Recordings from SugarU Live Webinars and Sugar Market Academy
    • 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 10.0 (Q2 2020) Customization Guide
  • Dev Blog
  • Answers & Best Practices
  • Developer On-boarding
  • Dev Tutorials
  • Developer Events
  • Event Recaps
  • Members
  • Developer Suggestions
  • Sub-Groups
  • More
  • Cancel
  • New
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
  • +Customization Best Practices in Sugar
  • How to write code for SugarCloud webinar Q&A
  • HOW TO: enforce ACL on Tags
  • 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 10.0 (Q2 2020) Customization Guide

Purpose

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

  • Purpose
  • Sugar Instance Upgrade Path 
  • Cloud and On-Premise Sugar Release
  • Expected to Affect Few Developers
      • REST API Endpoint Changes
      • Module Loader API
      • Field label Placement

Sugar Instance Upgrade Path 

The upgrade path for 10.0.0-preview.1 and 10.0.0-preview.2 (this "Preview") is from 9.3 (Winter '20). There will be no upgrade path from 10.0.0-preview.1 and 10.0.0-preview.2 to the GA version of the Sugar Q2 2020 releases.

Cloud and On-Premise Sugar Release

For those looking to upgrade from Sugar 9.0, you will be catching up with additional content released last Summer '19, Fall '19 and Winter '20. In addition to this guide, please review the Sugar 9.1, Sugar 9.2, and Sugar 9.3 migration guides and Sugar 9.1, Sugar 9.2, and Sugar 9.3 release notes on the Sugar Support site to get a full view of changes since Sugar 9.0.

Expected to Affect Few Developers

This section explains items expected to have a low impact on Sugar customizations and integrations when migrated to Sugar 10.0. It is expected that these items will affect few developers. This release addressed many smaller bug fixes and UI changes. There are not many issues that require special attention from a development standpoint. You may want to take note of the following regarding your customizations before you upgrade: 

REST API Endpoint Changes

Currently, records with many SugarLogic related value formulas can cause the URI to become too long using GET, causing a 414 error.  Therefore, the existing GET endpoint for the ExpressionEngine's related values API (/ExpressionEngine/:record/related) has been deprecated. It has been replaced with a POST endpoint of the same name.

Sample request:

{
  "id": "a915cff8-1dec-11ea-b203-7200015efab0",
  "action": "related",
  "module": "Opportunities",
  "fields": [
    {
      "type": "rollupConditionalSum",
      "link": "revenuelineitems",
      "relate": "likely_case",
      "condition_field": "sales_stage",
      "condition_expr": "forecastSalesStages(\"true\",\"false\")"
    },
    {
      "type": "maxRelatedDate",
      "link": "revenuelineitems",
      "relate": "date_closed"
    },
    {
      "type": "rollupMax",
      "link": "revenuelineitems",
      "relate": "date_closed_timestamp"
    },
    {
      "type": "rollupConditionalSum",
      "link": "revenuelineitems",
      "relate": "best_case",
      "condition_field": "sales_stage",
      "condition_expr": "forecastSalesStages(\"true\",\"false\")"
    },
    {
      "type": "rollupConditionalSum",
      "link": "revenuelineitems",
      "relate": "worst_case",
      "condition_field": "sales_stage",
      "condition_expr": "forecastSalesStages(\"true\",\"false\")"
    },
    {
      "type": "count",
      "link": "revenuelineitems"
    },
    {
      "target": "closed_revenue_line_items",
      "type": "countConditional",
      "link": "revenuelineitems",
      "condition_field": "sales_stage",
      "condition_expr": "createList(\"Closed Won\",\"Closed Lost\")"
    },
    {
      "target": "included_revenue_line_items",
      "type": "countConditional",
      "link": "revenuelineitems",
      "condition_field": "commit_stage",
      "condition_expr": "forecastIncludedCommitStages()"
    }
  ]
}

Module Loader API

This is exciting - new REST Endpoints have been added for working with Module Loadable Packages.

  • /Administration/packages/:unFile
    • DELETE endpoint.
    • Delete the specified package.
    • Package 'unFile' hash must be provided.
    • Package 'unFile' hash can be found in staging package list.
  • /Administration/packages/:id/disable/
    • GET endpoint.
    • Disable the specified package.
    • Package id hash must be provided.
    • Package id can be found in installed package list.
  • /Administration/packages/:id/enable/
    • GET endpoint.
    • Enable the specified package.
    • Package id hash must be provided.
    • Package id can be found in installed package list.
  • /Administration/packages/:file_install/install/
    • GET endpoint.
    • Installs the specified package.
    • Package 'file_install' hash must be provided.
    • file_install hash could be found in staging package list.
  • /Administration/packages/
    • GET endpoint.
    • Lists all packages in the system.
  • /Administration/packages/installed/
    • GET endpoint.
    • Lists all installed packages.
  • /Administration/packages/staged/
    • GET endpoint.
    • Lists staged packages in the system.
  • /Administration/packages/:id/uninstall/
    • GET endpoint.
    • Uninstalls the specified package.
    • Package id hash must be provided.
    • Package id can be found in installed package list.
  • /Administration/packages
    • POST endpoint.
    • Uploads a module loadable package via a multi-part form request.
    • The only parameter is 'upgrade_zip' which must contain a valid module loadable zip file.

Field label Placement

An option has been added to allow users to designate whether field labels in record views will appear beside the field or above the field. This could affect your customized layouts as it is per-user and therefore one user's record view may now differ from another's. Field label placement will be set to "Beside Field Value" by default for all users upon upgrade.
This setting overrides labelsOnTop viewDef which is deprecated as of this release. So, every user will see their preferred label placement regardless of ANY other settings because there is no code option to set this value. It can only be changed from the User's profile settings. If this causes any issues with your customizations, your best bet is to write css overrides in a new MLP. 

  • sugar q2 2020
  • sugar 10.0
  • Sugar 10.x
  • spring '20
  • Share
  • History
  • More
  • Cancel
  • Sign in to reply
  • Jan Aelbrecht
    Jan Aelbrecht over 5 years ago in reply to Juan Manuel Romero Guardado

    Hi Juan

    We have an integration with Sugar for which our customers need to install a MLP. Automating it has been long asked.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More Actions
    • Cancel
  • Juan Manuel  Romero Guardado
    Juan Manuel Romero Guardado over 5 years ago in reply to Jan Aelbrecht

    Hi, Jan! 
    Do you have any ideas on how are you going to use them? 
    Indeed they look exiting, having the option to do CD with sugar is interesting.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More Actions
    • Cancel
  • Jan Aelbrecht
    Jan Aelbrecht over 5 years ago

    The "Module Loader API" is indeed exciting!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More Actions
    • Cancel
  • Michael Shaheen
    Michael Shaheen over 5 years ago in reply to Jeff Bickart

    the option is per user so you can find the option when editing a User's profile under the Advanced tab

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More Actions
    • Cancel
  • Jeff Bickart
    Jeff Bickart over 5 years ago

    Where is the label placement option?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More Actions
    • Cancel
  • Vincent Amari
    Vincent Amari over 5 years ago

    Regarding this new feature:

    Field label Placement

    Can we have the option in Admin>>Studio  to either 'Allow' or 'Not Allow' users to configure this, like we can with other layout options?

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More Actions
    • Cancel
Related
Recommended