この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

InvocableMethod アノテーション

呼び出し可能なアクションとして実行できるメソッドを識別するには InvocableMethod アノテーションを使用します。

呼び出し可能なメソッドは、REST API でコールされ、1 つの Apex メソッドを呼び出すために使用します。呼び出し可能なメソッドには動的な入力値と出力値があり、記述用の API コール (describe) をサポートします。

次のサンプルコードは、プリミティブデータ型を取る呼び出し可能なメソッドを示します。

1public class AccountQueryAction {
2  @InvocableMethod(label='Get Account Names' description='Returns the list of account names corresponding to the specified account IDs.')
3  public static List<String> getAccountNames(List<ID> ids) {
4    List<String> accountNames = new List<String>();
5    List<Account> accounts = [SELECT Name FROM Account WHERE Id in :ids];
6    for (Account account : accounts) {
7      accountNames.add(account.Name);
8    }
9    return accountNames;
10  }
11}

次のサンプルコードは、特定の sObject データ型を取る呼び出し可能なメソッドを示します。

1public class AccountInsertAction {
2  @InvocableMethod(label='Insert Accounts' description='Inserts the accounts specified and returns the IDs of the new accounts.')
3  public static List<ID> insertAccounts(List<Account> accounts) {
4    Database.SaveResult[] results = Database.insert(accounts);
5    List<ID> accountIds = new List<ID>();
6    for (Database.SaveResult result : results) {
7      if (result.isSuccess()) {
8        accountIds.add(result.getId());
9      }
10    }
11    return accountIds;
12  }
13}

呼び出し可能なメソッドに関する考慮事項

実装メモ
  • 呼び出し可能なメソッドは、static で、public または global である必要があり、そのクラスは外部クラスである必要があります。
  • クラスの 1 つのメソッドにのみ InvocableMethod アノテーションを付加できます。
  • 他のアノテーションと InvocableMethod アノテーションを併用することはできません。
入力および出力
最大 1 つの入力パラメータが存在する可能性があり、そのデータ型は次のいずれかである必要があります。
  • プリミティブデータ型のリスト、またはプリミティブデータ型のリストのリスト – 汎用 Object 型はサポートされていません。
  • sObject 型のリスト、または sObject 型のリストのリスト – 汎用 sObject 型はサポートされていません。
  • サポートされている型の変数を含み、InvocableVariable アノテーションが付加されているユーザ定義型のリスト。各自のデータ型を実装するカスタムのグローバルまたは公開 Apex クラスを作成し、そのクラスに呼び出し可能な変数アノテーションが付加されているメンバー変数が少なくとも 1 つ含まれていることを確認します。
戻り値の型が Null 以外の場合は、メソッドによって返されるデータ型が次のいずれかである必要があります。
  • プリミティブデータ型のリスト、またはプリミティブデータ型のリストのリスト – 汎用 Object 型はサポートされていません。
  • sObject 型のリスト、または sObject 型のリストのリスト – 汎用 sObject 型はサポートされていません。
  • サポートされている型の変数を含み、InvocableVariable アノテーションが付加されているユーザ定義型のリスト。各自のデータ型を実装するカスタムのグローバルまたは公開 Apex クラスを作成し、そのクラスに呼び出し可能な変数アノテーションが付加されているメンバー変数が少なくとも 1 つ含まれていることを確認します。
管理パッケージ
  • パッケージの呼び出し可能なメソッドを使用できますが、呼び出し可能なメソッドを追加すると、パッケージの後続のバージョンからそのメソッドを削除できません。
  • 呼び出し可能な公開メソッドは、管理パッケージ内のフローおよびプロセスで参照できます。
  • 呼び出し可能なグローバルメソッドは、登録者組織のあらゆる場所で参照できます。呼び出し可能なグローバルメソッドのみが登録者組織の Flow Builder およびプロセスビルダーに表示されます。

呼び出し可能アクションについての詳細は、『Actions Developer’s Guide (アクション開発者ガイド)』を参照してください。