Apex アノテーション@InvocableMethodのサンプル

環境
Salesforce

@InvocableMethod説明
呼び出し可能なアクションとして実行できるメソッドを識別するには InvocableMethod アノテーションを使用します。呼び出し可能なメソッドは、外部 API ソースとやりとりする Rest、Apex、フロー、または Einstein ボットからネイティブにコールされます。
「@InvocableMethod」を使ってフローやプロセスビルダーから呼ぶことが可能になります。

注意事項

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
1.クラスの 1 つのメソッドにのみ InvocableMethod アノテーションを付加できます
2.呼び出し可能なメソッドは、static で、public または global である必要があり、そのクラスは外部クラスである必要があります。
1.クラスの 1 つのメソッドにのみ InvocableMethod アノテーションを付加できます 2.呼び出し可能なメソッドは、static で、public または global である必要があり、そのクラスは外部クラスである必要があります。
1.クラスの 1 つのメソッドにのみ InvocableMethod アノテーションを付加できます
2.呼び出し可能なメソッドは、static で、public または global である必要があり、そのクラスは外部クラスである必要があります。

使用例
特定の sObject データ型を取る呼び出します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
public class AccountInsertAction {
@InvocableMethod(label='Insert Accounts' description='指定されたアカウントを挿入し、新しいアカウントの ID を返す.' category= 'Account')
public static List<ID> insertAccounts(List<Account> accounts) {
//アカウントの挿入
Database.SaveResult[] results = Database.insert(accounts, false);
List<ID> accountIds = new List<ID>();
//リストのデータをループする
for (Database.SaveResult result : results) {
accountIds.add (result.isSuccess()) {
accountIds.add(result.getId());
}
}
return accountIds;
}
}
public class AccountInsertAction { @InvocableMethod(label='Insert Accounts' description='指定されたアカウントを挿入し、新しいアカウントの ID を返す.' category= 'Account') public static List<ID> insertAccounts(List<Account> accounts) { //アカウントの挿入 Database.SaveResult[] results = Database.insert(accounts, false); List<ID> accountIds = new List<ID>(); //リストのデータをループする for (Database.SaveResult result : results) { accountIds.add (result.isSuccess()) { accountIds.add(result.getId()); } } return accountIds; } }
public class AccountInsertAction {
  @InvocableMethod(label='Insert Accounts' description='指定されたアカウントを挿入し、新しいアカウントの ID を返す.' category= 'Account')
  public static List<ID> insertAccounts(List<Account> accounts) {
     //アカウントの挿入
    Database.SaveResult[] results = Database.insert(accounts, false);
    List<ID> accountIds = new List<ID>();
    
    //リストのデータをループする
    for (Database.SaveResult result : results) {
      accountIds.add (result.isSuccess()) {
        accountIds.add(result.getId());
      }
    }
    return accountIds;
  }
}

 

Apex

Posted by arkgame