
問題
Salesforce管理者は、レコードによってトリガーされるフローを作成しています。
特定の基準が満たされた場合、フローはApexメソッドを呼び出して、いくつかのタイプのオブジェクトを含む複雑な検証を実行する必要があります。
Apexメソッドを作成する場合、メソッドをフロー内で使用できるようにするために、開発者はどのアノテーションを使用する必要がありますか?
A.@InvocableMethod
B.@RemoteAction
C.@future
D.@AuraEnaled
正解
A.@InvocableMethod
B.@RemoteAction
C.@future
D.@AuraEnaled
解説
A. 正解 - @InvocableMethod アノテーションは、Apexメソッドをフローやプロセスビルダーから呼び出せるようにするために使用します。これにより、フロー内でメソッドを利用することが可能になります。
B. 不正解 - @RemoteAction は、VisualforceページからJavaScript経由でApexメソッドを呼び出すためのアノテーションです。
C. 不正解 - @future アノテーションは、非同期処理を行うために使用されますが、フローからの呼び出しには適していません。
D. 不正解 - @AuraEnabled は、AuraコンポーネントからApexメソッドを呼び出すために使用され、フローに直接関連しません。
ポイント
簡単に言うと、Salesforceで「フロー」という便利なツールからプログラム(Apexメソッド)を呼び出したいときは、@InvocableMethodという特別なマークをつける必要があります。
このマークをつけることで、フローからそのプログラムを使えるようになる。他の方法は、フローで使うのには合わないか、全然別の使い方をするものです。
イメージ:@InvocableMethod は「フローとプログラムをつなぐ橋」みたいなもの。これがないと、フローとプログラムはお互いに話せない。