2021/02/16

SalesforceにおけるApexとは?特徴や使い方を解説

 
  

SalesforceにおけるApexとは?

Apexとは、Salesforceの機能を拡張する際に使われる、強く型付けされているオブジェクト指向のプログラミング言語です。 Apexの構文はJavaに似ており、ボタンクリックや関連レコードの更新などのほとんどのシステムイベントにシステム固有の処理を追加できます。 Apexコードは、webサービスのリクエスト、およびオブジェクトのトリガから開始できます。

Apexの概要

Apexは、Salesforceの標準のカスタマイズ機能では実現できない機能拡張に使われるプログラミング言語です。 Salesforceにはコードを書かずに使える標準のカスタマイズ機能が用意されています。しかし、それだけでは対応しきれない場合があります。 Apexは、既存の機能では対応しきれない複雑なビジネスプロセスに対し高度なカスタム機能を構築する方法のうちの一つです。

Apexの特徴

Apexコードは、次世代のビジネスアプリケーションの構築に関心を持つ開発者のための、初のマルチテナント、オンデマンドプログラミング言語です。開発者がオンデマンドアプリケーションを作成しやすいように設計されています。 そんなApexの特徴をいくつか紹介します。

統合されている

Apexでは、一般的なLightning Platformイディオムが標準でサポートされています。 例えば、INSERT、UPDATE、およびDELETEを含むデータ操作言語コール、複数のレコードの一括処理を可能にするループ、レコード更新の競合を回避するロックステートメントなどがあります。 ちなみに、Lightning Platformとは、セールスフォース・ドットコム社が提供しているビジネスアプリケーション開発のためのクラウドプラットフォーム(PaaS)のことです。

使いやすさ

Apexは、変数および式の構文、ループ構文、ブロックや条件ステートメントの構文などがプログラミング言語ではメジャーな存在であるJavaのイディオムに基づいています。 Apexが新しい要素を導入する場合、理解しやすい構文を使用してLightning Platformの効率的な使用を促進します。 Apexコードの例
if (x > y){
    System.Debug('xの方が大きい');
} else if (x == y){
    System.Debug('xとyは等しい');
} else {
    System.Debug('yの方が大きい');
}

正確性

Apexは、オブジェクト名や項目名などのスキーマオブジェクトを直接参照する、強力に定型化された言語です。もし参照が無効であった場合は、コンパイル時にすぐにエラーが発生します。

どんなときにApexを使用する?

webサービスを作成する、メールサービスを作成する、複数のオブジェクトに複雑な検証を実行する、ワークフローでサポートされていない複雑なビジネスプロセスを作成する、といった場合などにApexを使用します。 例えば、webサービスを作成する場合、ApexクラスメソッドをRestまたはSOAP webサービス処理として公開できます。メソッドをweb経由で呼び出すことで、外部のアプリケーションからSalesforceのあらゆる種類の操作を実行できます。 メールサービスの作成の場合、受信したメールのコンテンツ、ヘッダー、および添付ファイルを処理する、などが可能です。たとえば本文内の連絡先情報に基づいて連絡先レコードを自動的に作成するメールサービスを作成できます。

Apexの開発プロセス

Apexを開発するには、Developer Editionアカウントを取得し、コードを作成してテストし、リリースします。 Salesforceの公式が勧めるApexの開発の手順は以下のとおりです。
1.Developer Edition アカウントを取得します。 2.Apex についての詳細を確認します。 3.Apex コードを記述します。 4.Apex を記述するときに、テストも記述する必要があります。 5.必要に応じて Apex を Sandbox 組織にリリースし、最終単体テストを行います。 6.Salesforce 本番組織に Apex をリリースします。https://developer.salesforce.com/docs/atlas.ja-jp.228.0.a…
Developer Editionアカウントとは、多少の制限があるものの、Salesforceを無料で使える開発者用のアカウントです。また、Salesforceが提供する無料の学習プラットフォーム「Trailhead」のハンズオン環境としても利用できます。 ちなみにSandboxとは、別の環境に作られたSalesforce本番環境のコピーです。

Apexの開発環境

Salesforce内に用意されている開発者コンソール、またはVisual Studio Code向けSalesforce拡張機能が主な環境です。 開発者コンソールは、コードの記述、コードのコンパイル、デバッグ、テスト、パフォーマンスの確認、SOQLクエリ、色分けとオートコンプリートのタスクがサポートされた統合開発環境です。 開発者コンソールは、Salesforceのユーザーインターフェースから数クリックで開始できます。 Visual Studio Code向けSalesforce Extension Packには、Salesforce Platform上で軽量VSコードエディタで開発するためのツールが含まれています。これらのツールでは、開発組織、Apex、Auraコンポーネント、Visualforceを操作する機能が提供されています。

Apexを学習するには

Apexを学習するには以下のようなものがあります。 1.TrailheadのApexコンテンツ 2.sailsforce developersのApex開発者ガイド 3.Lightning Platform Cookbook

TrailheadのApexコンテンツ

TrailheadにはApexを学ぶためのチュートリアルがモジュールとして用意されています。Trailheadのモジュールとは、短い単元で構成されており、特定のトピックについて説明します。 機能の概要、利点、使用方法などを学習できます。モジュールの最後には対話式の自己テストが用意されています。 また、モジュールの他にプロジェクトも用意されています。手順の説明を通じた実践的な演習です。 そして、モジュールとプロジェクトによって、短時間で多くの基礎を身につけられるガイド付き学習パスのトレイルがあります。トレイルには、Salesforce認定資格の取得を目指すものも用意されています。 認定資格はスキルの証明になり、Trailheadのプロフィールを公開することで、どのようなスキルを持っているかをアピールできます。また、認定資格は世界共通です。

Salesforce developersのApex開発者ガイド

主な内容はApexの概要、Apexの書き方、Apexの実行、Apexのデバッグ・テスト・リリース、Apex言語のリファレンス、用語集です。初級から上級のプログラマまでを対象にしています。 初級プログラマを以下の参照が勧められています。 1.Apexの概要 2.クラス、オブジェクトおよびインターフェース 3.Apexのテスト 4.実行ガバナと制限 上級プログラマは次の参照も勧められています。 1.トリガと一括要求に関するベストプラクティス 2.高度なApexプログラミングの例 3.Apex Describe Informationについて 4.非同期実行(@future アノテーション) 5.Apexの一括処理およびApexスケジューラ

Linghtning Platform Cookbook

このコラボレーションサイトでは、WebサービスAPIの使用、Apexコードの開発、Visualforceページの作成に関する多くの手順を提供しています。 様々なレシピにより、開発者はApexだけではなくLightning platformのプログラミング手法やベストプラクティスを学ぶことができます。

Salesforceの機能拡張にApexを活用しよう!

本記事ではSalesforceの拡張の際に使われるApexというプログラミング言語を紹介しました。 Salesforceには標準で搭載されている便利なカスタマイズ機能がありますが、既存のものではサポートされていない複雑な機能が必要な場合があります。そのようなときにApexを活用できるよう学習しておきましょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】