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コードの例
1
2
3
4
5
6
7
|
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を活用できるよう学習しておきましょう。
Search キーワード検索
Popular 人気の記事
-
SalesforceにおけるApexとは?特徴や使い方を解説
公開: 更新:
Categories 連載一覧
Tags タグ一覧
Jobs 新着案件
-
Salesforceエンジニアの求人/設計開発/東京都中央区/【WEB面談可】/在宅ワーク
月給80万~80万円東京都中央区(小伝馬町駅) -
Salesforceエンジニアの求人/決済代行システム管理/東京都新宿区/【WEB面談可】/在宅ワーク
月給56万~56万円東京都新宿区(初台駅) -
Salesforceエンジニアの求人/運用保守・開発/東京都文京区/【WEB面談可】/在宅勤務
月給58万~63万円東京都文京区(後楽園駅) -
Salesforceエンジニアの求人/構築/東京都千代田区/【WEB面談可】/在宅勤務
月給50万~50万円東京都千代田区(永田町駅) -
Salesforceエンジニアの求人/運用/東京都品川区/【WEB面談可】/在宅勤務
月給30万~30万円東京都品川区(五反田駅) -
Salesforceエンジニアの求人/営業支援/東京都千代田区/【WEB面談可】/在宅勤務
月給50万~50万円東京都千代田区(虎ノ門駅)