Перейти к основному содержанию
Контакты

Salesforce Summer '18 Release. Обзор для разработчиков.

О компании
Опубликовано admin
25 июня 2018
25

Лето пришло, а вместе с ним и Salesforce Summer'18 Release. Читайте, узнавайте и используйте новые фичи на своих проектах!

Apex 

1. Конструкция switch

Введена фича, которая набрала 1 700 голосов и 17 000 очков на Salesforce Community Ideas. Она упростит ваш код, заменив множественные конструкции if-else.  В отличие от других популярных языков программирования, таких как Java, C# либо ECMAScript, зарезервированное слово case заменено на when. Пример конструкции:

Salesforce Summer

Значения when может принимать одиночные значения, множественные значения либо типы SObject. Например:

The when values can be single values, multiple values, or SObject types. For example:

Конструкция switch оценивает выражение и выполняет блок кода, который соответствует блоку when. Если совпадений не найдено, то выполняется блок when else. Если блок when else отсутствует, то никаких действий не выполняется.

В данной конструкции нету “провалов”: после того как определенный блок when выполнится, заканчивается выполнение конструкции switch.

2. Лимит SOQL COUNT() функции

Функция SOQL COUNT() не учитывает лимиты. Ранее, каждая запись совпадающая с функциями SOQL COUNT() и COUNT(fieldName) учитывалась в общем количестве запрашиваемых строк. Таким образом запрос на получение количества записей мог иметь огромное влияние на общее ограничение обрабатываемых записей, особенно, работая с множеством записей. Теперь, если запрос возвращает только целочисленное значение, то оно учитывается как одна строка, несмотря на количество обработанных записей. Если же запрос возвращает массив объектов AggregateResult, то только общее число объектов AggregateResult учитывается в общем ограничении.

3. Аннотация @namespaceAccessible

Изменился доступ к Apex методам при пакетировании второго поколения. Теперь Apex интерфейсы, классы, методы, свойства недоступны для других пакетов до тех пор, пока не будут явно аннотированы. Поведение Apex кода, который помечен как global осталось прежним. Модификатор применяется только для пакетов, которые имеют префикс. Новая аннотация @namespaceAccessible помечает Apex код как доступный для других пакетов. Эта аннотация никак не влияет на код, который не является частью пакета. Таким образом, этот код может быть просто мигрирован на developer org.

Вы можете добавлять либо удалять аннотацию @namespaceAccessible в любой момент даже из managed и release Apex кода. Убедитесь, что у Вас нету зависимых пакетов, которые зависят от функциональности аннотации перед ее добавлением либо удалением.

Lightning Component Framework

1. Новые Lightning компоненты

lightning:recordForm

Упрощает создание форм для добавления, просмотра и редактирования записи. Эта компонента упрощает создание форм по сравнению с кастомной их разработкой благодаря lightning:recordEditForm и lightning:recordViewForm. Установите значение атрибута mode в view, edit либо readonly чтобы задать тип формы. Данная форма была создана со значением mode=”edit” для добавления записи.

ummer-2018-

lightning:navigationItemAPI

Предоставляет доступ к методам программного контроля навигации внутри консольного Lightning приложения. Компонента предоставляет доступ к следующим Lightning Console JavaScript API методам:

  • focusNavigationItem()
  • getNavigationItems()
  • getSelectedNavigationItem()
  • refreshNavigationItem()
  • Эта компонента также дает доступ к схожим методам Salesforce Console Integration Toolkit JavaScript APIs доступным в Salesforce Classic.

2. Измененные компоненты

lightning:datatable

Данная компонента теперь поддерживает множественное inline редактирование. Таким образом, Вы можете изменять контент в множестве ячеек таблицы и сохранять эти изменения в один миг. Компонента распознает, что Вы хотите изменить множество значений, прежде чем сохранить Ваши изменения. Колонки теперь поддерживают горизонтальное позиционирование при помощи cellAttributes параметра. Новые атрибуты представлены ниже в таблице:

errors Указывает объект, содержащий информацию о cell-level, row-level, и table-level ошибках. Сообщение об ошибке отображается соответственно в таблице.
oncellchange Действие, вызываемое при изменении значения внутри ячейки после inline редактирования. Возвращает draftValues объект.
oncancel Действие, вызываемое при нажатии кнопки Cancel внизу таблицы во время inline редактирования.
onsave Действие, вызываемое при нажатии кнопки Save внизу таблицы во время inline редактирования. Возвращает draftValues объект.

Новый параметр колонки:

editable Указывает, поддерживает ли колонка inline редактирование. Значение по умолчанию false.

Новые значения параметра value колонки:

boolean Отображает чекбокс в колонке с Boolean типом данных.
date-local Отображает только дату.
alignment Указывает, каким образом выравнивать данные горизонтально внутри колонки. Доступны следующие значения: center, right и left.

lightning:workspaceAPI

Новые методы данной компоненты:

