IT人材をお探しの方は、まずはお電話ください。担当営業がすぐにご要望にマッチした人材をご提案いたします。
tel:03-6409-6766 お急ぎの方はお電話ください

ブログTOP > IT・技術関連 > SalesforceのAnnotationsとは?よく利用するAnnotations5選

SalesforceのAnnotationsとは?よく利用するAnnotations5選

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

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

よく利用するAnnotations5選

Salesforceでよく利用される5つのAnnotationsを、実装例とともに紹介します。

@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のプログラムを開発してみよう!

今回は、よく利用されるSalesforceのApex Annotationsを実装例とともに紹介しました。Annotationsを利用することで、Apexのクラスやメソッドの動作を簡単に変更できます。 また、今回紹介したAnnotationsは、Apexで利用できるAnnotationsのごく一部です。興味はある方は、ぜひSalesforceのApex開発ガイドをご参照ください。]]>

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア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月時点)
ITエンジニアの派遣を利用したい企業様へ
ITエンジニアを派遣で採用したい企業様へ
  • 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
  • すぐに採用したいが、応募がぜんぜん集まらない
こんな悩みをお持ちの採用・人事担当者の方は、
オープンアップITエンジニアをご検討ください!

当社のITエンジニア派遣サービスは

  • 派遣スピードが速い!(最短即日)
  • 4,500名のエンジニアから貴社にマッチした人材を派遣
  • 正社員雇用も可能

こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。

無料相談のお申し込みはこちら
IT・技術関連の記事一覧へ

カテゴリから記事を探す

すべての記事一覧へ