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

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

Категория:
Опубликовано: Июнь, 25, 2018

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

Apex 

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

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

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

Конструкция 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” для добавления записи.

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. Новые интерфейсы Lightning

В новом релизе 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 платформы, пройдите по этой ссылке.

Остались вопросы? Задайте их нам!

Напиши эксперту JET BI

Поделиться

Спасибо за то, что отправили форму. Мы свяжемся с Вами в течении 1-2 рабочих дней.
Узнавайте первыми о важных новостях и событиях из мира IT

О нас

Мы разрабатываем и внедряем решения класса Business Intelligence на базе платформ SAP BO/BW. Мы также предоставляем полный спектр консалтинговых услуг для Salesforce: внедрение Salesforce и индивидуальная доработка, поддержка, а также решения для ISV. Департамент Мобильной разработки специализируется на разработке бизнес-приложений на iOS и Android.

Связаться с нами

JET BI

Беларусь, Минск
220002, пр-т Машерова,19, 8 эт.
Телефон: +375 17 334 24 16

Проекты: sales@jetbi.com

Карьера: jobs@jetbi.com

Социальные сети