1. Apexとは何か
Apex は Salesforce のプラットフォーム専用に用意された、Javaライクなオブジェクト指向プログラミング言語
- サーバーサイドのロジックを担当
- クライアント層とDB層の「橋渡し役」
イメージ例: Salesforce開発の中でApexの位置付け
✅ ユーザーの操作やイベント(レコード作成、更新)に応じて実行
✅ SOQL/SOSLを使ってデータベースの操作(登録・更新・削除)
✅ ガバナ制限(DB操作数、API回数、CPU時間などのリソースを適正管理)
2. どこで使われる?
標準機能だけでは実現できない、複雑なビジネスロジックや自動処理 を行う場面で 使用
種類 | 説明 |
---|---|
トリガー | データベース操作(INSERT, UPDATE, DELETEなど)の前後に自動で実行される。 |
クラス | 複雑な処理ロジックをクラスにまとめて再利用できる。 |
バッチApex | 大量データを一括で効率的に処理できる。 |
スケジュールApex | 定期的に自動実行する処理を設定できる。 |
テストクラス | デプロイ時にテストクラスを作成し、75%以上のカバレッジが必要。 |
3. 実行環境:マルチテナントとガバナ制限
Apexは Salesforce の マルチテナント環境 上で動作する。
-
マルチテナントとは?
→ 複数のユーザー(企業)が1つの物理的なクラウド環境を共有している仕組み。 -
なぜガバナ制限があるのか?
→ 1つの組織の処理が暴走すると、他の組織のパフォーマンスに影響が出る。
そのため、SOQLクエリ数、DML操作数、CPU実行時間などに上限 が設けられている。
✅ ポイント:
- 1回の処理でSOQLは最大100件
- ガバナ制限を超えると処理はエラーで強制終了
制限を守りながら効率的に処理を書くのが、Apex開発のポイント!
SOQLクエリ数、DML数などの最新のガバナ制限一覧↓
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_gov_limits.htm
🎯 まとめ
項目 | 内容 |
---|---|
Apexとは? | Salesforce専用のJavaライクな言語 |
なぜ必要? | 標準機能だけでは実現できない複雑な要件をカバーする |
どこで使う? | Trigger / クラス / バッチ / スケジュール / テストクラス |
実行環境の特徴 | マルチテナント & ガバナ制限を前提にした安全設計が必要 |
📚 参考資料
-
Apex Developer Guide
Apexの構文やベストプラクティスを網羅した公式ガイド。 -
Governor Limits
SOQLクエリ数、DML数などの最新のガバナ制限一覧。