Учебники

Апекс — Обзор

Apex — это собственный язык, разработанный Salesforce.com. Согласно официальному определению, Apex — это строго типизированный объектно-ориентированный язык программирования, который позволяет разработчикам выполнять операторы управления потоком и транзакциями на сервере платформы Force.com в сочетании с вызовами API-интерфейса Force.com.

Он имеет Java-подобный синтаксис и действует как хранимые процедуры базы данных. Он позволяет разработчикам добавлять бизнес-логику к большинству системных событий, включая нажатия кнопок, обновления связанных записей и страницы Visualforce. Код Apex может быть инициирован запросами веб-службы и триггерами на объектах. Apex входит в состав Performance Edition, Unlimited Edition, Enterprise Edition и Developer Edition.

Сценарий выполнения кода Apex

Особенности Apex как языка

Давайте теперь обсудим особенности Apex как языка —

интегрированный

Apex имеет встроенную поддержку операций DML, таких как INSERT, UPDATE, DELETE, а также обработку исключений DML. Он поддерживает встроенную обработку запросов SOQL и SOSL, которая возвращает набор записей sObject. Мы будем подробно изучать sObject, SOQL, SOSL в следующих главах.

Java как синтаксис и прост в использовании

Apex прост в использовании, так как он использует синтаксис, такой как Java. Например, объявление переменной, синтаксис цикла и условные операторы.

Сильно интегрированы с данными

Apex ориентирован на данные и предназначен для одновременного выполнения нескольких запросов и операторов DML. Он выдает несколько операторов транзакций в базе данных.

Сильно Типизированный

Апекс — строго типизированный язык. Он использует прямую ссылку на объекты схемы, такие как sObject, и любая недопустимая ссылка быстро дает сбой, если она удалена или имеет неправильный тип данных.

Мультитенантная среда

Apex работает в многопользовательской среде. Следовательно, механизм времени исполнения Apex разработан для того, чтобы тщательно защищать от разносимого кода, предотвращая его монополизацию общих ресурсов. Любой код, который нарушает ограничения, терпит неудачу с легкими для понимания сообщениями об ошибках.

Обновления автоматически

Apex обновляется как часть релизов Salesforce. Нам не нужно обновлять его вручную.

Простое тестирование

Apex предоставляет встроенную поддержку для создания и выполнения модульных тестов, включая результаты тестов, которые показывают, сколько кода покрыто, и какие части вашего кода могут быть более эффективными.

Когда разработчик должен выбрать Apex?

Apex следует использовать, когда мы не можем реализовать сложную бизнес-функциональность, используя готовые и существующие готовые функциональные возможности. Ниже приведены случаи, когда нам нужно использовать конфигурацию apex поверх Salesforce.

Апекс Приложения

Мы можем использовать Apex, когда хотим —

  • Создание веб-сервисов с интеграцией других систем.

  • Создавайте почтовые сервисы для рассылки почты или настройки электронной почты.

  • Выполняйте комплексную проверку одновременно для нескольких объектов, а также настраиваемую реализацию проверки.

  • Создайте сложные бизнес-процессы, которые не поддерживаются существующими функциями или потоками рабочих процессов.

  • Создайте собственную транзакционную логику (логику, которая встречается во всей транзакции, а не только с одной записью или объектом), как с использованием методов базы данных для обновления записей.

  • Выполните некоторую логику, когда запись модифицируется, или измените запись связанного объекта, когда есть какое-то событие, которое вызвало срабатывание триггера.

Создание веб-сервисов с интеграцией других систем.

Создавайте почтовые сервисы для рассылки почты или настройки электронной почты.

Выполняйте комплексную проверку одновременно для нескольких объектов, а также настраиваемую реализацию проверки.

Создайте сложные бизнес-процессы, которые не поддерживаются существующими функциями или потоками рабочих процессов.

Создайте собственную транзакционную логику (логику, которая встречается во всей транзакции, а не только с одной записью или объектом), как с использованием методов базы данных для обновления записей.

Выполните некоторую логику, когда запись модифицируется, или измените запись связанного объекта, когда есть какое-то событие, которое вызвало срабатывание триггера.

Рабочая структура Apex

Как показано на диаграмме ниже (Ссылка: Документация для разработчиков Salesforce), Apex полностью работает по требованию Платформа Force.com

Apex Компиляция Apex Code

Поток действий

Существует две последовательности действий, когда разработчик сохраняет код и когда конечный пользователь выполняет какое-то действие, которое вызывает код Apex, как показано ниже:

Действие разработчика

Когда разработчик пишет и сохраняет код Apex на платформе, сервер приложений платформы сначала компилирует код в набор инструкций, которые могут быть поняты интерпретатором времени выполнения Apex, а затем сохраняет эти инструкции в виде метаданных.

Действие конечного пользователя

Когда конечный пользователь запускает выполнение Apex, нажимая кнопку или открывая страницу Visualforce, сервер приложений платформы извлекает скомпилированные инструкции из метаданных и отправляет их через интерпретатор времени выполнения перед возвратом результата. Конечный пользователь не видит различий во времени выполнения по сравнению со стандартным запросом платформы приложений.

Поскольку Apex является проприетарным языком Salesforce.com, он не поддерживает некоторые функции, которые поддерживает обычный язык программирования. Ниже приведены некоторые функции, которые Apex не поддерживает.

  • Невозможно отобразить элементы в пользовательском интерфейсе.

  • Вы не можете изменить стандартную функциональность, предоставляемую SFDC, а также невозможно предотвратить выполнение стандартной функциональности.

  • Вы не можете изменить стандартную функциональность, предоставляемую SFDC, а также невозможно предотвратить выполнение стандартной функциональности.

  • Создание нескольких потоков также невозможно, поскольку мы можем сделать это на других языках.

Невозможно отобразить элементы в пользовательском интерфейсе.

Вы не можете изменить стандартную функциональность, предоставляемую SFDC, а также невозможно предотвратить выполнение стандартной функциональности.

Вы не можете изменить стандартную функциональность, предоставляемую SFDC, а также невозможно предотвратить выполнение стандартной функциональности.

Создание нескольких потоков также невозможно, поскольку мы можем сделать это на других языках.

Понимание синтаксиса Apex

Код Apex обычно содержит много вещей, с которыми мы могли бы быть знакомы по другим языкам программирования.

Объявление переменной

Как строго типизированный язык, вы должны объявить каждую переменную с типом данных в Apex. Как видно из кода ниже (снимок экрана ниже), lstAcc объявлен с типом данных как список учетных записей.

SOQL Query

Это будет использоваться для извлечения данных из базы данных Salesforce. Запрос, показанный на скриншоте ниже, извлекает данные из объекта Account.

Loop Statement

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

Заявление об управлении потоком

Оператор If используется для управления потоком в этом коде. Исходя из определенного условия, решается, идти ли на выполнение или остановить выполнение определенного фрагмента кода. Например, в коде, показанном ниже, он проверяет, является ли список пустым или содержит записи.

DML заявление

Выполняет операции вставки, обновления, удаления, удаления записей для записей в базе данных. Например, приведенный ниже код помогает обновить учетные записи новым значением поля.

Ниже приведен пример того, как будет выглядеть фрагмент кода Apex. Мы собираемся изучить все эти концепции программирования Apex далее в этом уроке.