SalesforceのAnnotationsとは?よく利用するAnnotations5選
IT・技術関連
更新日:2024.09.05


SalesforceのAnnotationsとは?
SalesforceのAnnotationsとは、Apexのメソッドやクラスの動作を変更する機能です。SalesforceのAnnotationsはJavaのアノテーションと似ており、メソッドやクラスを宣言した行の前に、「@」から始まるキーワードを設定します。
Annotationsは、指定するだけで動作が変えられるため、コード量が減り、SalesforceのApex開発を効率化することが可能です。
よく利用するAnnotations5選

@AuraEnabled
@AuraEnabledはLightningコンポーネントからApexメソッドや、プロパティにアクセスできるようにするアノテーションです。主にクライアント側のLightningコンポーネントからサーバー側のApexメソッドを呼び出すときに利用します。 @AuraEnabledはstaticメソッドしか利用できません。また、APIバージョンが44.0以降から(cacheable=true)を指定することで、Apex メソッドから返されるデータをキャッシュできるようになりました。@AuraEnabled(cacheable=true)
public static String getUserName(String userId) {
// 処理を実装
}
@Future
@Futureは、メソッドの処理を非同期で処理できるようにするアノテーションです。 @futureを利用するメソッドは次の条件をすべて満たす必要があります。 ・staticメソッドであること ・メソッドは戻り値を返さないvoid型であることglobal class MyFutureClass {
@future
static void testAsynchronous(String str) {
// 非同期で実行する処理を実装
}
}
また、デフォルトではコールアウトが実行しないため、コールアウトを実行する場合は、次のように(callout=true)を指定する必要があります。
@future (callout=true)
static void testCalloutFromFuture(String str) {
// 非同期で実行する処理を実装
}
@IsTest
@IsTestは、テスト用のクラスやメソッドに付与するアノテーションです。@isTestで指定したクラスは、アクセス修飾子にprivateまたは、publicが宣言されている必要があります。なお、@isTestで指定したクラスは、Apexコードの組織内の上限である6MBには含まれません。 例)クラスのアクセス修飾子が「private」の場合@isTest
private class MyPrivateTest {
// テスト用メソッド
@isTest static void test1() {
// テスト用の処理を実装
}
}
例)クラスのアクセス修飾子が「public」の場合
@isTest
public class TesPublictUtil {
// テスト用メソッド
public static void test1() {
// テスト用の処理を実装
}
}
@IsTestで使用できるオプションを紹介します。
アノテーション | 概要 |
---|---|
@IsTest(SeeAllData=true) | テストクラスで組織のデータを使用する際に、指定する。Salesforce API バージョン 24.0以降から利用可能。 |
@IsTest(OnInstall=true) | パッケージのインストール時にテストクラスを実行する際に、指定する。 |
@IsTest(isParallel=true) | テストクラスを並列実行したい場合に指定する。同時テスト数のデフォルト上限には含まれない。@isTest(SeeAllData=true) と併用できないの注意。 |
@TestSetup
@testSetupは、テスト用メソッドを実行する前に実行したいメソッドに指定するアノテーションです。@isTestを宣言したクラス内でしか利用できません。主にテストクラス内のメソッドで共通して使用するデータを設定する目的で利用されます。@isTest
private class MyPrivateTest {
// テスト用情報を作成する
@testSetup static void setup() {
// テストで共通して使用するユーザー情報を設定します。
List testUsers = new List ();
for (Integer i = 0; i < 2; i++) {
testUsers.add(new User(Name = 'TestUser' + i));
}
insert testUsers;
}
// テスト用メソッド
@isTest static void test1() {
// テスト用の処理を実装
// ユーザー情報を取得する
User user = [SELECT Id, Name, Mail FROM User WHERE Name = 'TestUser0' LIMIT 1];
return user;
}
}
@RemoteAction
@RemoteActionは、VisualforceページのJavaScriptから呼び出したいApexのメソッドに付与するアノテーションです。 @RemoteActionを利用するメソッドは次の条件をすべて満たす必要があります。 ・staticメソッドであること ・メソッドのアクセス修飾子がglobalまたは、publicであること 例)Apexのコードglobal with sharing class UserRemoter {
public String userId { get; set; }
public static User user { get; set; }
public UserRemoter() {} // コンストラクタは空で宣言
@RemoteAction
global static User getgetUser(String userId) {
user = [SELECT Id, UserName, Mail FROM User WHERE Id = : userId];
return user;
}
}
例)Apexのメソッドを呼び出すVisualforce ページの処理
<apex:page controller=""UserRemoter"">
<script type=""text/javascript"">
function getRemoteUser() {
var userId = document.getElementById('userId').value;
Visualforce.remoting.Manager.invokeAction(
'{!$RemoteAction.UserRemoter.getUser}',
userId,
function(result, event){
if (event.status) {
// アラートでユーザー名を表示する
alert(""ユーザー名:"" + result.UserName);
} else if (event.type === 'exception') {
// Exceptionが発生した場合
alert(event.message);
} else {
// Exception以外のエラーが発生した場合
alert(event.message);
}
},
{escape: true}
);
}
</script>
~略~
Annotationsを使って、Salesforceのプログラムを開発してみよう!

この記事の監修者・著者

- AWSパートナー/Salesforce認定コンサルティングパートナー 認定企業
-
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。
・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
最新の投稿
- 2024-12-27営業インタビュー情報共有の活性化の中心に。SP企画部の新たな取り組み
- 2024-07-01営業インタビュー最短で当日にご提案可能。 OPE営業の対応が早い3つの理由
- 2024-07-01営業インタビュー研修見学ツアーが高評価!「お客様のOPEに対する期待を高め、継続に貢献できればと思います。」
- 2024-07-01営業インタビュー信頼関係を構築し、エンジニアの長期就業へ
ITエンジニアの派遣を利用したい企業様へ

- 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
- すぐに採用したいが、応募がぜんぜん集まらない
こんな悩みをお持ちの採用・人事担当者の方は、
オープンアップITエンジニアをご検討ください!
オープンアップITエンジニアをご検討ください!
当社のITエンジニア派遣サービスは
- 派遣スピードが速い!(最短即日)
- 4,500名のエンジニアから貴社にマッチした人材を派遣
- 正社員雇用も可能
こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。