コラム詳細

Salesforceのプログラミング言語 Apex(エーペックス)とは?

2023年04月13日

  • Salesforce
  • 使い方

はじめに

セラクCCCのSalesforce推進部のAです。Salesforce には、効率的に顧客関係管理や営業支援を行うための自動化機能があります。しかし、この自動化機能を用いても複雑なビジネスプロセスや独自の業務フローの自動化が難しい場合があります。こういったケースに対応するために、Salesforceの機能をカスタマイズするApex(エーペックス)というプログラミング言語が用意されています。
本記事では「Salesforceに自社特有のビジネスロジックを追加したいが、プログラミングを経験したことがない」という方向けにApexの基礎をご紹介します。
 
また、Salesforceの活用について解説しているこちらの資料「Salesforceを活用で最初に絶対やるべき4つのポイント」もご興味があればご活用ください。

 

Salesforce(セールスフォース)のApex(エーペックス)とは?

Apex(エーペックス)はセールスフォース社の提供するSalesforce専用のプログラミング言語です。世界的に普及しているJavaに似ており、プログラミング経験のある方にとって直感的に扱いやすいコードです。ボタンクリックやレコード操作など、ユーザの動作に対してアプリケーションの細かなアクションを指定できます。

 

SalesforceのApexの特徴

Apexを扱うためにはプログラミングの知識や技術が必要ですが、使いこなせば細かく複雑な自動化の設定が可能です。
Apexを活用すれば、レコードの作成や更新などの前後のタイミングに自動でアクションを行うよう設定し、業務の一部を自動化できます。また自動化したアクションは、後ほど説明する「フロー」で使用されるFlow BuilderやProcess Builderといった自動化ツールから呼び出したり、外部のアプリケーションと連携したりすることも可能です。
ApexはSalesforceのアプリ開発でも使用されており、習熟すれば業務の自動化以外にもさまざまな活用が可能です。

 

SalesforceのApexトリガとApexクラスの違い

Apexという単語に続いて、Apex関連で頻出する「Apexトリガ」と「Apexクラス」の2つの用語について簡単にご紹介します。

 

Apexトリガとは?

 

タイミング 指定できる動作 特徴
before insert レコードがDBに保存される前に起動されます。
レコードがDBに保存される前なので、
Trigger.newを直接変更できます。
update
delete
after insert レコードがDBに保存された後に起動されます。
ただし、まだコミットはされていないため、
Trigger.newを直接変更することはできませんが、
DML操作で元レコードの更新・削除を行うことができます。
update
delete
undelete 削除された後、undelete DML操作によって
ごみ箱から復元されたレコードに対してのみ機能します。

<Apexトリガの種類>

 

Apexトリガは「どのタイミングで行動するか?」を記述したタイマーです。レコードの挿入と更新、削除の3つのアクションの前後のほかに、レコード復元後の合計7つのタイミングを設定できます。

 

Apexクラスとは?

Apexクラスとは、「どんなプログラムを開始するか」を記述する設計図です。
「どのレコードを対象とするか」というオブジェクトの状態を指定する[変数]と、「挿入や更新、削除などアクションを行うか」という動作を制御する[メソッド]を設定します。
ApexクラスはApexトリガから呼び出すだけでなく、Flow Builderなど別の機能から呼び出すことも可能です。

 

Apexのプログラミング開始手順

Apexを使ってプログラミングを開始する手順をご紹介します。
コードの記述には専門的な知識が必要なため、難しいと感じられる場合があるかもしれません。

 

Apexのプログラミングは[設定]から[開発者コンソール]を開いて開始します。
他にも[クイック検索]から開始する、オブジェクトに対するApexトリガはオブジェクトの管理設定から[トリガ]に移動して開始する、といった方法も有ります。

 

Apexを使うべき場合とは?


<フローとApexそれぞれの強み>

 

Salesforceには、「Salesforceフロー」と呼ばれる自動化機能群が用意されており、簡単な自動化はローコードで実現できます。Apexは高性能ですが、常にApexがフローより優れているわけではありません。たとえば、画面ウィザードはフローで作る方が簡単にコストを抑えられます。一方で、複雑なリスト処理などはApexが得意です。目的や社内のリソース、今後の活用の方針などさまざまな要素を検討して、どの自動化ツールを使うかを決定すべきです。
比較には、Salesforceだけでなく外部のアプリやツールとの連携なども考えたい場合もあるので、専門家に相談するのがお勧めです。

 

※「Salesforceフロー」が気になる方はこちらの記事「Salesforceのフローとは?作成方法やプロセスビルダーとの違いも」をご覧ください。

 

まとめ

本記事ではSalesforce専用のプログラミング言語であるApexについて、簡単にご紹介しました。Apexは高性能ですが開発者向けの機能で、活用には高度な知識が求められます。Salesforceを使った業務の自動化を検討する際「プログラミング経験のある人材が社内におらず、Salesforceフローではうまく自動化できないのでApexを学びたい」「標準機能とApexのどちらを使って自動化したほうがよいのだろうか」といったお悩みやご要望はセラクCCCにご相談ください。セラクCCCには、300名(2023年5月時点)を超える専門コンサルタントが在籍していますのでぜひ無料相談からお問い合わせください。当社はSalesforceの活用推進やSalesforce人材の育成まで、幅広い支援をしております。

Salesforceでお悩みなら、
まずはお気軽に
お問い合わせください

  • TOP
  • コラム一覧
  • Salesforceのプログラミング言語 Apex(エーペックス)とは?