top of page
レザーノート

BLOG

Apexクラスとトリガーの基本的な作成と管理

  • 執筆者の写真: 匡史 武石
    匡史 武石
  • 11 分前
  • 読了時間: 4分


こんにちは。ネクスト・アイの武石です。

今回は、APEXクラスとAPEXトリガーについて紹介します。

「APEXクラスの用途がよくわからない」、「APEXトリガーってどう使うの?」という方でもわかりやすく解説していますので、ぜひ最後まで読んでいただけると幸いです。

目次

1.Apexクラスの基本と作成

2.Apexトリガーの基本と作成

3.Apexの管理と本番環境へのリリース

4.まとめ


1. Apexクラスの基本と作成

Apexクラスとは、一言で言えば「再利用可能な処理をまとめた部品」です。  画面からボタンを押したとき、あるいは定期的にデータをバッチ処理するときなど、様々な場所から呼び出して使い回せるロジックの箱のような役割を持ちます。


最小限のApexクラス例

以下は、渡された取引先(Account)レコードの「説明」項目に、自動で共通のテキストをセットするシンプルなクラスです。


処理の説明

public class クラス名 ・どこからでも呼び出せるように定義します。

public static void メソッド名 ・具体的な処理(メソッド)の記述で、static をつけることで、クラスを新しく作らなくても(インスタンス化しなくても)直接呼び出せるようになります。

public void メソッド名

・具体的な処理(メソッド)の記述で、呼び出す際には新しくクラスを作成(インスタンス化)して呼び出す必要があります。


2. Apexトリガーの基本と作成

Apexトリガーとは、「特定のデータ操作(作成、更新、削除など)を検知して自動実行されるセンサー」です。

フローでいう「レコードトリガーフロー」と同じ役割ですが、コードで記述するためより細かな制御や複雑な分岐が可能です。


最小限のトリガー例

先ほど作成したApexクラスを、取引先が作成・更新されたタイミングで呼び出すトリガーです。


処理の説明

on Account

どのオブジェクトを監視するかを指定します。

(before insert, before update)

レコードがデータベースに保存される「直前(Before)」に実行する設定です。

(after insert, after update)

レコードがデータベースに保存された「直後(After)」に実行する設定です。

Trigger.new

・今回新しく登録・更新されようとしているレコードのリストが自動的に格納されている、重要な変数(コンテキスト変数)です。


💡 トリガーのベストプラクティス

トリガーを書く際の超重要ルールが「1オブジェクトに対してトリガーは1つ(One Trigger Per Object)」です。 いくつもトリガーを作ると実行順序を制御できず、バグの原因になります。 また、トリガーの中に直接何十行も処理を書かず、上記のように「トリガーは検知するだけにして、実際の処理はクラスに丸投げする(ハンドラーパターン)」のがSalesforce開発の鉄則です。


3. Apexの管理と本番環境へのリリース


作成したクラスやトリガーは、いきなり本番環境で作成・修正することはできません。 必ずSandbox(開発環境)で作成し、テストを行った上で本番へデプロイ(反映)します。

ここで未経験者が最も躓きやすいのが「テストクラスの存在です。 Salesforceのルールとして、組織全体のコードカバー率(テストコードが通った割合)が75%以上かつすべてのトリガーで1行以上のテストが実行されている」状態でないと、本番環境へのデプロイが完全にブロックされます。

最初は「コードを書くのが2倍大変だ」と感じるかもしれませんが、これは本番環境のデータを予期せぬバグから守るための大切なセーフティネットです。 開発ツール(VS CodeやDeveloper Console)を活用し、開発と同時にテストコードを書く習慣をつけましょう。


4. まとめ


今回は、APEXクラスとトリガーについてご紹介/説明しました。

  • Apexクラス: 処理をまとめた「部品」

  • Apexトリガー: 変更を検知してクラスを動かす「センサー」(1オブジェクトに1つ!)

  • 本番リリース: 75%以上の「テストコード」の合格が必須

まずはSandbox環境で、簡単なカスタム項目を自動更新するようなミニマムなトリガーから作成し、実際に動く楽しさを体感してみてください!

最後までご愛読いただきありがとうございました。

このブログでは、Salesforceをもっと便利に使うためのお役立ち情報を発信しています。

記事に対する質問・相談に関しては、トップページの「お問い合わせ」よりご連絡ください。




 
 
 

コメント


bottom of page