refreshTab() Обновляет tab либо subtab указанный в tabId. Имейте ввиду, что subtab имеет такое же значение tabId как и  workspace tab.
disableTabClose() Предотвращает закрытие tab либо subtab. Этот метод убирает кнопку закрытия с tab либо subtab и отключает горячие клавиши, которые закрывают tab либо subtab.

3. New Lightning Interfaces

В новом релизе Salesforce предоставляет нам несколько новых интерфейсов:

lightning:availableForFlowActions Дает возможность использовать client-side контроллер компоненты в качестве действия в flow.
lightning:isUrlAddressable Активирует навигацию к компоненте напрямую через URL.
lightning:hasPageReference Добавляет в компоненту pageReference объект в качестве атрибута. Этот интерфейс используется интерфейсом lightning:isUrlAddressable.

4. Обновления названий CSS классов в компонентах

Имена CSS классов используемых в Lightning компонентах изменились в соответствии с нотацией Block-Element-Modifier (BEM), которую сейчас использует Salesforce Lightning Design System (SLDS). Эти изменения могут повлиять на кастомные компоненты в Вашем орге. Эти изменения влияют на кастомные Lightning компоненты с component-specific CSS, которые реализуют любые SLDS классы с двойным прочерком в названии. Эти изменения применяются для Lightning Experience во всех изданиях.

Названия классов с двойным прочерком теперь используют одиночное подчеркивание в местах двойного прочерка. Например CSS класс slds-p-around--small становится slds-p-around_small. Если Вы создали кастомный CSS класс в своей компоненте, которая ссылается на SLDS класс, содержащий двойной прочерк, обновите ваш селектор с использованием одиночного подчеркивания

Изменения в Locker Service

Архитектурный уровень Locker Service улучшает безопасность, изолируя индивидуальные компоненты в их отдельные контейнеры и применяет пример “good practice” написания кода. Совместимость Locker Service улучшена в этом релизе.

1. Функция Javascript eval() стала доступной

 Функция eval() теперь доступна в Locker Service, даже несмотря на включенный “Strict CSP ”. Это добавление улучшает поддержку сторонних библиотек, код которых выполняется динамически. Ограничение: В Locker Service функция eval() всегда работает в глобальном контексте выполнения пространства имен. Данная функция не может получить доступ к переменным контекста выполнения, в котором она вызвана.

2.  Улучшение производительности

Теперь код выполняется быстрее внутри Locker Service, благодаря новой системе статических ссылок, которые позволяют браузерному оптимизатору вовремя ускорять выполнение.

3. Чистая отладка

Ранее процесс отладки кода в Locker Service представлял множественные обертки вокруг кода. Эти обертки запутывали пользователя при отладке кода. Обновленный двигатель не нуждается более в обертках, и Ваш код выглядит одинаково при включенном и выключенном Locker Service. 

Visualforce страницы

Применение Lightning Experience таблиц стилей к Visualforce страницам

Lightning Experience таблицы стилей были представлены в Winter ’18 релизе и общедоступны в Summer ‘18. Теперь Вы можете стилизовать Ваши Visualforce страницы в виде Lightning Experience, когда просматриваются в Lightning Experience приложения Salesforce добавлением lightningStylesheets="true" в <apex:page> теге.

Элемент <body> Visualforce страницы  теперь включает CSS класс slds-vf-scope, когда lightningStylesheets="true" внутри <apex:page> тег. Класс преобразует ваш контент к Lightning Experience UI. Когда lightningStylesheets атрибут установлен в true, атрибут standardStylesheets перекрывается.

Атрибут lightningStylesheets может объединять Вашу тему орга в Ваших Visualforce страницах. Теперь Вы можете стилизовать ваши страницы с помощью встроенных тем Salesforce либо кастомных тем, созданных самостоятельно.

Резюме

Новые функции и изменения, которые представлены в Salesforce Summer '18 Release, делают платформу еще быстрее, адаптивнее, и дружелюбнее для разработчиков. Если Вы хотите узнать больше о других новых функциях Salesforce платформы, пройдите по этой ссылке.


We have available resources to start working on your project within 5 business days

2 Senior Developers

1 SF Consultant

2 QA engineers

2 Admins

Информация по теме
Все материалы
Salesforce
Professional Services
Внедрение Salesforce CRM
Внедрение Salesforce CRM для интернет стартапа в сегменте малого и среднего бизнеса в США, включая базовую настройку, миграцию данных, интеграцию с разными сторонними сервисами и серверной частью основного продукта (включая лицензирование и информацию об использовании синхронизации).
22 Сентября 2020
Интеграция Salesforce с JIRA: обзор и пример интеграции
Более 125 000 компаний во всем мире для отслеживания процессов и задач используют в повседневной работе JIRA, еще больше используют CRM-систему Salesforce. Иногда возникают ситуации, когда работать одновременно и с Salesforce, и с JIRA
18 июня 2019
Как получить сертификат Salesforce Sales Cloud консультанта?
Хотели ли бы вы построить успешную карьеру в перспективной отрасли, при этом заниматься любимым делом и постоянно совершенствовать свои умения и навыки? Звучит заманчиво.
20 мая 2019